毫无疑问,SSH是远程服务器管理最实用的方法。然而,它的主导地位并不意味着它在某些情况下没有缺点。如果您曾在移动设备上使用过SSH,那么,你应该知道SSH的一些缺点。
mosh是基于新的State Synchronization Protocol(SSP)协议,运行在UDP上,能同步不同主机对象的状态,加密和认证使用AES-128。在高延迟的网络下,mosh比ssh流畅多了,而且在3G网络下,丢失网络变更IP后,终端连接不会中断。另外,mosh对编码的转换上,比其他终端有不少优势。
这些好处使Mosh成为您在CVM上安装的绝佳选择,适用于您在移动中需要执行任务时的情况。今天的学习需要一台服务器,没有服务器的同学,我建议您使用腾讯云免费的开发者专属在线实验平台进行试验。
首先,必须首先在客户端和服务器上安装Mosh。Mosh包存在于大多数流行的发行版中,下面是我们提供的一些发行版的安装方法。
在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文档以查找最相关的安装方法。
如果您的CVM上配置了防火墙(推荐),您还需要打开Mosh所需的额外端口。您可以使用腾讯云的安全组进行配置,也可以使用下面的方法进行配置。
如果您直接使用iptables,以下命令将打开Mosh所需的端口:
sudo iptables -I INPUT 1 -p udp --dport 60000:61000 -j ACCEPT
请记住,默认情况下,系统重新引导后不会保留此防火墙设置。
如果您使用的是UFW,则可以使用以下命令打开端口:
sudo ufw allow 60000:61000/udp
如果您使用任何其他程序来管理防火墙,则需要手动确保打开从60000到61000的UDP端口。
在大多数用例中,Mosh是SSH的直接替代品,这意味着许多SSH命令只需要进行简单的更改。例如:
ssh user@example.com
# Becomes:
mosh user@example.com
但是,如果您使用SSH的任何其他参数(例如-p),则需要稍微不同的语法:
mosh --ssh="ssh -p 22000" user@example.com
一旦执行,您会发现mosh
与ssh
没有什么不同,但是mosh
却在后端加了更多功能来维持您的服务器远程管理。
虽然SSH将从远程计算机上运行的任何内容完整的传输到客户端,但Mosh只会将更改内容传送到当前可见的屏幕区域。这使它能够从根本上减少带宽使用并保持响应能力,这两者都可能成为移动连接的瓶颈。
如果您的连接完全断开,Mosh会很快通知窗口顶部的状态栏,指示自上次成功通信以来的时间。
恢复连接后,Mosh将自动重新同步,您可以从中断的地方继续进行会话。
您可能还会注意到,即使您的连接速度很慢或没有响应,您也可以在终端中输入新命令,并立即看到输入带有下划线。这样的带下划线的文本表明,在看到CVM的响应之前,Mosh已经推测了远程终端的样子。一旦下划线消失,您可以确保连接的两端同步。
对Mosh的这一介绍突出了其在移动连接上的一些关键优势,虽然它可能无法取代您日常使用的SSH,但在您被迫依赖慢速连接的情况下,它会是一个不错的选择。您学会了吗?欢迎您使用腾讯云免费的开发者专属在线实验平台进行试验。更多云计算教程,请前往腾讯云+社区学习。
参考文献:《How To Install and Use Mosh on a VPS》
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。