Mosh的功能
它是一個(gè)支持漫游的遠(yuǎn)程終端程序。
在所有主流的類 Unix 版本中可用,如 Linux、FreeBSD、Solaris、Mac OS X 和 Android。
支持不穩(wěn)定連接
支持智能的本地回顯
支持用戶輸入的行編輯
響應(yīng)式設(shè)計(jì)及在 wifi、3G、長(zhǎng)距離連接下的魯棒性
在 IP 改變后保持連接。它使用 UDP 代替 TCP(在 SSH 中使用),當(dāng)連接被重置或者獲得新的 IP 后 TCP 會(huì)超時(shí),但是 UDP 仍然保持連接。
在很長(zhǎng)的時(shí)候之后恢復(fù)會(huì)話時(shí)仍然保持連接。
沒有網(wǎng)絡(luò)延遲。立即顯示用戶輸入和刪除而沒有延遲
像 SSH 那樣支持一些舊的方式登錄。
包丟失處理機(jī)制
Linux 中 mosh 的安裝
在 Debian、Ubuntu 和 Mint 類似的系統(tǒng)中,你可以很容易地用 apt-get 包管理器安裝。
# apt-get update
# apt-get install mosh
在基于 RHEL/CentOS/Fedora 的系統(tǒng)中,要使用 yum 包管理器安裝 mosh,你需要打開第三方的 EPEL。
# yum update
# yum install mosh
在 Fedora 22+的版本中,你需要使用 dnf 包管理器來安裝 mosh。
# dnf install mosh
我該如何使用 mosh?
1、 讓我們嘗試使用 mosh 登錄遠(yuǎn)程 Linux 服務(wù)器。
$ mosh root@192.168.0.150
![](/d/20211018/7626f2577137e7217b0d5efe24360493.gif)
注意:你有沒有看到一個(gè)連接錯(cuò)誤,因?yàn)槲以?CentOS 7中還有打開這個(gè)端口。一個(gè)快速但是我并不建議的解決方法是:
# systemctl stop firewalld
[在遠(yuǎn)程服務(wù)器上]
2、 讓我們假設(shè)把默認(rèn)的 22 端口改到 70,這時(shí)使用 -p 選項(xiàng)來使用自定義端口。
$ mosh -p 70 root@192.168.0.150
3、 檢查 mosh 的版本
$ mosh --version
![](/d/20211018/5ac82dc0333d186e53dd6a24dc4cd63e.gif)
4、 你可以輸入exit來退出 mosh 會(huì)話。
$ exit
5、 mosh 支持很多選項(xiàng),你可以用下面的方法看到:
$ mosh --help
![](/d/20211018/83890a15f397001f828730f99be7ec66.gif)
mosh 的優(yōu)缺點(diǎn)
mosh 有額外的需求,比如需要允許 UDP 直接連接,這在 SSH 不需要。
動(dòng)態(tài)分配的端口范圍是 60000-61000。第一個(gè)打開的端口是分配好的。每個(gè)連接都需要一個(gè)端口。
默認(rèn)的端口分配是一個(gè)嚴(yán)重的安全問題,尤其是在生產(chǎn)環(huán)境中。
支持 IPv6 連接,但是不支持 IPv6 漫游。
不支持回滾
不支持 X11 轉(zhuǎn)發(fā)
不支持 ssh-agent 轉(zhuǎn)發(fā)
總結(jié)
mosh是一款在大多數(shù)linux發(fā)行版的倉(cāng)庫(kù)中可以下載的一款小工具。雖然它有一些差異尤其是安全問題和額外的需求,它的功能,比如漫游后保持連接是一個(gè)加分點(diǎn)。我的建議是任何一個(gè)使用ssh的linux用戶都應(yīng)該試試這個(gè)程序,mosh值得一試。