WSL 与虚拟机

通过“共享代理”让 WSL2、虚拟机、局域网内的来宾使用加速。

为什么需要共享

本机代理默认只接受本机连接。WSL2、虚拟机、Linux 原生 Docker 的容器来自其他地址(通常是私有网段),需要显式开启共享。

开启共享

桌面客户端:代理设置 → 共享代理。Linux:

bash
cnb share on --cidr 172.16.0.0/12      # WSL2 / Docker 常用网段
cnb share credential create wsl         # 生成来宾凭据,口令只显示一次
cnb share status
  • 只允许私有网段(10.0.0.0/8、172.16.0.0/12、192.168.0.0/16 等)。
  • 每个来宾使用独立的用户名和口令。
  • 关闭共享或撤销凭据会立即断开该来宾的连接:cnb share off、cnb share credential revoke <ID>。

WSL2 内设置

bash
HOST_IP=$(ip route show | awk '/default/ {print $3}')
export https_proxy="http://wsl:<口令>@${HOST_IP}:<共享端口>"
export http_proxy="$https_proxy"

较新的 WSL 支持 mirrored 网络模式,可以直接访问 127.0.0.1。是否可用取决于你的 WSL 版本与配置。

虚拟机(VMware、Parallels、VirtualBox、UTM)

  1. 确认虚拟机网络为 NAT 或桥接,记下宿主机在该网络中的地址。
  2. 在客户端共享代理中允许虚拟机所在网段,生成凭据。
  3. 在虚拟机中设置代理为 http://<用户名>:<口令>@<宿主机地址>:<共享端口>。