Ssh
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 上的頻寬)。
關於如何調試此問題的任何想法?
嘗試將
PersistentKeepalive
設置從您的 VPS WireGuard 配置移動到您的台式機和筆記型電腦 WireGuard 配置。通常您希望PersistentKeepalive
在 NAT 後面的連接一側,因為它會自動發送 keepalive 數據包以在 NAT 中“打開一個洞”,從而允許非 NAT 一側通過WireGuard 隧道。當您從桌面 ping VPS 時,您正在手動執行相同的操作。