WSL2 如何使用宿主机代理

1,964 阅读3分钟

🤔 遇到过这样的困扰吗?

作为开发者,你是不是也遇到过这样的场景:在 Windows 上开着代理美滋滋地访问各种资源,结果切换到 WSL2 环境,发现网络请求全部超时…… 😭

明明宿主机的代理工作得好好的,为什么 WSL2 就是用不了呢?

今天就来分享一个超简单的解决方案,只需要一个配置文件,让 WSL2 自动继承宿主机的代理设置!​

🔍 问题的根源

由于 WSL2 采用了独立的虚拟化网络架构,它和 Windows 宿主机之间的网络并不是完全共享的。这就导致了即使你在 Windows 上开启了代理,WSL2 也无法直接使用。

传统的解决方案需要手动配置环境变量,每次重启还要重新设置,非常麻烦。但其实,微软早就提供了更优雅的解决方案!​

✨ 完美解决方案

第一步:创建配置文件

在 Windows 用户目录下(C:\Users<你的用户名>)创建一个名为 .wslconfig 的文件。

💡 小提示​:如果文件已存在,直接编辑即可;如果不存在,可以用记事本创建。

第二步:添加配置内容

.wslconfig 文件中输入以下内容:

[experimental]

autoMemoryReclaim=gradual

networkingMode=mirrored

dnsTunneling=true

firewall=true

autoProxy=true

 

第三步:重启 WSL

在 PowerShell 或命令提示符中执行:

wsl --shutdown

 

然后重新启动你的 WSL2 发行版,大功告成!🎉

📖 配置项详解

让我们来看看这些配置项都是什么意思:

🔸 networkingMode=mirrored
这是核心配置!启用镜像网络模式后,WSL2 会完全镜像 Windows 宿主机的网络设置,实现真正的网络集成。

🔸 autoProxy=true
自动代理功能,让 WSL2 自动继承 Windows 的代理配置,无需手动设置环境变量。

🔸 dnsTunneling=true
启用 DNS 隧道,确保 DNS 解析也能正确使用代理。

🔸 firewall=true
让 WSL2 遵守 Windows 防火墙规则,提高安全性。

🔸 autoMemoryReclaim=gradual
这是个额外的优化项,让 WSL2 更智能地回收内存资源。

💡 实用提示

  1. 验证配置是否生效​:在 WSL2 中执行 curl ipinfo.io,如果返回的 IP 是代理服务器的 IP,说明配置成功!
  2. 配置文件位置很重要​:.wslconfig 必须放在 C:\Users<用户名> 目录下,放在其他位置不会生效。
  3. 注意权限问题​:某些代理软件需要在设置中允许局域网连接,确保已开启该选项。
  4. 兼容性说明​:这些实验性功能需要较新版本的 WSL2,建议更新到最新版本。可以通过 wsl --version 查看当前版本。

🎯 总结

通过简单的配置,我们成功让 WSL2 自动使用了宿主机的代理设置,告别了手动配置环境变量的麻烦。

关键要点回顾​:

  • ✅ 在用户目录创建 .wslconfig 文件
  • ✅ 启用 mirrored 网络模式和 autoProxy 功能
  • ✅ 重启 WSL2 使配置生效

这个方法不仅简单,而且一劳永逸。配置一次后,以后每次启动 WSL2 都会自动生效,再也不用担心网络问题啦!

📚 参考资料

如果你想深入了解更多 WSL2 的配置选项,可以查看:


你有遇到过类似的问题吗?欢迎在评论区分享你的经验!​ 👇

如果这篇文章帮到了你,记得点赞👍和转发哦~