修复 WSL 无 Internet 网络连接问题

修复 WSL 无 Internet 网络连接问题

从前几个月开始,我的设备上的 WSL2 就出现了无法访问互联网的情况,Ping 任何互联网地址都不通:同时,值得一提的是,DNS解析还在正常工作:同时,Docker Desktop 启动的 Docker 容器也能联网。最要命的是,即使重装系统之后,该问题依旧存在。不是网关与IP...

破案了 (2022/4/24)

今天装蓝叠模拟器发现也没网,最后发现是 iKuai 设置禁止了二级路由,关闭后 WSL 和蓝叠模拟器都可以正常使用了。

从前几个月开始,我的设备上的 WSL2 就出现了无法访问互联网的情况,Ping 任何互联网地址都不通:

路由器网关可通,但是任何互联网地址都不通

同时,值得一提的是,DNS解析还在正常工作:

nslookup 跑的还挺开心的

同时,Docker Desktop 启动的 Docker 容器也能联网。

最要命的是,即使重装系统之后,该问题依旧存在。

不是网关与 IP 的问题

同时我也查了一遍

No network connection in any distribution under WSL 2

No internet connectivity from WSL2/Ubuntu

诸如此类的问题,不过显而易见都没有起效果。

在排除了防火墙和 swap file 的问题后,github 指出 WSL2 分配的 IP 不在对应的 IP 段内,也就无法联网。

不过查看了一下自己的 IP 段,似乎也挺正常的。

上面两个问题多是 DNS 问题,和我的情况不太符合(毕竟连 IP 都 Ping 不通,不太像是 DNS 的问题)

WSL2-VPNKIT

在其中的一个问题下面发现了这样一个回复:

测试报告 wsl-vpnkit 修复了网络连接问题

sakai135/wsl-vpnkit

  

安装 WSL-VPNKIT

访问 https://github.com/sakai135/wsl-vpnkit/releases/tag/v0.3.2 下载构建好的二进制文件,不要解压。

同目录下使用 PowerShell 运行:

wsl --import wsl-vpnkit $env:USERPROFILE\wsl-vpnkit wsl-vpnkit.tar.gz --version 2
wsl -d wsl-vpnkit

再运行:

wsl.exe -d wsl-vpnkit service wsl-vpnkit start

启动服务,WSL-VPNKIT 会创建一个到 Windows 宿主机的 VPN 连接,共享网络,WSL 的网络随即恢复。

WSL 的网络在启动 WSL-VPNKIT 后恢复正常

开机自启动

由于 WSL-VPNKIT 不会开机自启动,需要创建一个脚本帮助恢复桥接。

start-wsl2-vpn-bridge.bat:

@echo off
wsl.exe -d wsl-vpnkit service wsl-vpnkit start

然后创建一个计划任务:

特别需要注意的是,一定要勾选 “使用最高权限运行”。

Comment