奇怪的日志
最近我发现了一个令人费解的地方:我的远程桌面通过WireGuard进行连接,但是最近却突然连不上了。更加奇怪的是,同一个子网内的两台设备,设备A是可以连上的设备B确是不能连上的。更加古怪的是,设备A和B是在同一物理子网下的,拥有几乎一致的配置。而且在这种情况下,我通过设备A做跳板能是够连接到设备B的。
最后经过一番检查,发现设备B的Wireguard日志存在报错,它不能正确连接到WireGuard的服务器。
奇怪的日志如下,这里隐去了IP地址等敏感信息:
2026-07-15 19:33:43.053928: [TUN] [client] Handshake for peer 1 (x.x.x.x:12345) did not complete after 5 seconds, retrying (try 9)
2026-07-15 19:33:43.053928: [TUN] [client] Sending handshake initiation to peer 1 (x.x.x.x:12345)
2026-07-15 19:33:48.522142: [TUN] [client] Handshake for peer 1 (x.x.x.x:12345) did not complete after 5 seconds, retrying (try 10)
2026-07-15 19:33:48.522142: [TUN] [client] Sending handshake initiation to peer 1 (x.x.x.x:12345)
2026-07-15 19:33:53.652097: [TUN] [client] Sending handshake initiation to peer 1 (x.x.x.x:12345)
2026-07-15 19:33:58.977940: [TUN] [client] Handshake for peer 1 (x.x.x.x:12345) did not complete after 5 seconds, retrying (try 2)
可以看到的是,这里说错误主要是在握手上存在问题,也就是说客户端根本连接不到服务器。
寻找解决办法
我在网上搜索了很多解决办法,其中一些是说MTU存在问题,这样就导致握手的包被丢了。但是这非常奇怪,因为我的两台设备一个可以连上,另一个却不行,这说明并不是MTU存在问题。另一个想法是时间同步存在问题。也就是说,握手的包是存在时间戳的,而这些时间戳和服务器的时间戳不匹配。被服务器识别为了重放攻击,所以连接失败了。这里列一些参考文章:
- 解决WireGuard在OpenWrt路由器上重启后无法连接问题的过程 - WuSiYu Blog
- wireguard: unable to route all traffic through interface · Issue #51258 · NixOS/nixpkgs
- Wireguard客户端在nixos上没有完成握手。-腾讯云开发者社区-腾讯云
最后我是通过时间同步服务器修改来解决的这个问题。
时间同步服务
Windows修改时间同步服务器的方法比较多,这里比较推荐的是直接在设置中进行修改。这里有两篇参考文章,分别对应Windows 10系统和Windows 11系统,以及一个通用方法。
- Win10:Windows 10自动同步时间:NTP服务器 & 更换服务器办法 - 知乎
- Win11:按 Windows + I 打开 设置 → 时间和语言 → 日期和时间。在“其他设置”中找到 更改时间服务器,点击更改。
- 通用方法:按Win+R,运行
timedate.cpl,在Internet 时间选项卡中修改。
推荐的同步服务器
这里推荐几个时间同步服务器,可以选用一个自己能正常连接上的服务器来使用。我在测试的时候发现短时间内多次进行同步可能会失败,这有可能是时间同步服务器为了防止低dos攻击而设置的防护措施。
- 国家授时中心:ntp.ntsc.ac.cn
- 清华大学开源镜像站:ntp.tuna.tsinghua.edu.cn
- 阿里云:ntp.aliyun.com
- 美国国家标准与技术研究院(NIST):time.nist.gov
- 微软时间同步:time.windows.com
微软的服务经常性连不上。

Comments NOTHING