在国内,到了晚上,原本好好的海外网络就变得非常不稳定,哪怕 ping 值不高,但非常不稳定,SSH 一直断联,常常处于不可用的状态,很多时候刚连上就卡掉了,配置保活也不起作用
这种情况下 mosh 就非常有用了,出门遛个狗回来,解锁电脑session还在的爽感无法言语
优势
- 网络漫游与无缝重连:在 Wi-Fi 和 4G/5G 之间切换,或者休眠电脑后重新唤醒,Mosh 不会像 SSH 那样断开连接。它会在后台自动续连,找回之前的会话。
- 告别输入卡顿:SSH 需要等待服务器确认你的按键,网络差时会明显卡顿。Mosh 采用“本地智能回显”技术,让你输入的字符瞬间显示在屏幕上,操作极度丝滑。
- 进程保护:即使网络完全中断,你在服务器上运行的任务(如编译、下载)也不会被挂起,体验类似于使用了终端复用器。
局限与缺点
- 基于 UDP 传输:Mosh 基于 UDP,不支持 SSH 的 ProxyCommand 等复杂的跳板机代理。
- 不支持端口转发:它不像 SSH 可以通过 -L 或 -R 建立隧道(如映射本地端口访问远程 Web 服务)。
- 无法回滚终端历史:在终端向上滚动查看过去的输出不如 SSH 结合终端软件那样方便。
- 需要服务器端支持:连接双方都必须安装 Mosh 软件。
以上是AI告诉我的,AI时代下,博客会怎么样不知道,但是信息获取是真的方便了很多,但识别能力要求更高了
安装
# 服务端
# Ubuntu/Debian
sudo apt update && sudo apt install mosh -y
# 开放防火墙(关键,以 UFW 为例 )
# 假设你把 SSH 改成了端口 2222,现在需要为 Mosh 开放 UDP 端口段。
# 放行 SSH 端口(这里说的有点多余)
sudo ufw allow 2222/tcp
# 放行 Mosh 端口段,只有只放行一个端口,但连接的时候需要指定
sudo ufw allow 60000:61000/udp
客户端根据系统参考: https://mosh.org/#getting
连接
# 默认连接方式
mosh --ssh="ssh -p 2222" 用户名@服务器IP
# 配合 SSH config SSH 连接配置文件 configSSH 连接配置文件 config
mosh myserver
# 指定udp端口连接,这样可以放行指定端口就行,不需要放行一大段
mosh -p 9527 --ssh="ssh -p 2222" root@myserverIP
mosh -p 9527 myserver
判断当前是由ssh还mosh连接的
ps -o comm= -p $PPID
# SSH:很可能显示 sshd
# Mosh:会显示 mosh-server
更多用法,问AI吧,感觉博客更多的是一个引子,让不知道的人知道有这么个东西
