LOADING

加载过慢请开启缓存 浏览器默认开启

wsl2 中 tun 连接无法访问互联网解决方法

2026/5/27 2026/5/27 笔记

首先 win + r 输入%userprofile%创建.wslconfig文件

写入

[wsl2]
networkingMode=mirrored

再执行

wsl --shutdown   

重启wsl

在wsl中执行

ip a

找到win tun对应的网卡

一般长这样

2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 9000 qdisc mq state UP group default qlen 1000
    link/ether 00:15:5d:a7:11:9c brd ff:ff:ff:ff:ff:ff
    altname enx00155da7119c
    inet 198.18.0.1/30 brd 198.18.0.3 scope global noprefixroute eth0
       valid_lft forever preferred_lft forever
    inet6 fe80::99f9:8a3b:164e:8c59/64 scope link nodad noprefixroute
       valid_lft forever preferred_lft forever

一般找 inet 198.18.0.1 对应的网卡,这里是eth0

可以发现mtu被默认设置成了9000(因为代理软件的MTU通常设置就是9000(CPU性能较好)),但是wsl2的是1500
而当 Windows 宿主机上的虚拟/物理网卡处于 9000 MTU 巨型帧时,镜像网络组件在向 Linux 侧转发 TCP 握手包时会出现静默丢包。将其降回 1500

所以需要把 tun 的mtc手动设置成1500

sudo ip link set eth0 mtu 1500

其中eth0替换成实际看见的网卡

但是这仍然治标不治本,不过根据虚空终端上的记录,我们确实可以直接在tun这里把mtu指定成1500问题解决

参考资料
https://github.com/microsoft/WSL/issues/11686
https://github.com/ninehills/blog/issues/93
https://www.v2ex.com/t/1000081