如何在VPS上安装和使用Mosh

来自菜鸟教程
跳转至:导航、​搜索

介绍

毫无疑问,SSH 是远程服务器管理的实际方法。 然而,它的主导地位并不意味着它在某些情况下没有自己的细微差别。 如果您曾经尝试在移动连接中保持 SSH 连接,您会很感激这种情绪。

Mosh 继承了 SSH 的所有安全优势,并在此基础上增强了对不良网络条件和漫游连接的容忍度。 它还通过仅将状态更改传达给当前可见的屏幕区域而不是传输完整的缓冲区来提高响应能力并降低带宽使用。

Mosh 的连接启动和身份验证通过常规 SSH 连接进行,这意味着只需要一些额外的配置,并且任何当前基于密钥的安全机制都可以完美运行。 一旦通过身份验证,就会协商一个密钥,并且 Mosh 切换到通过加密的 UDP 数据报进行通信,从而使会话对不断变化的客户端 IP 和移动连接常见的连接丢失更具弹性。

这些优势使 Mosh 成为安装在您的 VPS 上的绝佳选择,以应对您需要在移动中执行任务的情况。

安装

要开始使用,Mosh 必须首先安装在客户端和服务器上。 幸运的是,Mosh 软件包存在于大多数流行的发行版中,以下是 DigitalOcean 上提供的一些发行版的安装方法。

在 Ubuntu 上:

sudo apt-get install python-software-properties
sudo add-apt-repository ppa:keithw/mosh
sudo apt-get update
sudo apt-get install mosh

在 Debian 上:

sudo apt-get install mosh

在 Arch Linux 上:

pacman -S mosh

在 Fedora 上:

sudo yum install mosh

对于任何其他操作系统,例如 OSX 或 Windows,请查阅 Mosh 文档 以找到最相关的安装方法。

防火墙配置

如果您在 VPS 上配置了防火墙(推荐),您还需要打开 Mosh 所需的额外端口。

如果您直接使用 iptables,以下命令将打开 Mosh 需要的端口:

sudo iptables -I INPUT 1 -p udp --dport 60000:61000 -j ACCEPT

请记住,默认情况下,系统重新启动后不会保留此防火墙设置。 存在诸如 iptables-persistant 之类的解决方案来增强这种行为。

如果您使用的是 UFW,则可以使用以下命令打开端口:

sudo ufw allow 60000:61000/udp

如果您使用任何其他程序来管理防火墙,则需要手动确保打开 60000 到 61000 的 UDP 端口。 但是,如果您只希望有少量的并发连接,那么可以打开较小范围的端口,前提是它从端口 60000 开始(例如 60000:60020)。

用法

在大多数用例中,Mosh 是 SSH 的直接替代品,这意味着许多 SSH 命令只需要简单的更改。 例如:

ssh user@example.com

# Becomes:

mosh user@example.com

但是,如果您对 SSH 使用任何其他参数(例如 -p),则需要稍微不同的语法:

mosh --ssh="ssh -p 22000" user@example.com

执行后,Mosh 会将您连接到一个看起来很像任何标准 SSH 连接的 shell。 然而,在表面之下,Mosh 不仅仅是一根哑管,它具有许多独特的功能,使其在连接不良的情况下表现更好。

虽然 SSH 将传输远程机器上运行的任何程序的完整数据输出,但 Mosh 在连接的每一端都运行一个 vt500 状态机,并且只会将更改传达给当前可见的屏幕区域。 这使其能够从根本上减少带宽使用并保持响应能力,这两者都可能成为移动连接的瓶颈。

如果您的连接完全中断,Mosh 将通过窗口顶部的状态栏快速通知您,指示自上次成功通信以来的时间。

连接恢复后,Mosh 将自动重新同步,您可以从上次中断的地方继续进行会话。

您可能还会注意到,即使您的连接速度很慢或没有响应,您也可以在终端中输入新命令,然后您的输入会立即显示并带有下划线。 这种带下划线的文本表明 Mosh 在看到 VPS 的响应之前已经推测了远程终端的状态。 一旦下划线消失,您就可以确定连接的两端是同步的。

然而,这个系统确实有一个缺点:由于 Mosh 仅同步当前屏幕状态,您的本地终端将不会维护先前程序输出的回滚缓冲区。 因此,建议您在 VPS 端使用终端多路复用器,例如 screentmux 以保留此输出。

概括

这篇对 Mosh 的介绍突出了它在移动连接上相对于 SSH 的一些主要优势,虽然它可能无法取代您对 SSH 的日常使用,但在您被迫依赖慢速连接的情况下,它可能会让您感到沮丧并富有成效。