V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
moon255
V2EX  ›  WireGuard

握手成功,但是只能单向 ping 通

  •  
  •   moon255 · 8 天前 · 293 次点击

    通过一台公网服务器连接两个内网,内网下的主机能互相访问,大概是这样:

    peer2(debian)————openwrt 路由器 1————peer1(公网服务器)————openwrt 路由器 2————peer3(unraid) 11.0.8.2 192.168.5.1 wg 地址:11.0.8.1 192.168.11.1 11.0.8.7 192.168.5.98 192.168.11.97

    两个刷了 openwrt 的路由器是网关,peer1 、peer2 、peer3 是运行 wireguard 的设备,外层套 udp2raw ,udp2raw 正常连接。在 openwrt 上建立 peer 能正常互访,但是我换到其他设备( debian 和 unraid )就不行了,peer1 能 ping 通 peer2 或 peer3 ,握手也成功,peer2 和 peer3 就 ping 不通 peer1 。在 peer1 上用 tcpdump 查看,只有 echo request ,没有 echo reply 的包。不知道是 peer1 的问题还是路由器防火墙的配置问题?

    配置如下: peer1: [Interface] PrivateKey = ****** Address = 11.0.8.1/24 MTU = 1200 PostUp = iptables -A FORWARD -i %i -j ACCEPT; iptables -A FORWARD -o %i -j ACCEPT; iptables -t nat -A POSTROUTING -o %i -j MASQUERADE PostDown = iptables -D FORWARD -i %i -j ACCEPT; iptables -D FORWARD -o %i -j ACCEPT; iptables -t nat -D POSTROUTING -o %i -j MASQUERADE ListenPort = 51856 [Peer] PublicKey = ****** AllowedIPs = 11.0.8.7/32 ,192.168.11.0/24 [Peer] PublicKey = ****** AllowedIPs = 11.0.8.2/32 ./udp2raw_amd64 -s -l 0.0.0.0:12345 -r 127.0.0.1:51856 -k "******" --raw-mode faketcp --seq-mode 1 --cipher-mode xor -a

    peer2: [Interface] PrivateKey = ****** Address = 11.0.8.2/24 MTU = 1200 PostUp = iptables -A FORWARD -i wg0 -j ACCEPT; iptables -A FORWARD -o wg0 -j ACCEPT; iptables -t nat -A POSTROUTING -o enp2s0 -j MASQUERADE PostDown = iptables -D FORWARD -i wg0 -j ACCEPT; iptables -D FORWARD -o wg0 -j ACCEPT; iptables -t nat -D POSTROUTING -o enp2s0 -j MASQUERADE [Peer] PublicKey = ****** Endpoint = 127.0.0.1:6666 AllowedIPs = 11.0.8.0/24 ./udp2raw_amd64 -c -l 0.0.0.0:6666 -r a.b.c.d:12345 -k "******" --raw-mode faketcp --seq-mode 1 --cipher-mode xor -a

    peer3(由 unraid 自动生成): [Interface] PrivateKey=****** Address=11.0.8.7 ListenPort=51820 MTU=1200 PostUp=logger -t wireguard 'Tunnel WireGuard-wg0 started' PostUp=iptables -t nat -A POSTROUTING -s 11.0.8.0/24 -o br0 -j MASQUERADE PostDown=logger -t wireguard 'Tunnel WireGuard-wg0 stopped' PostDown=iptables -t nat -D POSTROUTING -s 11.0.8.0/24 -o br0 -j MASQUERADE PostUp=ip -4 route flush table 200 PostUp=ip -4 route add default via 11.0.8.7 dev wg0 table 200 PostUp=ip -4 route add 192.168.11.0/24 via 192.168.11.1 dev br0 table 200 PostDown=ip -4 route flush table 200 PostDown=ip -4 route add unreachable default table 200 PostDown=ip -4 route add 192.168.11.0/24 via 192.168.11.1 dev br0 table 200 [Peer] PublicKey=****** Endpoint=127.0.0.1:5555 AllowedIPs=11.0.8.0/24 ./udp2raw_amd64 -c -l 0.0.0.0:5555 -r a.b.c.d:12345 -k "******" --raw-mode faketcp --seq-mode 1 --cipher-mode xor -a

    感谢!

    3 条回复    2024-06-26 10:37:05 +08:00
    moon255
        1
    moon255  
    OP
       8 天前
    发出来格式乱了,我重新写一下。peer2(debian):wg 地址 11.0.8.2 内网地址 192.168.5.1 ,peer1(公网服务器):wg 地址 11.0.8.1 ,peer3(unraid):wg 地址 11.0.8.7 内网地址 192.168.11.97 。
    yuhuazhu
        2
    yuhuazhu  
       5 天前
    我连握手都没成功,是因为国内封锁了 wg 的 udp 么,得套 udp2raw 才能握手成功?
    moon255
        3
    moon255  
    OP
       2 天前
    @yuhuazhu 我这边是裸连是能握手的,就是一段时间后会断掉,得换个端口。应该是你没配置对吧
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2406 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 21ms · UTC 01:38 · PVG 09:38 · LAX 18:38 · JFK 21:38
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.