SSH 在 OpenVPN 上超時,直到目標被 ping 通
我的 OpenVPN 設置看起來很像教科書。在伺服器端,我將 LAN 暴露給遠端客戶端並推送路由。我在伺服器端網關中有我的靜態路由,將 VPN 子網的請求指向 OpenVPN 伺服器等。
不過,我一直有古怪的行為。例如,很多時候從 vpn 客戶端到 OpenVPN 伺服器的 LAN 超時的機器的 ssh 連接。我可以相當重複地讓它們超時,直到我對目標進行一次 ping 操作。每次我這樣做時,第一次 ping 超時,隨後的 ping 成功,然後我可以 ssh。
我嘗試使用 LinuxMint 20.1(伺服器上的發行版)附帶的 OpenVPN 2.4 伺服器,並且我嘗試過從原始碼編譯的 OpenVPN 2.5.6,我似乎得到了相同的結果。
這是我的設置供參考:
伺服器的區域網路
Gateway: 192.168.1.1 - has static route [ 10.8.0.0/24 via 192.168.1.31 ] OpenVPN Server: 192.168.1.31 - ipv4 forwarding on - promisc mode on for LAN interface - ufw configured to allow all to ports 1194/udp, 22/tcp, and forwarding in both directions between tun0 and LAN interface) 192.168.1.121 - my daily driver (Linux) with SSH on - no firewall rules defined 192.168.1.16 - another Linux box with SSH on - no firewall rules defined 192.168.1.17 - a Windows 10 box with remote desktop enabled and the windows firewall turned off
區域網路客戶端
Network Address: 192.168.11.0/24 1 Linux Client on DHCP 1 Windows Client on DHCP
IP 為 192.168.1.16 和 192.168.1.121 的盒子是我試圖從 VPN 客戶端連接的盒子,並且表現出上述行為。
另一個奇怪的地方是,當嘗試使用 rdesktop 連接到 192.168.1.17 上的 RDP 時,Linux VPN 客戶端始終會出現 GnuTLS 超時並失敗。具有完全相同 VPN 配置的 Windows VPN 客戶端始終可以連接到該盒子上的 RDP。
我很樂意發布任何相關的配置文件或命令輸出,但我不想一開始就將它們全部轉儲到這裡,因為它們非常冗長,我想知道其他人之前是否遇到過這種情況。我的 OpenVPN 配置文件大多是預設設置,只有正常的東西集 - 密鑰名稱、VPN 伺服器的遠端 IP、推送“路由…”指令等。
好的,我發現了問題。事實證明,我的客戶端配置文件有誤。在伺服器配置文件中,我禁用了壓縮。我以為我已經在客戶端這樣做了,但是第一百次回讀配置時,我注意到我取消了 comp-lzo 行的註釋,但未能在其上附加“no”。
我想我似乎很奇怪,它在伺服器配置中禁用壓縮但在客戶端中不起作用,但正確處理該部分似乎已經解決了奇怪的問題。