WSL 使用宿主机上的代理

宿主机通过一个虚拟网卡与 WSL 进行连接,将代理设置为该网卡的 IP 地址即可。

在宿主机上可以通过 ipconfig 命令查看该网卡的地址:

1以太网适配器 vEthernet (WSL):
2
3   连接特定的 DNS 后缀 . . . . . . . :
4   本地链接 IPv6 地址. . . . . . . . : fe80::6627:f3c8:ae5f:da09%46
5   IPv4 地址 . . . . . . . . . . . . : 192.168.96.1
6   子网掩码  . . . . . . . . . . . . : 255.255.240.0
7   默认网关. . . . . . . . . . . . . :

在 WSL 虚拟机上可以通过查看 /etc/resolv.conf 获取宿主机虚拟网卡地址:

1# This file was automatically generated by WSL. To stop automatic generation of this file, add the following entry to /etc/wsl.conf:
2# [network]
3# generateResolvConf = false
4nameserver 192.168.96.1

代理软件

代理软件需要开启允许局域网(Allow LAN)接入。此外,代理软件如果在创建虚拟网卡之前就已经启动,则可能需要重启代理软件。

防火墙

宿主机的防火墙可能拦截 WSL 虚拟机的网络流量,需要在管理员模式下执行以下两条命令:

1New-NetFirewallRule -DisplayName "WSL" -Direction Inbound -InterfaceAlias "vEthernet (WSL)" -Action Allow
2New-NetFirewallRule -DisplayName "WSL" -Direction Outbound -InterfaceAlias "vEthernet (WSL)" -Action Allow

配置后可能需要重启 WSL:

1wsl --shutdown