引言
由于WSL采用的是NAT模式,不能直接与本机localhost共享代理端口。
以往采取的方式就是设置http_proxy
和https_proxy
.
但,不方便的地方在于每次重启wsl后,由于IP会变化,很有可能需要重新进行配置。
也有办法,可以通过读取/etc/resolve.conf
,提取其中的nameserver
,自动提取IP,这样就可以自动化配置了。
但,今天这个方案突然失效,nameserver
提供的IP地址并不能正常使用。
很奇怪,我需要新的方案。
官方解决方案
链接:networking-considerations-with-dns-tunneling,提出通过 DNS 隧道来配置 WSL 的网络
我的步骤
- 把之前在
.bashrc
启动文件中配置http_proxy
和https_proxy
的逻辑删去,并且关闭 WSL
wsl --shutdown
- 在我的window主机编辑
~\.wslconfig
“去‘C:\Users\你的名字\’下面新建一个‘.wslconfig’,然后用记事本打开往里面放这些内容”
如"C:\Users\fangy\.wslconfig"
[wsl2]
memory=8GB
processors=8
[experimental]
autoMemoryReclaim=gradual
networkingMode=mirrored
dnsTunneling=true
firewall=true
autoProxy=true
sparseVhd=true
- 重启 WSL
确实自动设置了代理,代理正常工作,
很好,不必再手动设置http_proxy
和https_proxy
了。