Skip to main content

Mosh 基础使用指南

Mosh(Mobile Shell)是一个比传统 SSH 更强大的远程终端工具,特别适合移动和不稳定网络环境下的使用。

一、Mosh 简介

Mosh 的主要优势:

  • 在网络切换或中断时保持连接
  • 输入即时响应(无延迟显示)
  • 预测性本地回显
  • 更安全的连接方式

二、安装 Mosh

1. Linux 系统安装

# Ubuntu/Debian
sudo apt-get install mosh

# CentOS/RHEL
sudo yum install mosh

# Fedora
sudo dnf install mosh

2. macOS 安装

brew install mosh

3. Windows 使用

Windows 用户需要:

  1. 安装 WSL 或 Cygwin
  2. 在其中安装 mosh
  3. 使用支持 mosh 的终端如 Windows Terminal

三、基本使用方法

1. 简单连接

mosh username@remote_host

2. 指定端口

mosh --ssh="ssh -p 2222" username@remote_host

3. 使用特定 SSH 密钥

mosh --ssh="ssh -i ~/.ssh/id_rsa" username@remote_host

四、常用参数

参数 说明
-p PORT 指定 UDP 端口范围(如 60000:61000)
--predict=never 禁用预测性回显
--predict=always 总是使用预测性回显
--predict=adaptive 自适应预测(默认)
--ssh="COMMAND" 指定 SSH 连接命令
-a 强制使用本地 IP 地址
-n 不初始化 SSH 会话(用于调试)

五、高级用法

1. 通过跳板机连接

mosh --ssh="ssh -J jump_user@jump_host" user@target_host

2. 保持连接的后台会话

# 使用 tmux 或 screen 配合 mosh
mosh user@host -- tmux new -A -s session_name

3. 指定服务器上的 mosh-server 路径

mosh --server="/usr/local/bin/mosh-server" user@host

六、Mosh 与 SSH 的区别

  1. 协议差异

    • SSH 使用 TCP
    • Mosh 使用 UDP(默认端口 60000-61000)
  2. 连接恢复

    • SSH 断连后需要重新连接
    • Mosh 在网络恢复后自动重连
  3. 输入响应

    • SSH 有输入延迟
    • Mosh 提供即时本地回显

七、防火墙配置

Mosh 需要 UDP 端口开放:

# 开放 UDP 60000-61000 端口
sudo ufw allow 60000:61000/udp

八、常见问题解决

1. 连接失败

# 确保服务器安装了 mosh
ssh user@host "which mosh-server"

# 检查 UDP 端口是否开放
telnet host 60000

2. 解决乱码问题

# 指定 UTF-8 编码
mosh --ssh="ssh -o SendEnv=LC_*" user@host

3. 提高连接速度

# 使用压缩
mosh --ssh="ssh -C" user@host

九、退出 Mosh 会话

退出方式与 SSH 相同:

  1. 输入 exitlogout
  2. 或者按 Ctrl-D

十、Mosh 客户端选项

查看所有选项:

mosh --help

Mosh 是替代 SSH 的优秀工具,特别适合网络不稳定环境下的远程工作。虽然配置略复杂,但提供的稳定性和用户体验提升值得投入时间学习。