救救孩子!能正常使用的 WireGuard 突然就不通了

2022-06-01 13:10:57 +08:00
 MrLonely

画图软件我不会用。我用文字描述吧。

A B 两台设备分别处于 A B 两点。

  1. 两点都是电信宽带 ✅

  2. 两点都是 RouterOS ,运行最新版 7.2.3 系统。同时额外安装了 zerotier ,加入了同一网络。

  3. 在两个网络下通过 ipip.net 查看公网 IP ,与路由器所显示的 WAN 口 IP 一致。✅

  4. 根据官方教程 https://help.mikrotik.com/docs/display/ROS/WireGuard 进行配置。

  5. 使用 MikroTik 官方的 DDNS 解析 IP ,两设备 Ping 对方 DDNS 域名都可以 Ping 通。并且显示 Ping 的 IP 与第 3 点处看到的一致。✅

  6. 教程里的创建接口,手动设置 WireGuard 接口 IP ,互相交换 public-key ,endpoint+port ,allowed ip ,firewall accept ,全部检查过不止一次。

  7. 完全一样的配置,之前配置好了之后还正常使用了一段时间。

  8. 在完全没有任何修改的情况下突然连不上了。

  9. A 点与处于 Azure HK 节点的 同样是 7.2.3 的 RouterOS 设备之间一切正常,point to point 正常,site to site 也正常。

  10. B 点与 Azure HK 节点完全不通,就像 B 点与 A 点不通一样的情况。

  11. 现在 zerotier 是通的。所以我暂时把 A B 两点的 subnet 的 Route 放在了 zerotier 接口上。与此同时依然在持续测试 A 与 B 之间的 point to point ping 。

  12. 按理说双公网 IP 下不需要添加 persistent keep alive 了,但是我还是习惯性地会给所有的 peer 都加上 00:00:25 ,之前看一个教程里推荐的设置。

我自己的网络知识都是现学现卖,不知道还有什么更高级的网络工具可以进行更深层次的问题排查。 所以大家有什么下一步排错的 idea 吗?

4071 次点击
所在节点    问与答
12 条回复
daveh
2022-06-01 14:53:24 +08:00
可能原因很简单,被封了。
挂 udp2raw 试试看。
MrLonely
2022-06-01 15:15:01 +08:00
@daveh 是那个端口的 UDP 被封了吗?该不会跟我前两天挂了两天京东云无线宝有关系吧?
Qetesh
2022-06-01 16:56:48 +08:00
wireguard 在 linux 可以开内核日志,看有没有报错
guoqiao
2022-06-01 16:59:49 +08:00
也许只是因为那个日子快到了?
daveh
2022-06-01 17:09:35 +08:00
@MrLonely 就是封 wireguard UDP 端口,这个很好识别,挂个 udp2raw 换个端口继续用。
BeautifulSoap
2022-06-01 17:13:57 +08:00
为啥 lz 的第一反应不是被墙了呢
MrLonely
2022-06-01 17:35:19 +08:00
@daveh RouterOS 并不支持这个 udp2raw ,那就得起虚拟机。目前来说有点复杂,我还是继续用 zerotier 把。

@BeautifulSoap 因为被墙一般情况下是过墙才会被墙。我这里的 A B 两点都在墙内。并且墙一般也是把墙外的 IP 和端口 ban 掉。并不是墙内也要互相禁止访问。

经过我的一番测试和折腾,现在 A B 两点都无法 ping 通 Azure HK 的 RouterOS 了。
MrLonely
2022-06-01 18:32:19 +08:00
突然网络又通了。并不知道为什么。
Coelacanthus
2022-06-01 18:48:54 +08:00
@MrLonely 突然又通了?那我大胆猜测下可能是被运营商 QoS 了
MrLonely
2022-06-01 19:53:08 +08:00
@Coelacanthus 感觉像是。我前两天挂了两天的京东云无线宝,现在我很担心跟那个有关系。不敢再用了。
wetman
2022-06-06 16:32:40 +08:00
看起来是 UDP 端口被封了。

UDPping ( https://github.com/wangyu-/UDPping) 可以测试 UDP 连通性

如果下次再出现,wireguard 可以通过配置修改 udp 端口。 (wg set wg0 listen-port 23456)
smallthing
2022-08-01 14:57:36 +08:00
@MrLonely 无线宝为了打洞 都是走 UDP 传输流量,可能就是单纯的 QOS 了
换伪装 tcp 吧
牺牲一点 mtu 稳得很

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

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

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

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

© 2021 V2EX