求助, windows 版本的 WireGuard,内网测试连接可以,切换到公网映射端口,就连不上

2023-07-21 09:06:20 +08:00
 slowhand

windows 版本的 WireGuard ,内网测试连接可以,切换到公网映射端口,就连不上。 不知道是配置问题,还是被墙了(服务器在本地)。 配置如下: 服务端配置

[Interface]
PrivateKey = ……
ListenPort = 8072
Address = 192.168.200.200/32
[Peer]
PublicKey = ……
AllowedIPs = 192.168.200.201/32

客户端配置

[Interface]
PrivateKey = ……
Address = 192.168.200.201/32
[Peer]
PublicKey = ……
AllowedIPs = 0.0.0.0/1, 128.0.0.0/1
Endpoint = xxx.xxx.xxx.xxx:18072

公网端口连不上,流量显示只有发,没有收。 日志则是:

Sending handshake initiation to peer 1 (xxx.xxx.xxx.xxx:18072)
……
Handshake for peer 1 (xxx.xxx.xxx.xxx:18072) did not complete after 5 seconds, retrying (try 2)
1664 次点击
所在节点   WireGuard
11 条回复
yyysuo
2023-07-21 09:30:56 +08:00
1:检查一下域名解析是否正常。
2:服务端如果在主路由上,是 docker 版本的话,固件可能存在端口回流的问题,可能需要换固件。
3:检查主路由的端口映射。

我的主路由是 10.10.10.1 ,wireguard 服务端部署在非主路由的内网机上,配置如下
[Interface]
PrivateKey = xxxxxxxxxx
Address = 10.8.0.8/24
DNS = 10.10.10.1

[Peer]
PublicKey = xxxxxxx
PresharedKey = xxxxxxxxx
AllowedIPs = 0.0.0.0/0, ::/0, 192.168.1.0/24, 10.10.10.0/24, 192.168.4.0/24, 192.168.123.0/24
Endpoint = mydomian:myport
iniMeow
2023-07-21 11:59:55 +08:00
子网掩码问题? 32 改成 24
zbinlin
2023-07-21 12:15:44 +08:00
为什么服务器的监听端口是 8072 ,而客户端配置的 endpoint 里端口是 18072 ?
bt7vip
2023-07-21 12:30:13 +08:00
@zbinlin 端口对不上确实显示有发无收
ZRS
2023-07-21 12:40:38 +08:00
可能是 hairpin nat 配置不正确的问题
slowhand
2023-07-21 13:33:02 +08:00
感谢帮助!

@yyysuo 域名解析正常,配置里面写的是域名,日志里显示是:to peer 1 (IP 和端口)。

服务端放在 windows 系统的虚拟机上( VMware )。

端口映射测试正常。用网络助手分别创建 tcpserver 和 tcpclient 连接测试的(用的域名和端口)

@iniMeow 试了一下,还是不行。

@zbinlin @bt7vip 内部端口 8072 ,映射到外部 18072

@ZRS 不太了解,我查一下。
emberzhang
2023-07-21 15:06:02 +08:00
wireguard 不是走的 UDP 么
bt7vip
2023-07-21 16:36:48 +08:00
你是怎么部署的,是将部署在本地 Windows 服务端的暴露在外,外面连进来吗?这种情况 Windows 是可以的,公钥私钥要填对。
如果是 VPS 部署,搭网桥连进家里,好像 Windows 做网桥 不好实现,用 Linux 几条防火墙转发就可以了。
我最开始是用 tcpdump 看 cl 流量有没有发出去,server 流量有没有进来,有没有转出去一步一步排查的,踩过很多坑,熟练了就很快了,现在 win ,Linux ,Android 三端组网。
slowhand
2023-07-21 17:12:49 +08:00
@bt7vip 就是 windows 主机,通过端口映射,暴露到公网,想要从外面连进来。
映射端口也测试过,正常的(比如内网端口发布 web 页面,公网 IP 加映射端口可以正常访问)。
同内网下,客户端的 Endpoint 配置服务端的内网 IP 和端口,可以正常连接;
但是配置成公网 IP 和映射端口,则连不上。(试过胡乱填端口,也是同样现象)
zbinlin
2023-07-21 19:14:45 +08:00
wireguard 用的是 UDP 的,你端口映射时选对了协议没?
emberzhang
2023-07-21 19:55:40 +08:00
windows 做服务端记得再看看系统防火墙开放端口没

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

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

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

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

© 2021 V2EX