wsl: 检测到 localhost 代理配置,但未镜像到 WSL。NAT 模式下的 WSL 不支持 localhost 代理。

最近似乎是windows wsl2进行了更新,可以看WSL2 的 2.0 更新彻底解决网络问题 - 知乎 (zhihu.com)这篇文章。

打开我许久没用的wsl,Ubuntu22wsl2突然给了一个提示wsl: 检测到 localhost 代理配置,但未镜像到 WSL。NAT 模式下的 WSL 不支持 localhost 代理。一看到代理突然想起来,当时wls2未更新镜像网络功能的时候,我用到了wls2下的全局代理,可以看这篇文章为 WSL2 一键设置代理 - 知乎 (zhihu.com),在目前版本的使用过程发现这样的代理方式已经失效

ping google.com
PING google.com (172.217.163.46) 56(84) bytes of data.
^C
--- google.com ping statistics ---
33 packets transmitted, 0 received, 100% packet loss, time 33250ms

根据github上的issue回复,确实也是新版wsl2的问题,可以看一下wsl 2.0.0 的Release 2.0.0 · microsoft/WSL (github.com)

按照issue上的解决方法

在Windows中的C:\Users\<your_username>目录下创建一个.wslconfig文件,然后在文件中写入如下内容

[experimental]
autoMemoryReclaim=gradual    # gradual  | dropcache | disabled
networkingMode=mirrored
dnsTunneling=true
firewall=true
autoProxy=true

至于.wslconfig的作用

.wslconfig
存储在你的 %UserProfile% 目录中。
用于在作为 WSL 2 版本运行的所有已安装的 Linux 发行版中全局配置设置。
只能用于 WSL 2 运行的发行版。 作为 WSL 1 运行的发行版不受此配置的影响,因为它们不作为虚拟机运行。
要访问 %UserProfile% 目录,请在 PowerShell 中使用 cd ~ 访问主目录(通常是用户配置文件 C:\Users<UserName>),或者可以打开 Windows 文件资源管理器并在地址栏中输入 %UserProfile%。 该目录路径应类似于:C:\Users<UserName>.wslconfig
WSL 将检测这些文件是否存在,读取内容,并在每次启动 WSL 时自动应用配置设置。 如果文件缺失或格式错误(标记格式不正确),则 WSL 将继续正常启动,而不应用配置设置。

下一步打开命令行输入下面命令关闭wsl,然后重新打开wsl就可以了

wsl --shutdown

如何没有恢复正常,可以考虑重置或者删去wsl之前的网络代理配置

参考链接

为 WSL2 一键设置代理 - 知乎 (zhihu.com)

WSL2 的 2.0 更新彻底解决网络问题 - 知乎 (zhihu.com)

wsl: 检测到 localhost 代理配置,但未镜像到 WSL。NAT 模式下的 WSL 不支持 localhost 代理。 · Issue #10753 · microsoft/WSL (github.com)

猜你喜欢

转载自blog.csdn.net/weixin_50925658/article/details/135111897
今日推荐