透過 VPN 進行 SSH 的終端問題

透過 VPN 進行 SSH 的終端問題

我嘗試從 Linux Ubuntu 用戶端電腦透過 SSH 存取 Linux Ubuntu 伺服器。

當客戶端和伺服器位於同一網路時,一切正常,當我嘗試透過VPN - openVPN 遠端存取伺服器時,像mc-午夜指揮官這樣的全螢幕應用程式無法正常顯示,這意味著我只能看到右上角落所呈現螢幕的字符,並且顯然鍵盤互動不起作用。

此外,針對簡單文字檔案所發出的 cat 指令會掛起終端機而不顯示任何輸出。

奇怪的是,使用 Android OpenVPN 用戶端和 Android SSH 用戶端從我的 Android 手機透過 VPN 存取同一台伺服器一切正常。

在我的 Ubuntu 用戶端電腦上,TERM 環境變數設定為“xterm-256color”,在我的 Android 手機上,它設定為“linux”。在啟動 SSH 會話之前嘗試在我的 Ubuntu 用戶端上將其設定為“linux”是可行的,這意味著在 SSH 會話中我看到終端實際上設定為“linux”,但沒有任何效果。

在Ubuntu客戶端我也嘗試透過Putty連接,但結果是一樣的。

關於發生這種情況的原因有任何線索嗎?

先致謝!

答案1

好吧,我最終找到了解決方案,閱讀 OpenVPN 手冊,位於此處:

https://openvpn.net/community-resources/reference-manual-for-openvpn-2-4/

該問題顯然與路徑 MTU 發現無法正常工作有關。

「--fragment 和 --mssfix 都旨在解決 OpenVPN 對等點之間的網路路徑上的路徑 MTU 發現損壞的情況。

此類故障的常見症狀是 OpenVPN 連線成功啟動,但在活躍使用期間停止。如果 --fragment 和 --mssfix 一起使用,--mssfix 將從 --fragment max 選項中取得預設 max 參數。

因此,可以使用以下選項將最大 UDP 封包大小降低到 1300(這是解決 MTU 相關連線問題的良好第一次嘗試):

--tun-mtu 1500 --fragment 1300 --mssfix "

在伺服器和客戶端添加這兩個選項解決了我的問題。

我希望這有幫助。

相關內容