WSL 访问宿主机 & 使用宿主机代理
目前,可以在 WSL Settings 中切换 WSL 的网络模式。NAT 模式是传统的网络模式,WSL 通过宿主机的一层 NAT 来接入网络;而新的 Mirror 模式将尝试融合两个系统的网络结构,使用 127.0.0.1 就可以在 WSL 内外互相访问服务,非常方便。
1. WSL 如何访问宿主机
1.1. NAT 模式
在默认的 NAT 模式下,在 WSL 中执行如下命令查看宿主机 IP 地址:
ip route show | grep -i default | awk '{ print $3}'一般的结果为 172.17.16.1
WSL 中通过此地址可以直接访问宿主机中的服务。比如宿主机在 8080 端口开了个 nginx 服务器,在 WSL 内通过 http://172.17.16.1:8080 就可以访问到
1.2. Mirror 模式
在 Mirror 模式下,WSL 内直接通过 127.0.0.1 就可以访问宿主机服务
2. WSL 如何使用宿主机代理
2.1. NAT 模式
NAT 模式下,需要在宿主机代理处设置监听。有两种方法,以 Mihomo 为例:
方法 1:设置
allow-lan: true和bind-address: "*",允许局域网所有地址使用代理方法 2:为 WSL 专门添加一个入站监听,此方法安全性更高。添加如下配置:
listeners: - name: wsl-in type: mixed port: 8890 listen: 172.17.16.1 # 监听WSL网桥地址
设置完成以后,WSL 内就可以通过 172.17.16.1 来访问宿主机代理了。
比如在 shell 中配置代理:
HTTP_PROXY_URL=http://172.17.16.1:8890
SOCK5_PROXY_URL=socks5://172.17.16.1:8890
PROXY_BYPASS=192.168..,172.16..,.local,localhost,127.0.0.1
export http_proxy=${HTTP_PROXY_URL}
export https_proxy=${HTTP_PROXY_URL}
export all_proxy=${SOCK5_PROXY_URL}
export no_proxy=${PROXY_BYPASS}2.2. Mirror 模式
在 Mirror 模式下,WSL 直接使用 127.0.0.1 就可以正常访问宿主机代理服务,无需额外设置
HTTP_PROXY_URL=http://127.0.0.1:7890
SOCK5_PROXY_URL=socks5://127.0.0.1:7890
PROXY_BYPASS=192.168..,172.16..,.local,localhost,127.0.0.1
export http_proxy=${HTTP_PROXY_URL}
export https_proxy=${HTTP_PROXY_URL}
export all_proxy=${SOCK5_PROXY_URL}
export no_proxy=${PROXY_BYPASS}WSL 访问宿主机 & 使用宿主机代理
https://blog.openyq.top/posts/64763/