我有 3 台 Ubuntu 服务器。它们都运行 21.10。(Linux Nas1 5.13.0-1016-raspi #18-Ubuntu SMP PREEMPT 星期四 1 月 20 日 08:53:01 UTC 2022 aarch64 aarch64 aarch64 GNU/Linux)
一个是 wireguard 服务器,另外两个是客户端。我最近安装了第三个服务器(客户端)。当我在这台机器上安装 wireguard 时,我检查了加载的内容,发现它确实启动并与空白的 wg0.conf 文件交互。
lsmod | grep wire
wireguard 90112 0
libchacha20poly1305 16384 1 Wireguard
libblake2s 16384 1 wireguard
libcurve25519_generic 40960 1 线卫
ip6_udp_tunnel 16384 1 线路防护
udp_tunnel 28672 1 线路防护
是否配置
wg0:标志=209 <UP,POINTOPOINT,RUNNING,NOARP> mtu 1420
unspec 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00 txqueuelen 1000 (UNSPEC)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 0 bytes 0 (0.0 B)
我使用了与新客户端握手的完全相同的配置,只是在服务器配置的新 [Peer] 槽中使用公钥(在客户端上使用 cat 列出公钥),主机地址为 192.168.10.7(在服务器和客户端上),而正常工作的客户端的主机地址为 192.168.10.6。以下是配置。
服务器
[界面]
地址 = 192.168.10.1/24
私钥 =私钥
监听端口 = 51820
PostUp = iptables -A FORWARD -i %i -j 接受; iptables -A FORWARD -o %i -j 接受; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
PostDown = iptables -D FORWARD -i %i -j 接受; iptables -D FORWARD -o %i -j 接受; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE
[同行]
#NAS_远程
公钥 = Rcl14dY+v76Pcw4uWmMUPwG0EdoBMjisDzsgGoBVFiI=
允许的 IP = 192.168.10.6/32
[同行]
#NAS1
公钥 = 44yLweAnZJmLrtQdGJPUYJvOeNCbme4YnsaR2/hA6Q8=
允许的 IP = 192.168.10.7/32
客户
[界面]
地址 = 192.168.10.7
私钥 =私钥
DNS = 8.8.8.8
[同行]
公钥 = E7k2xiSLRMy9wjuPTZIMKLoThQkv+4f0IJcYTbNAfAI=
终点 = <我的公用地址>:51820
允许 IP = 0.0.0.0/0,::/0
持久性保持活动 = 25
尽管如此,它不会握手,而另一个 192.168.10.6 会。我真的对这个感到困惑。任何帮助都将不胜感激。到目前为止,我已经花了三个周末试图弄清楚这一点。
02/27/22 更新 如果我使用本地 IP 作为端点而不是公共 URL(顺便说一句,它确实正确地转换为公共 IP),我可以让它进行握手。否则,我相信两台客户端机器是相同的。有效的公共 URL 是升级到 21.10,而不能使用公共 IP 的则是全新安装。