SSH有那些困扰呢:

  • 在不同internet连接之间切换时(比如VPN和普通internet,3G网络),必须重新开启新的SSH会话,因为之前的session会被关闭。
  • 关闭和开启internet连接后,也必须重新手动连接SSH,还是因为会话被关闭的原因。
  • 在使用SSH的过程中,如果服务器设置不当,经常会被timeout,造成整个屏幕假死。解决办法是:只有重新开启连接,或者想其他办法,一直保持连接。

如果你还是个使用SSH的Linux管理员,那么这些困扰简直就是无法忍受的折磨。

现在 Mosh 来了,解决了这些问题,它可以完全替代SSH,只需要在以前命令行的地方使用”mosh”简单替换”ssh”这三个字母,就可以解决以上的所有困扰。建议 认真看看,Mosh 官方文档的前半部分,因为那里列出了该工具的各种引人入胜的优点。 其他部分,官方网站已经说的足够明白了,这里只说几点需要注意的:
1. Mosh 的简单原理
 a. 它分为客户端程序(mosh-client) 和服务端程序(mosh-server)。
 b. 首先mosh通过ssh连接到你的服务器,然后在服务器上启动 mosh-server,然后它关闭ssh连接,在客户端一侧启动 mosh-client 让它通过UDP连接上 mosh-server 。
 c. 之后一直保持并监视这个连接,用户可以通过客户端做任何以前通过SSH所能做的一切操作。 如果客户端网络有异常,或者掉线,mosh-client会给出警告,并且自动重新连接。只要 mosh-client 不被kill,它就会一直尝试保持连接。 所以任何时候,你都不会掉线。
2. 关于安装,用户必须在客户端和服务器上都安装 mosh,但是不需要手动去启动 mosh-client 或者 mosh-server,因为每次使用mosh命令,这两个程序都是自动启动的。
3. 关于UDP端口,由于mosh会尝试连接从 60001 到 60999 之间的端口,所以服务器防火墙只需要开放这个端口范围内的某个端口就可以了。要不然,mosh-clien就无法连接到服务器。