Wireguard 端口转发问题 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Distributions
Ubuntu
Fedora
CentOS
中文资源站
网易开源镜像站
louisxxx
V2EX    Linux

Wireguard 端口转发问题

  •  
  •   louisxxx 2023-10-20 02:27:12 +08:00 via iPhone 3196 次点击
    这是一个创建于 726 天前的主题,其中的信息可能已经有所发展或是发生改变。
    我的网络拓扑图如下:
    客户端 >gost 服务器 A:8443 >Wireguard 服务器 B:443

    客户端 直连 Wireguard 服务器 B 没问题的。
    客户端 连 gost 服务器 A:8443 就不行。

    以为是 gost 转发的问题,测试了 gost 转发 ssh 到 Wireguard 服务器 B:22 正常。

    以为 gost 转发 UDP 不行,测试了 gost 转发 dns 到 Wireguard 服务器 B:53 也正常。

    说明问题不在 gost 转发上。是不是 Wireguard 不兼容这种端口转发场景?是不是客户端上的 Wireguard 在改路由表时只会自动排除 Wireguard 服务器 B ?这样导致把去往 gost 服务器 A:8443 的流量也倒到隧道上去了?
    13 条回复    2023-10-20 22:21:08 +08:00
    HawkinsSherpherd
        1
    HawkinsSherpherd  
       2023-10-20 03:12:06 +08:00
    你是这样吗?
    客户端 Wireguard 配置文件:
    Endpoint = [gost 服务器 A 地址]:8443
    louisxxx
        2
    louisxxx  
    OP
       2023-10-20 03:19:24 +08:00
    tavimori
        3
    tavimori  
       2023-10-20 03:46:29 +08:00
    由于常见的加密代理都会对 UDP 包二次封装,并且不会对超过可封装长度的 UDP 包进行分片,所以相关的 UDP 应用要预先对包大小进行限制。

    由于不清楚 GOST 协议的头开销,作为保险的解决方法,建议在客户端和服务端的 wireguard 配置上都增加如下配置:
    ```
    MTU=1280
    ```
    如果上述做法有效,可以进一步通过 GOST 协议的头开销对 MTU 进行精确的设定。
    louisxxx
        4
    louisxxx  
    OP
       2023-10-20 03:49:04 +08:00
    @tavimori 试过改 MTU 不起作用,MTU 目前都用的 1200
    tavimori
        5
    tavimori  
       2023-10-20 03:57:12 +08:00
    是不是客户端上的 Wireguard 在改路由表时只会自动排除 Wireguard 服务器 B ?

    这个取决于你在客户端上对“Wireguard 服务器 B”这一 peer 的 AllowedIP 字段的设置和是否有其他路由规则。

    如果是 IPv4 的话,一个简单的 debug 方式是将服务器这一 peer 的 AllowedIP 字段设置成只有他虚拟网的 IP 地址,并以/32 结尾,这样的话在一般的配置情况下,不会带起全局的路由(如果设置成 0.0.0.0/0 ,就会带起全局路由),只会带起到服务虚拟网单一 IP 地址的路由。

    在这样建立连接后可以看下 ping 服务测的虚拟网 IP 通不通。
    louisxxx
        6
    louisxxx  
    OP
       2023-10-20 04:00:45 +08:00
    @tavimori 这个刚刚调试过了。把 AllowedIP 改成了互联地址段。目前 tcpdump 抓包看:
    客户端 >gost 服务器 A:8443 >Wireguard 服务器 B:443 有流量传送。
    Wireguard 服务器 B:443 >gost 服务器 A:8443>客户端 也有回传流量。
    比较奇怪的是 ping 测试 [客户端 >gost 服务器 A:8443 >Wireguard 服务器 B:443 ] 这个连发 5 个包然后才有 5 个连续回复。不是一发一回
    tavimori
        7
    tavimori  
       2023-10-20 04:13:26 +08:00
    Wireguard 套传输层代理的确不是建议的做法。在这一问题上现在市面上没有广泛知晓的好的解决方案。

    我不太了解 gost 对 UDP 转发的处理,但是任何在 UDP 转发层面做的数据缓冲、多个包合并、套到 TCP 上之类的做法,都会导致利用该 UDP 建立的 wireguard 虚拟网里的传输层协议速率控制算法无法正常工作,在很多情况下会大幅劣化网络质量。

    总的来讲,个人理解上 Wireguard 下面不要套东西才能比较良好的工作,起码是不能套 TCP 的东西。
    RobinHuuu
        8
    RobinHuuu  
       2023-10-20 05:04:30 +08:00 via Android
    gost 可以转发 wg 流量,我经常这么干。你的 gost 是 v2 还是 v3 ?在 v2 的文档里有写转发 udp 时末端链必须为某几类,末端我用的是 relay 。细节我不太记得了,仔细看下文档。
    louisxxx
        9
    louisxxx  
    OP
       2023-10-20 05:37:00 +08:00
    @RobinHuuu 版本是 gost 3.0.0-rc10
    louisxxx
        10
    louisxxx  
    OP
       2023-10-20 05:47:59 +08:00   1
    @RobinHuuu 感谢提醒。我又查了一遍文档,我原来的转发命令没有加 keepAlive 参数,加上 keepAlive 参数后转发能连接上了。
    原:docker run --rm --net=host -d gogost/gost -L=udp://:8443/15.33.253.65:443?ttl=60s
    新:docker run --rm --net=host -d gogost/gost -L "udp://:8443/15.33.253.65:443?keepAlive=true&ttl=5s"
    onR3OQ22adAGKq8g
        11
    onR3OQ22adAGKq8g  
       2023-10-20 19:06:37 +08:00
    @louisxxx #10 我想冒昧地问下,你这个是用来做类似 IPLC 链接的 FQ 嘛?
    onR3OQ22adAGKq8g
        12
    onR3OQ22adAGKq8g  
       2023-10-20 19:28:21 +08:00
    @RobinHuuu #8 请问 gost 转发 wg 的速度如何?打算用这个来解决家里 fq 速度慢的问题。之前用 wg ,fq 速度太快了,最垃圾的机器都可以上天。
    RobinHuuu
        13
    RobinHuuu  
       2023-10-20 22:21:08 +08:00 via iPhone
    @ixdeal 只能解决连通性问题,协议层层嵌套,速度无法保证。
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     5421 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 37ms UTC 08:09 PVG 16:09 LAX 01:09 JFK 04:09
    Do have faith in what you're doing.
    ubao 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