目前的情况是我有一个机房,有固定公网 IPv4 ,家里也有公网 IP ,需要 DDNS 这两个网络互相直接我用 wireguard 打通了,内网互相访问都是通的 但是我现在需要在外面的时候连回这个网络,主要是 macbook ,但是用了 surge 和官网的客户端,都配不通,貌似 wireguard 是 UDP ,也不知道怎么 debug 大家有什么经验么
1 monkey110 2024-10-12 20:32:58 +08:00 nmap 检测端口通不通,通就是自己的问题 |
2 xqzr 2024-10-12 20:51:11 +08:00 看 wg 的收/发流量 |
![]() | 3 dalaoshu25 2024-10-12 20:55:23 +08:00 你如果不提供你的配置文件,别人没办法帮你。 你 macbook 上的配置,公钥什么的,放在机房还是家里的配置文件里了? |
![]() | 4 Ipsum 2024-10-12 21:22:35 +08:00 wg 要么看日志,要么只有开内核 debug 。不然就抓包看看。 |
![]() | 5 dalaoshu25 2024-10-12 21:28:12 +08:00 @Ipsum 不需要。wg 的算法不需要去 debug 。不通无非是: 1 、私钥、公钥、密码三个字符串没写对,比如少了末尾的=号 2 、endpoint 的 IP 和端口号没写对 3 、防火墙上的端口没打开 4 、wg 接口本身的 IP 没写对 基本就是几个文本字符串比对一下的事情。 |
6 ursash OP 找到原因了,第一个 peer 的掩码写太大了,网上教程误导人啊 |
![]() | 7 dalaoshu25 2024-10-12 22:00:50 +08:00 @ursash 你写成了什么? “服务器”那一侧,peer 的 AllowedIPs 里写 peer 的 IP/32 “客户机”这一侧,interface 里 address 写 peer 的 IP/24 |
8 ursash OP @dalaoshu25 你这样是对的,我服务器测的 peer 写了/24 ,所有有问题 |
![]() | 9 wisetc 2024-10-12 22:57:05 +08:00 via iPhone sudo wg |
10 kenvix 2024-10-12 23:13:29 +08:00 说实话别看一群人天天吹 wg ,如果对计网没有深入了解我根本不推荐这玩意 |
![]() | 11 Stoney 2024-10-12 23:57:14 +08:00 via iPhone 我也想知道如何排查问题,不知道有没有哪里可以看报错信息 |
12 Yadomin 2024-10-13 00:00:36 +08:00 via Android echo 'module wireguard +p' | sudo tee /sys/kernel/debug/dynamic_debug/control |
13 ursash OP 我大概总结了以下,相对来说确实复杂一点,有几个原因 1. 因为有公私钥对,如果是 A-B 两个设备就有 4 个公私钥,很容易填错 2. Address 的概念,Address 需要自己手动分,设备间不能冲突,也不能和内网冲突 3. AllowedIPs 的概念,这个会涉及到子网掩码,关键是决定了包路由到哪个 peer ,如果没搞清楚的话很容易莫名其妙的问题,我就是这里出了问题 4. Endpoint 的问题,比如说有没有公网 IP ,是不是固定 IP 之类的,都会带来一定的困扰,如果是内网设备还涉及到端口转发 5. 很难 debug ,原因是没有很好的日志,并且是 UDP ,有点烦 但是如果都弄明白了,就还行,异地组网很方便 |
![]() | 14 enrolls 2024-10-13 07:36:12 +08:00 via iPhone nftable 捕捉 wg 的端口流量 |