2013-03-25

Mosh - 適合行動網路的遠端安全連線 (SSH)

阿舍本來以為這個 Mosh 是獨立於 SSH 之外的,也就是說,阿舍以為 Mosh 是不需要有 SSH 服務的,所以,阿舍就傻傻的把 SSH 給停掉,然後,再來用 Mosh 來連線的時候,就會等不到Mosh Server 的任何回應哩 ! 後來,阿舍去查了之才知道,原來,這個 Mosh 還是需要利用 SSH 來和遠端電腦建立連線的,只是在連線建立完成後,就交由 Mosh 來接手後續的操作哩 !

Credit http://mosh.mit.edu/
Mosh 不像 SSH 是採用 TCP 協定來傳送資料,而是採 UDP 協定的方式來傳送,因此,就不需要等待 SSH Server 回應後再動作,所以,反應的速度會比 SSH 快囉 ! 而且,Mosh 在連線的過程中,Mosh 的 Server 端會依據 Client 端送來的封包的來源位址來回傳資料,因此,Mosh 就不會像 SSH 一樣,當 Client 端切換 IP 位址時,就得重新建立連線,所以,Mosh 很適合用在會不斷變更 IP 位址的移動裝置上,像是用筆電或手機在不同的 Wifi 熱點間移動的環境就很適合哩 !

另外,Mosh 採用了一種稱為「SSP,State Synchronization Protocol」的新協定來讓 Server 端和 Client 端的畫面能夠保持一致,SSP 協定透過在 Server 端和 Client 端同時保留一份維持畫面的快照 (Snapshot) 的物件,然後,透過更新兩邊快照物件的狀態的方式來同步兩端的畫面,不像 SSH 是把整個 Server 端的畫面丟回給 Client 端的方式,而且,Mosh 有 Local Echo 的機制,所以,Mosh 的反應速度會比 SSH 快得多哩 !

介紹完 Mosh 的優點和運作方式後,接下來,就要來說明如何安裝了,Mosh 是多平台的軟體,幾乎大部分的作業系統和大部份的 Linux 發行版本都有支援,在 Ubuntu 上,雖然,Ubuntu 的 PPA 有放這個 Mosh 可裝,不過,是舊版的,所以,還是需要自己加入 Mosh 的 PPA 的,請在要被連線 (Server 端)和要連線 ( Client 端)都用下面這三行指令來加入 Mosh 的 PPA 並執行安裝哩 !

sudo add-apt-repository ppa:keithw/mosh
sudo apt-get update
sudo apt-get install mosh

安裝完成後,在 Server 端要用下面的指令來啟動 Mosh Server,要注意的是,Mosh 要搭配 SSH 來使用,所以,請記得要有啟用 SSH 服務,否則,雖然 Mosh Server 會啟動且不會出現問題,但是 Client 端還是沒辧法連進入來的哩 ! 還有,Mosh Server 不需要特殊權限,所以,不需要用 sudo 來執行的 ...

mosh-server

Mosh Server 端啟動完成後,在 Client 端就可以用下面的指令來進行連線了,Mosh 連線的指和 SSH 差不多,一樣是可以指定帳號名稱及主機位址哩 ! 而如果遠端電腦的 SSH 使用的不是標準的埠號的話,可以用下面第二行指令的方式來指定遠端電腦的 SSH 埠號,然後,如果

mosh arthuryu@arthurtoday.com

mosh arthuryu@arthurtoday.com --ssh="ssh -p 8888"

要注意的是,Mosh Server 端預設會使用 60000 至 61000 之間的埠號來傳送 UDP 封包,所以,如果在 Server 端有啟用防火牆的話,就要記得把 60000 至 61000 之間的 UDP 埠打開來允許收送哩 ! 不然,也可以用下面的指令在啟動 Mosh Server 時改變所使用的埠號,同時,在 Client 端用下面的第二行指令來指定連線用的埠號哩 !

mosh-server new -i 192.168.2.88 -p 8888

mosh arthuryu@192.168.2.88 -p 8888

還有,如果 Server 端忘記啟動 Mosh Server 的話也沒關係,只要有安裝 Mosh 的話,就可以在 Client 端用下面的這行指令來連線並同時啟動遠端電腦上的 Mosh Server,而且,在離線的時候,Mosh Server 就會自動關閉哩 !真是滿方便啊 !

mosh arthuryu@arthurtoday --server="env LANG=zh_TW.UTF-8 mosh-server"

阿舍試用後發現,Mosh 的反應速度是真的比 SSH 來得快多了哩 ! 而且,像阿舍在連線的時候,是有用憑證的,這個 Mosh 也是有支援的,所以,如果有常在用 SSH 的話,阿舍建議可以考慮試試 Mosh 囉 !! ^^=

參考資料

推薦閱讀


有疑問? 問題還是沒解決嗎? 歡迎下方留言提問和討論 😁

沒有留言 :

張貼留言

歡迎留言提問和討論 .... 😁