Mosh,又名Mobile Shell,是交互式終端ssh的替代品。
與ssh相比,mosh的優(yōu)勢如下:
? 1. 在wifi與蜂窩數(shù)據(jù)間任意切換網(wǎng)絡(luò),mosh連接不受影響。
? 2. 永遠保持連接。計算機隨時可以休眠,重新喚醒后,mosh連接完好無損,?除非你手動把進程kill掉。?
? 3. 無網(wǎng)絡(luò)延遲。在你打字的時候,ssh會等待服務(wù)器的響應(yīng)。而mosh正好相反,不管是在輸入、刪除還是編輯行,mosh都會即時響應(yīng),讓你有種絲般順滑的感覺。
mosh運行原理
mosh包含兩個程序,mosh-client和mosh-server??蛻舳伺c服務(wù)端都需要安裝mosh,但不需要手動啟動mosh-client或者mosh-server,因為每次使用mosh,這兩個程序都是自動啟動的。
默認情況下,mosh會通過ssh連接到服務(wù)器,然后在服務(wù)端啟動mosh-server。接著他關(guān)閉ssh連接,在客戶端啟動mosh-client并通過UDP連接上服務(wù)器。之后這個連接一直存在,用戶可以通過mosh做以前ssh能做的一切操作。除非mosh-client被kill掉,這個連接會一直保持,不管網(wǎng)絡(luò)掉線還是客戶端異常。
ps. mosh使用的是60000到61000的端口。
如何安裝
ps.?本文只針對CentOS系統(tǒng),其他系統(tǒng)的安裝請參考mosh官網(wǎng)??
CentOS下,最快的安裝方式是使用yum。
yum install mosh

如果提示無法匹配,那么你需要擴展yum源,安裝epel庫。
擴展yum源
首先,確認你的CentOS版本。
cat /etc/redhat-release

筆者的操作系統(tǒng)是CentOS 7,所以需執(zhí)行:
yum install https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
ps. 其他版本的系統(tǒng)可在以下鏈接獲取到相應(yīng)命令。
https://fedoraproject.org/wiki/EPEL
需知此時epel源雖已安裝,但是并沒有生效,需使用yum-config-manager命令手動啟用。
# 啟用epel庫
yum-config-manager --enable epel
# 刷新倉庫緩存
yum clean all && yum makecache
ps. 可以使用yum repolist [all|enabled|disabled]來查看yum的所有/已啟用/已禁用的倉庫列表。
# 查看目前已啟用的倉庫,可以看到epel的倉庫已啟用。
yum repolist

epel安裝好后,就可以使用yum安裝mosh啦,安裝后無需手動啟動。
yum -y install mosh

安裝成功,現(xiàn)在可以在客戶端嘗試連接啦~
如何運行
1. 如果你沒有修改過ssh的端口,只需在客戶端執(zhí)行?
mosh root@203.109.86.12
2. 如果已修改ssh端口,則需通過-P指定ssh的端口(注意-P是大寫哦~(?ì _ í?)
mosh -P 29806 root@203.109.86.12
最后
mosh也并不全是優(yōu)點,他有個bug,輸出超過一屏?xí)r,只顯示最后一屏的內(nèi)容,不支持回滾。所以需要查看全部輸出時,可在命令后加上”| less”來翻頁查看。
不過這個問題跟永不掉線和絲般順滑比起來,真的無傷大雅了。
聽說這個問題會在新版本修復(fù),敬請期待吧。。
最后的最后,推薦一個app呀,ios的Blink,可以連接服務(wù)器,而且支持mosh喲,每次mosh連上服務(wù)器后,不管ipad待機多久,都不用擔(dān)心掉線,隨時打開隨時用,感覺真的棒極啦~