mosh
Mosh 是一个远程终端应用程序,支持间歇性连接,允许漫游,并提供推测性的本地回显和用户击键的行编辑。
它旨在支持 SSH 的典型交互使用,以及:
-
如果客户端进入睡眠状态并稍后醒来,或者暂时失去其 Internet 连接,Mosh 会保持会话处于活动状态。
-
Mosh 允许客户端和服务器“漫游”和更改 IP 地址,同时保持连接有效。与 SSH 不同,Mosh 可以在 Wi-Fi 网络之间切换或从 Wi-Fi 切换到蜂窝数据再切换到有线以太网时使用。
-
Mosh 客户端在后台运行服务器行为的预测模型,并尝试智能地猜测每次击键将如何影响屏幕状态。当它对自己的预测有信心时,它会在等待服务器确认的同时将它们显示给用户。大多数键入和使用左箭头键和右箭头键都可以立即得到回应。
-
因此,Mosh 可用于高延迟链接,例如蜂窝数据连接或时断时续的 Wi-Fi。与之前在其他协议中使用本地回声模式的尝试不同,Mosh 可以与 emacs、vi、alpine 和 irssi 等全屏应用程序正常工作,并自动从 RTT 中偶尔出现的预测错误中恢复。在高延迟链接上,Mosh 在其预测未完成时为其下划线,并在服务器确认时删除下划线。
Mosh 不支持 X 转发或 SSH 的非交互式使用,包括端口转发。
其他特性
-
Mosh 会调整其帧速率,以免在慢速链接上填满网络队列,因此“Control-C”始终在 RTT 内工作以停止失控进程。
-
当 Mosh 有一段时间没有收到服务器的消息时,它会警告用户。
-
Mosh 支持丢失大部分数据包的有损链接。
-
Mosh 比 SSH 和现有的终端模拟器更好地处理一些 Unicode 边界情况,但需要 UTF-8 环境才能运行。
-
Mosh 利用 SSH 建立连接并对用户进行身份验证。Mosh 不包含任何特权(root)代码。