wsl2 镜像网络模式与 clash tun 模式冲突的解决方案 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
kuingsmile
V2EX    程序员

wsl2 镜像网络模式与 clash tun 模式冲突的解决方案

  •  3
     
  •   kuingsmile
    Kuingsmile 2023-12-13 16:33:25 +08:00 8379 次点击
    这是一个创建于 699 天前的主题,其中的信息可能已经有所发展或是发生改变。

    参考 t/975098?p=2 中有人提到的,同时设置了 wsl2 镜像网络模式和 clash 的 tun 模式之后,wsl2 内的 https 访问会无法连接的问题。

    经过测试发现原因是由于 clash 的 tun 模式默认 MTU 为 9000 ,修改为 1500 就正常了。

    先使用命令ifconfig,查找 ip 地址为198.18.0.1的网卡的名字,比如eth4,然后 root 用户执行ip link set eth4 mtu 1500就可以了。

    想开机自动执行的话,在/etc/systemd/system目录下添加一个文件mtufix.service,内容:

    [Unit] Description=clash tun mtu fix After=network-online.target [Service] ExecStart=/usr/sbin/ip link set eth4 mtu 1500 [Install] WantedBy=multi-user.target 

    然后执行

    systemctl enable mtufix.service systemctl start mtufix.service 
    14 条回复    2025-01-01 13:14:43 +08:00
    zuotun
        1
    zuotun  
       2023-12-13 17:25:27 +08:00
    解决方案是别用镜像模式, 宿主机都访问不了虚拟机的端口....
    docker 暴露一个端口, WSL 用 Windows 对外 IP 可以访问, Windows 用相同 IP 或者 127 都不通, 这算什么事?
    不仅如此, 还连带我其他 Windows 上直接起的也不行, node 项目唤起浏览器然后 localhost:3000 不通....
    我甚至都没开什么 clash, 关闭镜像网络重启之后就好了, 过程中 Docker Desktop 会断开连接别的也没什么.
    Jat001
        2
    Jat001  
       2023-12-13 23:15:35 +08:00


    无法复现,不知道是不是修了,还是因为我用的 fake-ip 地址不一样

    CFW 0.20.39
    WSL 2.0.14
    Jat001
        3
    Jat001  
       2023-12-14 01:18:13 +08:00
    多次测试后发现确实 mtu 会影响 wsl 内的网速,有时候会导致连接超时

    另外 systemd-networkd 也可以管理网络设置,配置文件还更简单

    /etc/systemd/network/10-eth7.network

    ```
    [Match]
    Name=eth7

    [Link]
    MTUBytes=1500
    ```

    理论上这样设置后每次开启 tun mode ,networkd 都会重新设置 eth7 的 mtu ,不像 systemd service 只会运行一次

    不过 networkd 有个 bug ,就是热插拔的设备不会在接入后重新配置,看 github 已经修了,不知道是不是我这系统里的 systemd 太老了

    https://github.com/systemd/systemd/pull/22540
    Jat001
        4
    Jat001  
       2023-12-14 03:47:57 +08:00
    @Jat001 #3 又测试了下,在 wsl 启动后再打开 tun mode 会导致 wsl 内无法联网,所以没必要纠结热插拔的问题了
    Clouder1
        5
    louder1  
       2023-12-21 23:29:34 +08:00
    解决了,赞。
    奇怪的是这个问题在我的设备上是突然出现的,之前一段时间开 mirrored mode 和 Clash Tun mode 也没遇到这个情况,今天突然连不上网了.
    rozbo
        6
    rozbo  
       2024-01-05 14:23:54 +08:00
    真灵!这你是怎么发现的!
    arc9un
        7
    arc9un  
       2024-02-19 18:14:14 +08:00
    还有一种解决方法
    https://github.com/clash-verge-rev/clash-verge-rev/issues/329
    把 CFW 换成 clash-verge-rev(目前还在更新),clash-verge-rev 有个 merge 功能支持直接设置 tun 的 mtu 。
    直接在订阅里新建一个 merge ,加上
    ```
    tun:
    mtu: 1500
    ```
    这样不用在 wsl 里设置什么东西,就能设置 tun 虚拟网卡的 mtu 。设置完后记得重启电脑生效。
    srwxyz
        8
    srwxyz  
       2024-03-14 08:33:48 +08:00 via iPhone
    @zuotun 同感,已切默认模式,自己配路由都比这玩意好使
    hxf168482
        9
    hxf168482  
       2024-03-29 09:11:07 +08:00
    今天发现在 mirror 模式下,mvn install 无法下载 jar 包,发现原来是这个问题,点赞。
    Nolca
        10
    Nolca  
       2024-04-03 09:18:15 +08:00
    似乎镜像模式也能从 windows 访问 wsl 内端口,参考 https://github.com/microsoft/WSL/issues/10632
    不过我目前还没成功,成功了再回复。
    Nolca
        11
    Nolca  
       2024-04-03 10:33:39 +08:00
    最后还是 networkingMode=NAT ,mirrored 目前不能 windows 到 wsl
    lllei
        12
    lllei  
       2024-05-11 12:03:28 +08:00
    @Nolca <https://learn.microsoft.com/en-us/windows/wsl/networking> 中有提到解决方案:

    ```powershell
    Set-NetFirewallHyperVVMSetting -Name '{40E0AC32-46A5-438A-A0B2-2B479E8F2E90}' -DefaultInboundAction Allow
    ```
    JuzerQ
        13
    JuzerQ  
       2024-06-14 11:35:38 +08:00
    只要 mtu 改成 1500 就行了吗,v2rayN 设置里面可以设置 tun 模式的 mtu 值
    ![]( https://imgur.com/a/6B5Mzt2)
    3yDDft4
        14
    3yDDft4  
       314 天前
    非常感谢,现在最新版的 clash-verge-rev 已经支持在设置中设置 mtu 了
    设置->Tun 模式那个齿轮->最大传输单元改为 1500 。

    同时我还按照上面的朋友提到的<https://learn.microsoft.com/en-us/windows/wsl/networking> 这篇文章的解决方案处理了一下防火墙的问题:
    ```powershell
    Set-NetFirewallHyperVVMSetting -Name '{40E0AC32-46A5-438A-A0B2-2B479E8F2E90}' -DefaultInboundAction Allow
    ```
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     956 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 25ms UTC 21:52 PVG 05:52 LAX 13:52 JFK 16:52
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86