在不稳定的网络中使用 Mosh 连接远程服务器
在连接远程的 Linux 服务器时,通常使用 SSH 连接。但是,当网络不够稳定的时(比如连接国外的服务器),在连接到 SSH 服务器之后,可能出现掉线、无响应、输入响应很慢等情况。这时候的体验很差,非常影响使用效率。在这种情况下,可使用 Mosh 优化 SSH 连接,改善使用体验。
什么是 Mosh 🔗
Mosh,即 Mobile Shell。在其官网(https://mosh.org/)的介绍如下:
Remote terminal application that allows roaming, supports intermittent connectivity, and provides intelligent local echo and line editing of user keystrokes.Mosh is a replacement for interactive SSH terminals. It's more robust and responsive, especially over Wi-Fi, cellular, and long-distance links.
Mosh is free software, available for GNU/Linux, BSD, macOS, Solaris, Android, Chrome, and iOS.
翻译为中文:
一款远程终端应用程序,允许漫游,支持间歇性连接,并对用户击键提供智能本地回显和行编辑。Mosh 是交互式 SSH 终端的替代品。它更加稳健且响应迅速,尤其是在 Wi-Fi、移动网络和长距离连接的情况下。
Mosh 是免费软件,适用于 GNU/Linux、BSD、macOS、Solaris、Android、Chrome 和 iOS。
安装 🔗
在服务器和客户端都必须安装 Mosh 才可以使用它。在大部分的包管理软件中都有 Mosh。比如,在 Ubuntu 服务器上可通过 apt-get
安装:
apt-get update
apt-get install -y mosh
在 macOS 上可使用 Homebrew 安装
brew install mosh
其他系统和平台上的安装方法见其官方文档。
用法 🔗
设置服务器上的防火墙 🔗
Mosh 使用服务器上的 60000
到 61000
的 UDP 端口进行通信,因此需要设置防火墙规则。在 Ubuntu 服务器上,可使用如下命令:
ufw allow 60000:61000/udp
连接远程服务器 🔗
在服务器端和客户端都安装了 Mosh 之后,可直接使用 Mosh 替换交互式的 SSH 即可。比如连接到远程服务器:
mosh root@x.x.x.x
其他用法见其文档。