破案了 (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 修复了网络连接问题
安装 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
然后创建一个计划任务:
特别需要注意的是,一定要勾选 “使用最高权限运行”。