SSH延迟太高,试试mosh吧!

介绍

毫无疑问,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

一旦执行,您会发现moshssh没有什么不同,但是mosh却在后端加了更多功能来维持您的服务器远程管理。

虽然SSH将从远程计算机上运行的任何内容完整的传输到客户端,但Mosh只会将更改内容传送到当前可见的屏幕区域。这使它能够从根本上减少带宽使用并保持响应能力,这两者都可能成为移动连接的瓶颈。

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

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

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

概要

对Mosh的这一介绍突出了其在移动连接上的一些关键优势,虽然它可能无法取代您日常使用的SSH,但在您被迫依赖慢速连接的情况下,它会是一个不错的选择。您学会了吗?欢迎您使用腾讯云免费的开发者专属在线实验平台进行试验。更多云计算教程,请前往腾讯云+社区学习。


参考文献:《How To Install and Use Mosh on a VPS》

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏EAWorld

微服务之服务调用与安全控制

近年来,大多数企业IT软件均在向微服务架构转型,由于微服务架构采用了更细粒度的分布式拆分,对于服务调用安全方面的问题更复杂,更需要重视,需要整体的系统化解决方案...

21130
来自专栏IT大咖说

运维老鸟阐述:沪江从DNS到httpdns的演进

摘要 HttpDNS服务是一款可以有效解决域名劫持的方案,并且已在各家大厂广泛应用,现已成为一款相当成熟的产品,本次分享主要围绕沪江由DNS到HTTPDNS演进...

53080
来自专栏腾讯Bugly的专栏

Android Patch 方案与持续交付

Android 不仅系统版本众多,机型众多,而且各个市场都各有各的政策和审核速度,每次发布一个版本对于开发同学来讲都是一种漫长的煎熬。相比于 iOS 两三天就能...

38150
来自专栏腾讯移动品质中心TMQ的专栏

移动H5性能测试平台解决方案

1 平台的目的 说到H5性能测试,大家想到最多的是在PC端利用Firebug、Fiddle和HttpWatch等工具进行测试和性能指标的分析,但是如果我们测试的...

30150
来自专栏用户2442861的专栏

java处理高并发高负载类网站的优化方法

    一般来说MySQL是最常用的,可能最初是一个mysql主机,当数据增加到100万以上,那么,MySQL的效能急剧下降。常用的优化措施是M-S(主-从)...

37120
来自专栏IT技术精选文摘

基于Netty实现海量接入的推送服务技术要点

26150
来自专栏腾讯移动品质中心TMQ的专栏

常用流量测试方法及一些思考

App性能测试中流量测试是其中重要的一项,网络场景(wifi、非wifi)、用户使用场景(页面加载流量、场景使用流量、待机流量),这些都是需要考虑的测试点。

55950
来自专栏数据和云

【推荐】 RAC 性能优化全攻略与经典案例剖析

ORACLE RAC凭借其卓越的容错能力和可扩展性以及对应用透明的切换能力引领了数据库高可用架构的潮流,但在实际的生产环境中,出现的性能问题非常多,对数据库的稳...

34970
来自专栏我的小碗汤

四款神器,教你笑傲江湖

学习或者工作中工具的熟练使用能大大的提高效率,效率提高了,省下来的时间,又可以干更多的事情,这是一个良性的循环。

10220
来自专栏FreeBuf

手机没Root?你照样可以渗透路由器

和Metasploit差不多,RouterSploit是一个强大的漏洞利用框架,用于快速识别和利用路由器中的普通漏洞,它还有个亮点,就是可以在绝大多数安卓设备上...

56740

扫码关注云+社区

领取腾讯云代金券