普通 SSH 终端在移动网络下容易断开或输入延迟明显时,可以考虑 Mosh。Mosh 会先用 SSH 完成登录和启动,然后在远程主机上启动 mosh-server,后续交互终端流量走 UDP。
Redock 已包含 Mosh 客户端能力。远程 Host 必须安装 mosh-server,并且 UDP 网络路径可达。
什么时候使用 Mosh
- 经常在 Wi-Fi 和蜂窝网络之间切换。
- 弱网下 SSH 经常断开。
- 输入延迟明显。
- 希望交互式 shell 能承受短暂网络变化。
建议先用 SSH 跑通同一个 Host,再把 Connection Mode 切换为 Mosh。
在 Host 上安装 Mosh
macOS:
brew install mosh
Ubuntu 或 Debian:
sudo apt update
sudo apt install mosh
Fedora:
sudo dnf install mosh
Arch:
sudo pacman -S mosh
确认 mosh-server 可用:
command -v mosh-server
开放 UDP 端口
Mosh 使用 SSH 完成认证,然后使用 UDP 维持交互会话。默认 Mosh UDP 端口范围是 60000 到 61000。
使用 ufw:
sudo ufw allow 60000:61000/udp
如果是云服务器,需要在云厂商防火墙或安全组中开放入站 UDP 60000-61000。
如果只需要少量会话,也可以开放更小的 UDP 范围,但 Host 和 Redock 必须能使用这个范围。
在 Redock 开启 Mosh
- 编辑 Redock 中的 Host。
- Host、Port、Username、Auth 保持和已跑通的 SSH 配置一致。
- 将 Connection Mode 设为 Mosh。
- 保存 Host。
- 新建终端连接。
Redock 会先执行 SSH preflight。如果缺少 mosh-server,或 UDP 启动失败,Redock 可能 fallback 到 SSH,并显示 Mosh fallbacked。
重要限制
- Mosh 适合交互式终端。
- Mosh 不替代 SFTP。
- Mosh 需要 UDP;通常不能通过普通 ngrok TCP SSH 转发工作。
- 如果公司网络或蜂窝网络阻断 UDP,使用 SSH 或 Tailscale。
- 长任务仍建议开启 tmux。Mosh 解决网络连接体验,tmux 保留远端会话状态。
常见问题
mosh-server is not installed:在远程 Host 上安装 Mosh。- Nothing received on UDP:开放服务器和网络路径上的 UDP
60000-61000。 - SSH 能连但 Mosh fallback:SSH bootstrap 成功,但 UDP 不通。
- 高安全环境:优先使用 Tailscale 加 Mosh,或使用 SSH 加 tmux。