管理杂谈OA答疑ERP答疑教程搜索

告别手动设代理:让 WSL 自动继承 Windows 代理


WSL 新版实验功能一行配置搞定,再也不用每次手动 export http_proxy 了。


问题背景

用 WSL 做开发的同学应该都遇到过这个烦恼:Windows 上开着代理软件,但在 WSL 终端里跑 curl、 apt、 pip 依然连不上,还得手动敲:

  1. export http_proxy=http://127.0.0.1:7890
  2. export https_proxy=http://127.0.0.1:7890

每次打开新终端都要重来一遍,或者写进 .bashrc 又容易忘记端口改了没更新。

现在有了更优雅的解法——通过 .wslconfig 让 WSL 自动跟 Windows 同步代理。


原理简介

WSL 的实验功能 networkingMode=mirrored 会让 WSL 和 Windows 共用同一套网络栈,两者拥有相同的 IP 地址。在此基础上, autoProxy=true 会让 WSL 自动读取 Windows 的系统代理设置,无需任何手动配置。

关键组合: mirrored 网络模式 + autoProxy,缺一不可。


操作步骤

1. 更新 WSL 到 pre-release 版本

实验功能需要较新的版本,在 PowerShell 中运行:

  1. wsl --update --pre-release

2. 编辑 .wslconfig 文件

该文件位于 Windows 用户目录,用记事本打开:

  1. notepad "$env:USERPROFILE\.wslconfig"

3. 写入以下配置

  1. [wsl2]
  2. nestedVirtualization=true
  3. ipv6=true
  4. [experimental]
  5. autoMemoryReclaim=gradual
  6. networkingMode=mirrored
  7. dnsTunneling=true
  8. firewall=true
  9. autoProxy=true

4. 重启 WSL

  1. wsl --shutdown
  2. wsl

5. 验证代理是否生效

  1. curl https://ipinfo.io

如果返回的 IP 是代理节点的 IP,说明配置成功。


配置项说明

配置项
作用
networkingMode=mirrored
WSL 与 Windows 共享网络,同一个 IP 地址
autoProxy=true
自动继承 Windows 系统代理设置,核心配置
dnsTunneling=true
DNS 查询走 Windows 通道,解决 DNS 污染问题
firewall=true
使用 Windows 防火墙规则统一管理
autoMemoryReclaim=gradual
WSL 闲置时逐步释放内存,避免吃满 RAM
nestedVirtualization=true
允许在 WSL 内运行虚拟机,Docker 等需要

注意事项

配置生效后: 再也不需要在 .bashrc 里写 export http_proxy 了,Windows 代理开着,WSL 自动跟上。


WSL 版本 ≥ 0.67.6 · 需要 pre-release 版本 · 实验性功能


参考资料


更多精彩文章浏览...
点击右上角图标分享到朋友圈
官方网站:http://www.clicksun.cn
咨询热线:400-186-1886
服务邮箱:service@clicksun.cn