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

10 天前
 moon255

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

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

感谢!

313 次点击
所在节点   WireGuard
3 条回复
moon255
10 天前
发出来格式乱了,我重新写一下。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
7 天前
我连握手都没成功,是因为国内封锁了 wg 的 udp 么,得套 udp2raw 才能握手成功?
moon255
5 天前
@yuhuazhu 我这边是裸连是能握手的,就是一段时间后会断掉,得换个端口。应该是你没配置对吧

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1051283

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX