使用 Mosh 和 Tmux 在 Linux 上获得更好的远程会话
使用 Mosh 改进通过 SSH 对 Linux 设备的远程访问,并使用 Tmux 运行多个会话。
Linux 的优势之一是其面向网络的方向,这很大程度上归功于其 Unix 传统。 Linux 成为服务器操作系统的首选是有原因的。
远程访问 Linux 服务器的主要方式是通过 SSH(即 Secure Shell)。虽然它有用且安全,但它是在 Wi-Fi 和蜂窝连接普及之前的时代设计的。
如果您将计算机移至其他 Wi-Fi 网络或使其进入睡眠状态,您可能会发现自己与明显冻结的终端屏幕断开连接。
为什么选择 Mosh + Tmux?
幸运的是,有一些工具可以使 SSH 远程计算更易于使用且更可靠。您可以在从数据中心的物理终端到家庭服务器、云服务器,甚至是另一台运行 Unix 或 BSD 操作系统的台式机上使用它们。
Mosh 是 SSH 之上的一个工具,它可以感知网络连接的变化,而 tmux 是一个“终端多路复用器”,可以让您在不同的登录中保留 shell 会话,甚至共享它们。
开始使用 Mosh
Mosh 是一个开源项目,它使 SSH 在漫游和间歇性连接上工作,因为许多无线连接都是这两种连接。
您可以将计算机从有线网络切换到有线网络,再切换到不同的无线网络,并且您的连接将保持正常。您还可以在连接时让笔记本电脑进入睡眠状态,在网络重新连接后,您将能够在终端窗口中输入内容。
如果您失去网络连接,Mosh 会告诉您它尚未收到远程服务器的消息。如果服务器回显字符的速度很慢,它会在您键入的内容下划线,直到最新的屏幕返回。
作者撰写的论文中有更多技术细节,但作为用户安装它非常简单。 Mosh 在大多数 Linux 发行版的包管理器中广泛使用。它还可以作为 Google Chrome 应用程序使用。
在 Linux 上安装 Mosh
例如,要在 Ubuntu 中安装:
sudo apt install mosh
当然,服务器还必须安装 Mosh 服务器。 Mosh 的优点是服务器组件可以在用户模式下运行,因此您不必是 root 即可安装它。
使用莫什
当您想连接到远程计算机时,只需键入:
mosh username@server
显然,您需要将“用户名”和“服务器”替换为您的用户名和您尝试连接的计算机的名称。
如果您有更特殊的需求,例如连接到不同的端口,请参阅文档。
如果一切正常,您将拥有一个远程终端会话,只需使用 SSH。您将能够以相同的方式发出命令,但您的连接将更加可靠。
开始使用 Tmux
您拥有可以承受无线网络变化的远程终端连接,但是当您最终连接时呢?
您可能会运行需要很长时间的作业,例如安装软件甚至很长的编译作业。如果断开连接会发生什么。当终端退出时,该作业可能会退出。
另外,即使有作业控制,您一次也只能在终端中执行一件事。如果您想运行全屏编辑器,它将占用整个终端。
Tmux 是这些问题的答案之一。它是一种“终端多路复用器”,可让您在一个窗口中运行多个终端。它就像 Linux 桌面上的选项卡式终端,但更加灵活。
您可以分离会话并注销,以便稍后返回并从上次中断的地方继续。您可以打开多个终端窗口。您可以在编辑器的一个窗口中编辑程序,并在另一个窗口中的命令行中测试它。
安装 tmux 也非常简单。与 Mosh 一样,它包含在许多 Linux 发行版包管理器中。在 Ubuntu 中,您只需输入:
sudo apt install tmux
显然,您必须将其安装在远程计算机上才能在那里使用它,但它在本地也非常有用。
安装后,您可以使用以下命令启动 tmux:
tmux
然后,您将启动一个终端窗口,类似于您在本地启动的窗口。您将看到一个状态栏,显示您所在的窗口。
Tmux 将屏幕划分为具有多个“窗格”的“窗口”,显示各自的终端。您可以重新排列这些窗格并调整其大小,无限的窗口都有自己的窗格。
因为 tmux 是一个基于终端的程序,所以它完全由键盘控制。在 tmux 中执行命令的默认前缀命令是 Ctrl+B。这可以在配置文件中更改。
用户配置文件是主目录中的 .tmux.conf。该文档提供了更多详细信息,但您可以执行的自定义数量非常广泛。
Tmux 可能有一个学习曲线,但对于 Linux/Unix 世界中的其他“困难”程序,许多用户发现花在学习这些程序上的时间花在了它让他们做的事情上是值得的。
最强大的选项之一是能够分离会话并稍后重新连接。为此,请键入 Ctrl+D。要重新连接,请在 shell 中输入“tmux Attach”,您会发现自己回到了会话。
这意味着只要机器运行,您的会话就会保持运行状态。这种方法在运行 IRC 等聊天应用程序时也很流行,因为人们可以在聊天室中停留很长时间。还可以与其他人共享会话,例如结对编程。
结合 Mosh 和 Tmux
远程会话的真正威力来自 Mosh 和 tmux 的组合。
使用 Mosh,您可以从任何地方登录到远程计算机,而不必担心连接的可靠性。如果您想要运行可能需要很长时间的操作,您可以分离会话并稍后再返回。
Mosh 和 tmux 的结合将为您的远程登录提供最大的可靠性和灵活性。仅在 tmux 中就有很多东西需要探索,这将释放终端会话的力量。