[筆記]mosh使用筆記

據說mosh好使,那麼怎麼在Mac本下使用mosh來登陸Ubuntu及AWS服務器呢?html

mosh介紹

mosh官網在:https://mosh.org/
代碼開源在:https://github.com/mobile-shell/moshgit

賣點就是經過UDP傳輸,網絡切換能夠自動重連,不會致使執行中的命令斷掉。github

mosh安裝

Ubuntu下安裝mosh服務器:redis

$ sudo apt-get install mosh

Mac下安裝mosh客戶端:shell

$ brew install mosh

運行

Ubuntu下運行mosh-server:ubuntu

$ mosh-server


MOSH CONNECT 60001 y8btZAE3fjpmzQu7s/4XWg

mosh-server (mosh 1.3.2) [build mosh 1.3.2]
Copyright 2012 Keith Winstein <mosh-devel@mit.edu>
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>.
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

[mosh-server detached, pid = 7195]

看到mosh-server detached不要慌,畢竟它也不監聽端口。安全

假設服務器地址爲123.123.123.123,用戶名是etworker,則Mac下運行:服務器

$ mosh etworker@123.123.123.123

若是一切順利,鏈接起來就像ssh同樣。
若是服務器ssh的端口是2222,則用下面的方式鏈接:網絡

$ mosh --ssh="ssh -p 2222" etworker@123.123.123.123

注意

Mosh使用的UDP協議鏈接的,使用的端口是從60000到61000,若是開啓了防火牆服務器上就須要打開相應的UDP端口。
一個Mosh鏈接就會打開一個UDP端口,好比創建兩個鏈接就是6000一、60002,以此類推。ssh

假設Mosh使用60001 UDP端口,則在服務器上運行

$ iptables -I INPUT -p udp –dport 60001 -j ACCEPT

這樣就在服務器上打開60001這個UDP端口。
固然,最好是把上一條命令寫入服務器iptables的規則中,這樣沒必要要每次都手動打開這個端口。

Amazon AWS

我在Amazon上的服務器是經過key文件作的鑑權,因此先說一下Mac怎麼ssh上去。

先將密鑰文件拷貝到Mac上,比方說文件名叫xxx.pem,而後修改權限:

$ chmod 400 xxx.pem

假設服務器地址是111.111.111.111,進到xxx.pem同目錄下,ssh以下:

$ ssh -i xxx.pem ubuntu@111.111.111.111

此時在服務器上安裝mosh,方式同上。
注意須要在安全組裏面配置端口,開放6000-61000的UDP端口。
安全組的端口過濾方法,應該不須要再細說了吧。

接着就可使用Mac來鏈接了:

$ mosh --ssh="/usr/bin/ssh -i xxx.pem" ubuntu@111.111.111.111

參考文獻

相關文章
相關標籤/搜索