非 Linux FOSS:连接不稳定?试试 Mosh!
我大部分的计算机工作都是通过命令行完成的。当我外出度假时,这意味着糟糕的 Wi-Fi 和手机热点。由于手机热点费用很快就会变得昂贵(我还有三个十几岁的女儿,我和她们共享一个数据套餐),所以我尽量使用免费的互联网。这种方法最大的麻烦是处理中断的 SSH 会话。是的,我可以使用像 screen 或 tmux 这样的程序来确保我不会丢失工作,但是如果我酒店里的 "TotallySafeBro" SSID 断开连接,那么 SSH 会话锁定会非常令人沮丧。还有,不要让我开始抱怨延迟。
这就是 Mosh 发挥作用的地方。我在 IRC 中抱怨,用户 "bkidwell" 提到 Mosh 是一款很棒的终端客户端,适用于连接质量差或经常变化的连接。它使用端口 22 上的 TCP 和更高端口上的 UDP 的组合,以提供平滑、灵活的终端会话,而不管您的连接可靠性或性能如何。Mosh 不会等待远程服务器回显您键入的内容,而是实时显示您的本地键入和编辑,然后尽快与服务器“追赶”。然而,最酷的部分是,即使您更改网络地址,Mosh 也会保持您的连接处于活动状态并运行!从麦当劳的 Wi-Fi 切换到您手机的共享数据?无需注销并重新登录。

图 1. Mosh 检测到断开连接并持续尝试重新连接,即使您的 IP 地址发生变化!
诚然,与 SSH 相比,Mosh 在某些方面有所欠缺。它不进行端口转发,不保留回滚缓冲区,并且其预测文本有时是错误的。最后一个问题在连接非常差的情况下最为明显,但这不是一个真正的问题——屏幕只是在服务器/客户端同步时偶尔会发生一些变化。这仍然比输入八行指令,结果在屏幕最终更新时看到拼写错误要好得多。
由于它在连接不良时的灵活性、跨平台服务器/客户端的可用性以及移动管理员的便利性,Mosh 获得了本月的编辑选择奖。从您的 Linux 存储库下载该应用程序,或访问 https://mosh.mit.edu 获取下载链接和适用于您可能使用的任何平台(包括 Android)的说明。安装很简单,并且效果立竿见影!