引言
由于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
vim ~\.wslconfig
- 文件内容:
[wsl2] memory=8GB processors=8 [experimental] autoMemoryReclaim=gradual networkingMode=mirrored dnsTunneling=true firewall=true autoProxy=true sparseVhd=true
- 重启 WSL
确实自动设置了代理,代理正常工作,
很好,不必再手动设置http_proxy
和https_proxy
了。