我有一台伺服器透過兩個網路連接到互聯網 - 微波鏈路和 ADSL 鏈路。伺服器已在兩個網路中指派靜態 IP 位址。
這兩個網路都不可靠且經常斷開連接。因此,無論我透過 ssh 從客戶端運行的任何任務都會中斷,我必須關閉所有內容並切換到其他連線。
每次都這樣做很令人沮喪,因此我想知道是否有一種方法可以打開並行使用兩個網絡的 ssh 連接,共享兩個網絡之間的數據傳輸,以及其中一個網絡是否出現任何故障,將整個資料流量重定向到另一個,這樣我的ssh 不會受到影響,我可以在不知道ssh 實際使用哪個網路的情況下無縫工作?
這可能是一個荒謬的毫無意義的問題,但我不是網路專家。
我的伺服器使用 CentOS,客戶端是 Ubuntu 和 Mac。
答案1
我建議使用另一種策略 - 雖然有一些工具可以實現負載平衡,但它可能不適用於您的用例。我建議進行一次能夠適應斷線情況的會話
首先,我將運行我的命令螢幕或 tmux - 這樣你的命令保持即使斷開連接也可以運作。然後您可以重新登入並重新附加會話。你想在任何情況下都可以執行此操作。您希望螢幕安裝在您的伺服器。您啟動 ssh 會話(或 mosh 會話),在其中啟動螢幕,並且在該會話(或其他螢幕會話)中啟動的任何任務將繼續運行。您甚至可以分離 screen 會話來執行其他操作,或完全退出 ssh 會話並稍後返回 screen 會話。
我還建議看看莫許而不是普通的 ssh。莫什是設計的讓您在連線之間漫遊,並專為像您這樣的高延遲連線而設計。我會用這個和screen 為了安全起見,但這應該可以讓你做你想做的事。
我很想嘗試負載平衡 - 我使用調度代理,如果連線不好就會切換但我不確定這是否適用於 ssh 或 mosh 用戶端。上述建議中的一個或兩個可能會乾淨地處理這個問題,即使一信號不良。