Skip to content

Mosh (Mobile Shell)

永不中斷的遠端終端機

軟體分類 網路與資安 / 遠端連線
軟體標籤
文字擴充KVM
開發廠商 Keith Winstein & The Mosh Team
Stars
13.6k
Forks
795
License
GPLV3
Version
v1.4.0
Update
2026-02-28
OS

產品說明

Mosh (Mobile Shell) 是一款專為解決傳統 SSH 在不穩定網路環境下痛點而生的遠端終端機應用程式。它並非用來完全取代 SSH,而是與 SSH 搭配使用:利用 SSH 進行初始的身份驗證與通道建立,隨後切換至 Mosh 獨有的加密 UDP 協定(SSP)進行資料傳輸。

對於經常需要在移動中工作(如搭火車、使用手機熱點)或網路延遲極高(跨國連線)的使用者來說,Mosh 是不可或缺的神器。它具備「漫遊(Roaming)」能力,當你的 IP 位址改變(例如從 Wi-Fi 切換到 4G),連線不會中斷,而是自動無縫接軌。此外,它的「本地預測回顯(Local Echo)」技術,能讓你在高延遲網路下打字時,依然享有如本機般的即時流暢感,不再需要等待伺服器回應才能看到自己打出的字。

核心特色:

  • 自動漫遊 (Roaming):支援 IP 位址動態切換,網路斷線重連後 Session 依然存活,無需重新登入。
  • 本地預測回顯:智慧預測使用者的輸入結果並立即顯示,消除高延遲網路下的打字卡頓感。
  • 強韌的連線:基於 UDP 協定,對封包遺失(Packet Loss)有極佳的容忍度,電腦休眠喚醒後連線依然有效。
  • 無需特權:伺服器端與客戶端皆以一般使用者權限執行,無需 Root 權限或常駐 Daemon。

常用指令

Mosh 的使用方式與 ssh 非常相似,通常只需將原本指令中的 ssh 替換為 mosh 即可。

基礎連線

# 連線到遠端伺服器 (使用預設 SSH 設定)
mosh user@example.com

# 指定 SSH 連接埠 (若遠端 SSH 非 Port 22)
mosh --ssh="ssh -p 2222" user@example.com
指令功能說明範例
mosh建立連線mosh user@host
–ssh指定 SSH 指令用於傳遞特殊的 SSH 參數 (如 Key、Port)
–predict控制預測模式--predict=always 強制開啟本地回顯
–server指定 Server 路徑若遠端 mosh-server 不在 PATH 中時使用
-p指定 UDP Portmosh -p 60001 user@host (指定特定 UDP 埠)
Ctrl-^ .關閉連線強制切斷卡住的 Mosh 連線 (Escape Sequence)

進階技巧

  • 指定 UDP 埠範圍
    Mosh 預設使用 UDP 60000-61000 範圍。若防火牆只開放特定 Port,可強制指定:

    mosh -p 60001 user@example.com
    
  • 處理特殊的 SSH 設定
    若你的 SSH config 有設定別名(Alias),Mosh 能直接讀取並使用:

    # ~/.ssh/config 中已定義 Host myserver
    mosh myserver
    
  • 永久連線測試
    在筆電蓋上螢幕休眠後,移動到另一個咖啡廳打開電腦,你會發現終端機畫面依然停留在你離開時的樣子,且能立即繼續輸入指令,這就是 Mosh 最大的威力。


操作介面

Mosh 本身運作於終端機內,外觀取決於您使用的終端模擬器(如 iTerm2, Terminal, Windows Terminal),但在連線建立當下會顯示獨有的狀態列(藍色橫條),提示連線狀態與延遲資訊。