低延迟SSH工具Mosh

15 7~9 min

Debian 系统安装与配置 Mosh:打造更稳定的 SSH 连接

引言

在远程服务器管理中,SSH(Secure Shell)是不可或缺的工具。然而,传统的 SSH 连接在网络不稳定或高延迟环境下容易中断,影响工作效率。Mosh(Mobile Shell)作为 SSH 的替代品,以其出色的稳定性和移动性,成为了许多系统管理员的新宠。本文将详细介绍在 Debian 系统中安装、配置和使用 Mosh 的步骤,并探讨其优势。

Mosh 的优势

  • 稳定性: Mosh 使用 UDP 协议,即使网络连接短暂中断,也能自动恢复会话,无需重新登录。
  • 移动性: Mosh 允许客户端在不同的 IP 地址之间切换(例如,从 Wi-Fi 切换到移动数据),而连接保持不中断。
  • 低延迟: Mosh 通过本地回显和预测技术,减少了远程操作的延迟感,即使在高延迟网络下也能提供流畅的体验。
  • UTF-8 支持: Mosh 原生支持 UTF-8 编码,避免了字符乱码问题。

安装 Mosh

在 Debian 系统中,安装 Mosh 非常简单,只需几条命令即可完成:

  1. 更新软件包列表:

    sudo apt-get update
    
  2. 安装 Mosh:

    sudo apt-get install mosh
    

配置 Mosh

Mosh 的配置主要涉及 SSH 密钥认证和防火墙设置。

  1. SSH 密钥认证(可选但推荐):

    为了提高安全性,建议使用 SSH 密钥进行身份验证。
    如果服务器已经修改了ssh端口,请牢记。

    • 生成密钥对(在客户端执行):

      ssh-keygen -t ed25519
      

      一路回车,不用设置密码

    • 将公钥复制到服务器:

      有多种方法可以将公钥复制到服务器,这里介绍一种手动复制的方法:

      1. 复制公钥内容:

        使用文本编辑器或命令行工具打开您的公钥文件(通常是 ~/.ssh/id_ed25519.pub),将公钥内容复制到剪贴板中。

      2. 粘贴到服务器:

        在服务器上,执行以下命令(将 paste_copied_public_key_here 替换为您复制的公钥):

        echo "paste_copied_public_key_here" >> ~/.ssh/authorized_keys
        
      3. 设置权限:

        chmod 700 ~/.ssh
        chmod 600 ~/.ssh/authorized_keys
        
  2. 防火墙设置(重要):

    Mosh 使用 UDP 协议,默认端口范围是 60000-61000。您需要在服务器的防火墙上开放这些端口。

    如果您的服务器使用 firewalld 作为防火墙,可以执行以下命令:

    # 添加端口范围到默认区域
    sudo firewall-cmd --add-port=60000-61000/udp --permanent
    
    # 重新加载防火墙规则使配置生效
    sudo firewall-cmd --reload
    
    # 验证端口是否开放
    sudo firewall-cmd --list-ports
    

    如果您使用其他防火墙工具(如 ufwiptables),请查阅相应文档进行配置。

使用 Mosh

配置完成后,您就可以使用 Mosh 连接到服务器了。

  • 基本用法:

    mosh username@server_ip
    
  • 指定 SSH 端口和私钥:

    如果您的 SSH 服务器使用了非默认端口(例如 61022),并且您使用了密钥认证,可以使用以下命令:

    mosh username@server_ip --ssh="ssh -p 61022 -i /path/to/your/private_key"
    

    /path/to/your/private_key为客户端生成的密钥的地址,例如:/home/user/.ssh/id_ed25519

注意事项

  • Mosh 需要在客户端和服务器端都安装。
  • 确保服务器的防火墙允许 Mosh 使用的 UDP 端口(60000-61000)。
  • 如果您的 SSH 配置较为复杂,可能需要调整 Mosh 的连接参数。
  • Mosh 客户端在第一次连接服务器时,会提示验证服务器的 SSH 指纹。请仔细核对,以防止中间人攻击。

总结

Mosh 是一款优秀的 SSH 替代工具,特别适合在网络不稳定或高延迟环境下使用。通过本文介绍的安装、配置和使用方法,您可以轻松地在 Debian 系统中部署 Mosh,享受更稳定、更流畅的远程连接体验。