如何使用开源MOSH获得持久性的SSH连接?

译文
开发 前端
即使您从一个网络漫游到另一个网络,MOSH仍能使SSH连接保持持久性。本文介绍了如何安装和使用这款便捷的工具。

[[403067]]

【51CTO.com快译】如果您在公司内使用多个无线或有线连接,又发觉自己要在园区内走动以履行管理职责,会遇到这种情况:您建立了一条SSH连接,但从一个网络漫游到另一个。出现这种情况时,您的安全外壳连接会断掉。或者也许您的单条网络连接并不总是最可靠的?如果您在执行的管理任务不是很重要,那没什么。如果您在执行重要的任务,这条连接又断掉,会发生什么?

您不想那样,这就是为什么应该使用MOSH之类的工具。MOSH的全称是移动外壳(Mobile Shell),让您可以获得持久性的SSH连接,即使更改网络或连接暂时中断。更棒的是,MOSH的使用与SSH几乎一样,至少从用户的角度来看是这样。在底层,MOSH通过SSH让用户登录,然后在60000至61000之间的UDP端口上启动连接,以保持连接持久性。

不妨安装MOSH,看看其用法。

您需要什么?

MOSH适用于Linux、macOS、Windows、Android和iOS。您必须在服务器和客户端上都安装MOSH软件包。我将用基于Ubuntu的Linux发行版来演示两端。如果用户使用MacOS,确保从MOSH下载页面下载二进制安装程序。如果用户使用Windows,没有原生软件包,因此您必须使用MOSH for Chrome

如何安装MOSH?

可以在我的发行版标准存储库中找到MOSH。要在基于Ubuntu的发行版上安装MOSH,命令将是:

  1. sudo apt-get install mosh -y 

如果您使用基于Red Hat的Linux发行版,命令将是:

  1. sudo dnf install mosh -y 

确保在客户端和服务器上都安装了MOSH。

如何使用MOSH?

当然,这假设您已经可以使用SSH建立从客户端到服务器的连接。在这种情况下,您可以使用MOSH来建立该连接,如下所示:

  1. mosh USER@SERVER 

其中USER是远程用户名,SERVER是服务器的IP地址或域。

如果由于某种原因需要使用不同的UDP端口,命令将是:

  1. mosh -p PORT USER @ SERVER 

其中PORT是端口号,USER是远程用户名,SERVER是服务器的IP地址或域。

如果您已将SSH配置为在服务器上使用非标准端口,必须在MOSH命令中定义它,如下所示:

  1. mosh --ssh="ssh -p PORT" USER@SERVER 

其中PORT是服务器上的非标准SSH端口,USER是远程用户名,SERVER是服务器的IP地址。您可以结合UDP和SSH端口方面的更改,就像这样:

  1. mosh -p UDP --ssh="ssh -p SSH" USER@SERVER 

其中UDP是UDP端口,SSH是SSH端口,USER是远程用户名,SERVER是服务器的IP地址或域。

MOSH也可以使用SSH身份,就像SSH中使用SSH身份那样,如下所示:

  1. mosh -i IDENTITY 

其中IDENTITY是您在~/.ssh/config中配置的身份的名称。

如何配置防火墙?

您可能会遇到的一个问题是,服务器上的防火墙拒绝连接至MOSH将使用的必要端口。这个问题很容易解决。在使用“不复杂防火墙”的服务器(比如Ubuntu Server)上,打开这些端口的命令将是:

  1. sudo ufw allow 60000:61000/udp 

如果您的服务器使用iptables,命令将是:

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

一旦您允许端口访问,MOSH应该可以正常工作了。

这就是在MOSH的帮助下,在客户端和服务器之间获得比较可靠的SSH连接所需的全部步骤。试一下这款工具,看看即使从一个网络漫游到另一个网络,您的SSH连接是否仍保持连接状态。

原文标题:How to achieve persistent SSH connections with the open source MOSH,作者:Jack Wallen

【51CTO译稿,合作站点转载请注明原文译者和出处为51CTO.com】

 

责任编辑:华轩 来源: 51CTO
相关推荐

2013-07-09 10:18:58

VDI虚拟化

2021-05-25 10:20:31

Python持久性编程语言

2009-09-27 09:55:38

Hibernate持久

2022-10-27 08:00:32

DockerAWS云容器

2009-09-23 15:25:08

Hibernate 3

2009-09-15 16:37:06

Google App 持久性

2019-09-06 09:50:52

云存储硬盘云服务

2021-01-22 10:40:08

Linux文件内存

2017-05-08 08:32:51

2020-09-20 10:12:54

nccm

2021-12-29 14:04:14

恶意软件黑客网络攻击

2023-12-08 08:26:05

数据存储持久性

2022-11-10 07:41:00

sshLinux

2014-06-05 14:41:05

亚马逊AWS

2013-08-12 14:23:43

SSH

2017-03-01 10:34:12

2018-05-03 09:36:19

多云环境云计算可视

2022-03-11 13:28:54

SSHLinux命令

2009-07-20 19:53:23

SSHLinuxMac

2023-02-21 10:07:23

点赞
收藏

51CTO技术栈公众号