Ubuntu Peer 上的 Wireguard 连接中断

Ubuntu Peer 上的 Wireguard 连接中断

我住在一栋楼里,网络位于 NAT 后面。我有一台 Linux 台式电脑和一台笔记本电脑。为了通过 ssh 访问我的桌面,我在台式机、笔记本电脑和 VPS 上运行了 Wireguard VPN。问题是我的桌面和 VPS 之间的连接中断了。

这是 VPS 配置:

[Interface]
Address = 10.9.0.1/24
SaveConfig = false
#PostUp = iptables -A FORWARD -i wg0 -j ACCEPT; iptables -t nat -A POSTROUTING -$
#PostDown = iptables -D FORWARD -i wg0 -j ACCEPT; iptables -t nat -D POSTROUTING$
ListenPort = 51820
PrivateKey = **SERVER PRIVATE KEY**

[Peer]
PublicKey = **LINUX DESKTOP PUBLIC KEY**
AllowedIPs = 10.9.0.2/32
PersistentKeepalive = 5

[Peer]
PublicKey = **LAPTOP PUBLIC KEY**
AllowedIPs = 10.9.0.3/32
PersistentKeepalive = 20

这是 Linux 桌面的配置:

[Interface]
PrivateKey = **LINUX DESKTOP PRIVATE KEY**
Address = 10.9.0.2/24

[Peer]
PublicKey = **SERVER PUBLIC KEY**
Endpoint = *MY ENDPOING IP*
AllowedIPs = 10.9.0.1/32, 10.9.0.3/32

从上面的配置中,您可以看到我不允许0.0.0.0\0任何客户端。我只想通过 VPS 隧道传输 SSH 流量。如果我只允许来自 SSH 的流量,我的笔记本电脑和 Linux 桌面之间的连接会在一两分钟内断开。要恢复连接,我必须从桌面 ping VPS。

如果我将所有流量都路由到 VPS,就不会发生此问题。但是,我不想这样做(Google Captcha 很烦人,而且我的 VPS 上没有足够的带宽)。

对于如何调试这个问题有什么想法吗?

答案1

尝试将PersistentKeepalive设置从 VPS WireGuard 配置移至台式机和笔记本电脑 WireGuard 配置。通常,您需要PersistentKeepalive在 NAT 后面的连接侧,因为它会自动发送保持活动数据包以在 NAT 中“打开一个漏洞”,从而允许非 NAT 侧通过 WireGuard 隧道发起新连接(或重新建立失效的连接)。当您从台式机 ping VPS 时,您正在手动执行相同的操作。

相关内容