我草拟粑粑长城防火墙
拉个github仓库只有几kb速度
WSL2使用纯真Linux虚拟化,不再像WSL1那样套个皮就出来了,因此网络环境是独立的,无法使用127.0.0.1访问到本机网络。
本文介绍配置WSL2中http代理服务器,理论上稍作修改可以应用于本机一切http代理
以v2rayN为例
允许局域网连接代理
Windows: v2rayN客户端开启“允许来自局域网的连接”
配置WSL2 DNS
WSL2: 关闭自动更新dns
新建配置文件
vim /etc/wsl.conf
写入以下内容
[network]
generateResolvConf = false
编辑以下文件的nameserver为 8.8.8.8
1.1.1.1
等常用不受污染的dns服务器
vim /etc/resolv.conf
防止每次启动resolv.conf被抹除或重置
chattr +i /etc/resolv.conf
配置WSL2代理
需要使用局预网的方式连接至宿主机。
以下脚本先查找宿主机虚拟网卡的IP地址,然后设置其为代理服务器结点
打开bash配置文件
vim ~/.bashrc
加入以下内容
# add for proxy
export hostip=$(ip route | grep default | awk '{print $3}')
export hostport=10811
alias proxy='
export https_proxy="http://${hostip}:${hostport}";
export http_proxy="http://${hostip}:${hostport}";
export all_proxy="http://${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;
'
其中hostport是v2rayN中http局域网代理的端口。默认应该是
10811
如果你做过修改或使用其它客户端,请注意区别。一定是局域网可访问的代理端口
重新读取配置文件
source ~/.bashrc
启动代理
每次开启WSL2,都需要输入以下命令激活代理
proxy
输入
unproxy
关闭代理
测试
curl google.com
有回应就是成功
故障排除
如果你连不上全球通,请参考这些排查方法:
ping google
WSL中,测试是否能解析出IP地址
- 如果没看到google.com的ip地址,请检查WSL的DNS是否正确配置
- 如果没有回应,正常现象,不用管
ping google
代理服务器可用性
在Windows中尝试访问谷歌
如果你自己电脑都访问不了,那就拉闸了,换个结点吧哥们
代理服务器开放局域网
确保你的代理开放了局域网连接
然后检查防火墙设置,确保代理服务器通过了你Windows使用的防火墙
确保WSL2代理配置正确
WSL中,查看http代理的输出:
echo $HTTP_PROXY
留意两个地方:
– 有没有输出?(eg. x.x.x.x:10811)
– 端口是否为代理服务器的局域网开放端口
如果出问题,请重新修改~/.bashrc
文件,并重新读取