准备条件
WSL2+V2RAY
为WSL2设置代理,使用宿主机的代理
问题描述
复制了网上一个脚本,在 ~/.bashrc 中新增内容,原脚本如下
# add for proxy
export hostip=$(ip route | grep default | awk '{print $3}')
export hostport=10810
alias proxy='
export HTTPS_PROXY="socks5://${hostip}:${hostport}";
export HTTP_PROXY="socks5://${hostip}:${hostport}";
export ALL_PROXY="socks5://${hostip}:${hostport}";
echo -e "Acquire::http::Proxy \"http://${hostip}:${hostport}\";" | sudo tee -a /etc/apt/apt.conf.d/proxy.conf > /dev/null;
echo -e "Acquire::https::Proxy \"http://${hostip}:${hostport}\";" | sudo tee -a /etc/apt/apt.conf.d/proxy.conf > /dev/null;
'
alias unproxy='
unset HTTPS_PROXY;
unset HTTP_PROXY;
unset ALL_PROXY;
sudo sed -i -e '/Acquire::http::Proxy/d' /etc/apt/apt.conf.d/proxy.conf;
sudo sed -i -e '/Acquire::https::Proxy/d' /etc/apt/apt.conf.d/proxy.conf;
'
但使用过程中,虽然可以curl到谷歌的页面,但无法apt update,总是显示连接超时,检查了一下,发现apt使用的是http代理,正如脚本中的echo -e "Acquire::http::Proxy \"http://${hostip}:${hostport}\";" | sudo tee -a /etc/apt/apt.conf.d/proxy.conf > /dev/null;
问题就出在这里,这里的端口是错误的,V2RAYN默认的局域网http代理端口是10811,而脚本使用的是socks的端口10810
解决
直接把脚本中的http代理端口改正即可,改正后如下
# add for proxy
export hostip=$(ip route | grep default | awk '{print $3}')
export hostport=10810
alias proxy='
export HTTPS_PROXY="socks5://${hostip}:${hostport}";
export HTTP_PROXY="socks5://${hostip}:${hostport}";
export ALL_PROXY="socks5://${hostip}:${hostport}";
echo -e "Acquire::http::Proxy \"http://${hostip}:10811\";" | sudo tee -a /etc/apt/apt.conf.d/proxy.conf > /dev/null;
echo -e "Acquire::https::Proxy \"http://${hostip}:10811\";" | sudo tee -a /etc/apt/apt.conf.d/proxy.conf > /dev/null;
'
alias unproxy='
unset HTTPS_PROXY;
unset HTTP_PROXY;
unset ALL_PROXY;
sudo sed -i -e '/Acquire::http::Proxy/d' /etc/apt/apt.conf.d/proxy.conf;
sudo sed -i -e '/Acquire::https::Proxy/d' /etc/apt/apt.conf.d/proxy.conf;
'
使用方法
使用 $ source .bashrc 重新载入配置。
使用 $ proxy 打开代理。
使用 $ unproxy 关闭代理。