mosh:一個基于 SSH 用于連接遠程 Unix/Linux 系統的工具
Mosh 表示移動 Shell,是一個用于從客戶端跨互聯網連接遠程服務器的命令行工具。它能用于 SSH 連接,但是比 Secure Shell 功能更多。它是一個類似于 SSH 而帶有更多功能的應用。程序最初由 Keith Winstein 編寫,用于類 Unix 的操作系統中,發布于GNU GPL v3協議下。
Mosh Shell SSH 客戶端
Mosh的功能
- 它是一個支持漫游的遠程終端程序。
- 在所有主流的類 Unix 版本中可用,如 Linux、FreeBSD、Solaris、Mac OS X 和 Android。
- 支持不穩定連接
- 支持智能的本地回顯
- 支持用戶輸入的行編輯
- 響應式設計及在 wifi、3G、長距離連接下的魯棒性
- 在 IP 改變后保持連接。它使用 UDP 代替 TCP(在 SSH 中使用),當連接被重置或者獲得新的 IP 后 TCP 會超時,但是 UDP 仍然保持連接。
- 在很長的時候之后恢復會話時仍然保持連接。
- 沒有網絡延遲。立即顯示用戶輸入和刪除而沒有延遲
- 像 SSH 那樣支持一些舊的方式登錄。
- 包丟失處理機制
Linux 中 mosh 的安裝
在 Debian、Ubuntu 和 Mint 類似的系統中,你可以很容易地用 apt-get 包管理器安裝。
# apt-get update
# apt-get install mosh
在基于 RHEL/CentOS/Fedora 的系統中,要使用 yum 包管理器安裝 mosh,你需要打開第三方的 EPEL。
# yum update
# yum install mosh
在 Fedora 22+的版本中,你需要使用 dnf 包管理器來安裝 mosh。
# dnf install mosh
我該如何使用 mosh?
1、 讓我們嘗試使用 mosh 登錄遠程 Linux 服務器。
$ mosh root@192.168.0.150
mosh遠程連接
注意:你有沒有看到一個連接錯誤,因為我在 CentOS 7中還有打開這個端口。一個快速但是我并不建議的解決方法是:
# systemctl stop firewalld [在遠程服務器上]
更好的方法是打開一個端口并更新防火墻規則。接著用 mosh 連接到預定義的端口中。至于更深入的細節,也許你會對下面的文章感興趣。
2、 讓我們假設把默認的 22 端口改到 70,這時使用 -p 選項來使用自定義端口。
$ mosh -p 70 root@192.168.0.150
3、 檢查 mosh 的版本
$ mosh --version
檢查mosh版本
4、 你可以輸入exit
來退出 mosh 會話。
$ exit
5、 mosh 支持很多選項,你可以用下面的方法看到:
$ mosh --help
Mosh 選項
mosh 的優缺點
- mosh 有額外的需求,比如需要允許 UDP 直接連接,這在 SSH 不需要。
- 動態分配的端口范圍是 60000-61000。第一個打開的端口是分配好的。每個連接都需要一個端口。
- 默認的端口分配是一個嚴重的安全問題,尤其是在生產環境中。
- 支持 IPv6 連接,但是不支持 IPv6 漫游。
- 不支持回滾
- 不支持 X11 轉發
- 不支持 ssh-agent 轉發
總結
mosh是一款在大多數linux發行版的倉庫中可以下載的一款小工具。雖然它有一些差異尤其是安全問題和額外的需求,它的功能,比如漫游后保持連接是一個加分點。我的建議是任何一個使用ssh的linux用戶都應該試試這個程序,mosh值得一試。
via: http://www.tecmint.com/install-mosh-shell-ssh-client-in-linux/
作者:Avishek Kumar 譯者:geekpi 校對:wxy