OmoineMie
V2EX  ›  问与答

wireguard 两个节点只能单向通是什么原因

  •  
  •   OmoineMie · May 11, 2025 · 1891 views
    This topic created in 424 days ago, the information mentioned may be changed or developed.

    A ( 10.0.0.1 ),B ( 10.0.0.2 )两个 wireguard 节,a 做服务端,b 能正常连接,发送接收流量正常,b 做服务端,a 能连上,只有发送,没有接收流量,两个节点防火墙端口均已开放,都是公网 IPv6 直连,不关注子网,AB 两个本身的 ip 都不通,这是什么原因

    5 replies    2025-05-13 10:00:11 +08:00
    yinmin
        1
    yinmin  
       May 11, 2025 via iPhone
    加参数 PersistentKeepalive = 25 试试
    catsnl
        2
    catsnl  
       May 12, 2025
    楼上正解,wireguard 是 udp 无状态的,不做心跳间隔防火墙就拦截掉了
    OmoineMie
        3
    OmoineMie  
    OP
       May 12, 2025
    @yinmin 有参数,15 秒
    yinmin
        4
    yinmin  
       May 13, 2025 via iPhone
    wireguard 胡乱写一个服务器 ip 地址,也能连接成功,但是只有发送流量没有接收流量。

    你的问题大概率是:B 的 ipv6 只能访问外网,不允许外网访问 B 的地址,你 B 开一个 http 端口看看外网能正常访问吗?(有些电信运营商会阻断 ipv6 对外提供服务)

    解决方案就是:b 的 wireguard 去连 a 设 PersistentKeepalive ,只要维持 wireguard 连接不断开,从 tcp/ip 层,a 与 b 就能互通。
    OmoineMie
        5
    OmoineMie  
    OP
       May 13, 2025
    @yinmin 问题是 B 做服务端,C 又能正常连接吗,c 和 a 在一个网络下,只是不同终端,所以到底是哪个有问题
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   1000 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 30ms · UTC 19:26 · PVG 03:26 · LAX 12:26 · JFK 15:26
    ♥ Do have faith in what you're doing.