Ssh

Ubuntu Peer 上的 Wireguard 連接斷開

  • December 14, 2021

我住在網路位於 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 上的頻寬)。

關於如何調試此問題的任何想法?

嘗試將PersistentKeepalive設置從您的 VPS WireGuard 配置移動到您的台式機和筆記型電腦 WireGuard 配置。通常您希望PersistentKeepalive在 NAT 後面的連接一側,因為它會自動發送 keepalive 數據包以在 NAT 中“打開一個洞”,從而允許非 NAT 一側通過WireGuard 隧道。當您從桌面 ping VPS 時,您正在手動執行相同的操作。

引用自:https://serverfault.com/questions/1086297