クライアント(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