Linux我用 LinuxLinux学习之路

ssh卡顿还经常掉线?试下mosh吧!

2019-08-20  本文已影响5人  荼荼小蘼

Mosh,又名Mobile Shell,是交互式终端ssh的替代品。

与ssh相比,mosh的优势如下:

  1. 在wifi与蜂窝数据间任意切换网络,mosh连接不受影响。

  2. 永远保持连接。计算机随时可以休眠,重新唤醒后,mosh连接完好无损, 除非你手动把进程kill掉。 

  3. 无网络延迟。在你打字的时候,ssh会等待服务器的响应。而mosh正好相反,不管是在输入、删除还是编辑行,mosh都会即时响应,让你有种丝般顺滑的感觉。

mosh运行原理

mosh包含两个程序,mosh-client和mosh-server。客户端与服务端都需要安装mosh,但不需要手动启动mosh-client或者mosh-server,因为每次使用mosh,这两个程序都是自动启动的。

默认情况下,mosh会通过ssh连接到服务器,然后在服务端启动mosh-server。接着他关闭ssh连接,在客户端启动mosh-client并通过UDP连接上服务器。之后这个连接一直存在,用户可以通过mosh做以前ssh能做的一切操作。除非mosh-client被kill掉,这个连接会一直保持,不管网络掉线还是客户端异常。

ps. mosh使用的是60000到61000的端口。

如何安装

ps. 本文只针对CentOS系统,其他系统的安装请参考mosh官网⤵︎

https://mosh.org/

CentOS下,最快的安装方式是使用yum。

yum install mosh

ssh卡顿还经常掉线?试下mosh吧!

如果提示无法匹配,那么你需要扩展yum源,安装epel库。

扩展yum源

首先,确认你的CentOS版本。

cat /etc/redhat-release

ssh卡顿还经常掉线?试下mosh吧!

笔者的操作系统是CentOS 7,所以需执行:

yum install https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm

ps. 其他版本的系统可在以下链接获取到相应命令。

https://fedoraproject.org/wiki/EPEL

需知此时epel源虽已安装,但是并没有生效,需使用yum-config-manager命令手动启用。

# 启用epel库

yum-config-manager --enable epel

# 刷新仓库缓存

yum clean all && yum makecache

ps. 可以使用yum repolist [all|enabled|disabled]来查看yum的所有/已启用/已禁用的仓库列表。

# 查看目前已启用的仓库,可以看到epel的仓库已启用。

yum repolist

epel安装好后,就可以使用yum安装mosh啦,安装后无需手动启动。

yum -y install mosh

安装成功,现在可以在客户端尝试连接啦~

如何运行

1. 如果你没有修改过ssh的端口,只需在客户端执行︎

mosh root@203.109.86.12

2. 如果已修改ssh端口,则需通过-P指定ssh的端口(注意-P是大写哦~(。ì _ í。)

mosh -P 29806 root@203.109.86.12

最后

mosh也并不全是优点,他有个bug,输出超过一屏时,只显示最后一屏的内容,不支持回滚。所以需要查看全部输出时,可在命令后加上”| less”来翻页查看。

不过这个问题跟永不掉线和丝般顺滑比起来,真的无伤大雅了。

听说这个问题会在新版本修复,敬请期待吧。。

最后的最后,推荐一个app呀,ios的Blink,可以连接服务器,而且支持mosh哟,每次mosh连上服务器后,不管ipad待机多久,都不用担心掉线,随时打开随时用,感觉真的棒极啦~

上一篇下一篇

猜你喜欢

热点阅读