Saturday, August 04, 2012

moshを使ってみる

moshを使ってみようと思い、インストールしてみました。
クライアント(Ubuntu 12.04)はパッケージがあります。

$ sudo apt-get install mosh
$ mosh -v
mosh 1.1.3

サーバ側(CentOS 5.8)はコードをコンパイルしました。以下手順です。

$ sudo yum install libutempter-devel zlib-devel ncurses-devel gcc-c++
                 
$ wget http://protobuf.googlecode.com/files/protobuf-2.4.1.tar.gz               
$ tar zxf protobuf-2.4.1.tar.gz                                                 
$ cd protobuf-2.4.1                                                             
$ ./configure --prefix=/usr                                                     
$ make                                                                          
$ sudo make install                                                             
                                                                                
$ wget https://github.com/downloads/keithw/mosh/mosh-1.2.2.tar.gz               
$ tar zxf mosh-1.2.2.tar.gz                                                     
$ cd mosh-1.2.2                                                                 
$ ./configure                                                                   
$ make                                                                          
$ sudo make install 

サーバ側で、iptablesでUDPボートを開ける必要がありますが、OUTPUTチェーンをDROPポリシにしている場合は、OUTPUT側の設定も必要でした。

$ sudo /sbin/iptables -A INPUT -p udp -m udp --dport 60000:61000 -j ACCEPT                 
$ sudo /sbin/iptables -A OUTPUT -p udp -m udp --sport 60000:61000 -j ACCEPT  
$ sudo /sbin/service iptables save

上記の環境で接続を確認しました。

$ mosh サーバ名

ログイン後、クライアントをハイバネート、再起動しました。端末はサーバに接続されたままコネクションが切れた旨のメッセージもなく、コマンドも実行できました。

参考:

Mosh; the mobile shell
http://mosh.mit.edu/

Carpe Diem mosh バージョン 1.2
http://www.sssg.org/blogs/naoya/archives/2267

mutsune’s blog mosh のインストール
http://d.hatena.ne.jp/mutsune/20120416/1334590736