文章摘要
Mosh是一款替代交互式SSH终端的远程终端应用,支持漫游和间歇性连接,提供智能本地回显和用户按键的行编辑功能。它比SSH更稳健和响应迅速,尤其在Wi-Fi、蜂窝网络和长距离链接中表现优异。Mosh能在网络切换时自动漫游,保持连接不断,即使设备休眠或网络中断也能恢复连接,且能即时响应用户输入,减少网络延迟。Mosh是免费软件,支持多种操作系统和设备。
文章总结
Mosh:移动终端的新选择
Mosh 是一款专为移动设备设计的远程终端应用,旨在替代传统的交互式 SSH 终端。它具备更强的鲁棒性和响应速度,特别适用于 Wi-Fi、蜂窝网络和长距离连接。Mosh 支持漫游、间歇性连接,并提供智能的本地回显和用户按键的行编辑功能。
主要特点
自动漫游:Mosh 能够在用户切换网络连接时自动漫游,保持登录状态。无论是从 Wi-Fi 切换到 LTE,还是从以太网切换到蜂窝网络,Mosh 都能无缝连接,而大多数网络程序(如 SSH 和 Gmail)在漫游后会断开连接。
休眠恢复:Mosh 允许用户将笔记本电脑休眠并在稍后唤醒,保持连接不中断。即使网络连接中断,Mosh 也会在恢复连接后自动重新连接。
消除网络延迟:与 SSH 不同,Mosh 能够即时响应用户的输入、删除和行编辑操作,即使在网络状况不佳的情况下,也能通过预测机制提供流畅的用户体验。
无需特权代码:Mosh 的安装和运行不需要超级用户权限,客户端和服务器端程序由普通用户运行,且仅在连接期间存在。
与 SSH 相同的登录方式:Mosh 通过 SSH 登录服务器,用户使用与 SSH 相同的凭证(如密码、公钥),然后通过 UDP 连接远程运行的
mosh-server。终端兼容性:Mosh 支持多种终端程序,如 xterm、gnome-terminal、Terminal.app 等,并且完全支持 UTF-8 字符集,修复了其他终端和 SSH 中的 Unicode 错误。
控制键响应:Mosh 的 UDP 协议能够优雅地处理数据包丢失,并根据网络状况调整帧率,确保 Control-C 等控制键始终有效。
版本更新
Mosh 自发布以来经历了多次更新,最新版本为 2022 年 10 月发布的 1.4.0,增加了真彩色支持、错误修复和模糊测试基础设施。其他重要更新包括对 IPv6 的支持、性能优化以及跨平台兼容性的提升。
使用场景
Mosh 适用于需要在移动设备上保持远程连接的用户,尤其是在网络不稳定或延迟较高的情况下。它能够显著提升远程终端的使用体验,使远程服务器操作更加流畅和响应迅速。
安全性
Mosh 使用 AES-128 加密和 OCB3 模式进行数据包认证,确保通信的安全性。自 2012 年发布以来,Mosh 尚未报告任何重大安全漏洞,其设计原则和协议使其在安全性上优于传统的 SSH。
总结
Mosh 是一款功能强大且易于使用的远程终端工具,特别适合移动设备用户。它通过智能的本地回显、自动漫游和消除网络延迟等功能,显著提升了远程终端的使用体验。无论是开发者还是普通用户,Mosh 都是一个值得尝试的替代方案。
评论总结
评论内容主要围绕Mosh的使用体验、优缺点以及替代方案展开,观点较为多样化。
支持Mosh的观点: 1. 解决网络不稳定问题:Mosh在解决网络切换和丢包问题方面表现出色,尤其适用于高延迟或高丢包率的网络环境。 - "Mosh is so good, but their unwillingness to implement OSC52 for copying to clipboard sent me back to tmux." (评论4) - "When mosh came out back in 2013, it solved a pretty real problem of ssh crapping out when you changed networks." (评论11)
- 持久化会话:Mosh能够保持会话的持久性,即使网络中断也能恢复。
- "I use mosh to connect to my tmux server at work, so I don't need to worry about connection drops." (评论10)
- "Mosh + GNU screen: persistent auto-reconnecting terminal sessions" (评论20)
反对Mosh的观点: 1. 用户体验不佳:部分用户认为Mosh的输入预测功能反而增加了困扰,且存在渲染问题。 - "I found the 'lets pretend like there is no input latency' thing to be more distracting than useful." (评论6) - "Basically mosh attempts to synchronize the state of the terminal which is made up of character cells. It sounds simple until you realize that unicode and fancy escape sequences exist." (评论19)
- 功能限制:Mosh不支持剪贴板复制、端口转发等功能,且在某些场景下不如SSH。
- "Mosh is so good, but their unwillingness to implement OSC52 for copying to clipboard sent me back to tmux." (评论4)
- "I’ve mostly switched back to good’ol SSH over Tailscale due to various rendering bugs caused by client-server mismatches as well as the lack of port forwarding." (评论19)
替代方案: 1. SSH结合其他工具:部分用户选择使用SSH结合Tailscale、Wireguard等工具来替代Mosh。 - "In recent years, I've found that ssh running on top of Wireguard / Tailscale is way more usable than 2013 days." (评论11) - "I’ve mostly switched back to good’ol SSH over Tailscale due to various rendering bugs caused by client-server mismatches." (评论19)
- 其他工具:一些用户推荐使用tmux、wezterm、shpool等工具来替代Mosh。
- "I’ve mostly switched to wezterm for similar functionality." (评论15)
- "These days i quite like using shpool." (评论13)
总结来看,Mosh在网络不稳定环境下表现出色,但其用户体验和功能限制也引发了不少争议,部分用户更倾向于使用SSH结合其他工具或替代方案。