本人系统环境
- windows版本:win11
- wsl版本:wsl2
问题描述
因为在wsl环境中跑程序时,需要下载数据集,但是默认是NAT模式的,即与windows环境使用不是相同的网络IP的,尽管windows是使用了代理的,此时在wsl中仍是不起作用的,数据集还是无法下载。
解决方法
在%USERPROFILE%\
下查看是否有.wslconfig
,若无手动创建即可,随后对此文件进行编辑,写入如下内容:
[experimental]
autoMemoryReclaim=gradual | dropcache | disabled
networkingMode=mirrored
dnsTunneling=true
firewall=true
autoProxy=true
保存后,打开windows的终端,执行wsl --shutdown
。注意,此时使用ping命令也是无法测试是否成功的,因为Http是应用层协议,icmp是网络层协议。配置代理过程是配置了应用层协议,是不会影响网络层协议的,也就解释了设置http代理以后在终端还是ping不通Google。但是在运行程序的时候,下载数据集可以成功啦。
参考:
https://blog.youkuaiyun.com/xiao_bei123/article/details/131890388
https://github.com/microsoft/WSL/releases/tag/2.0.0