天天看点

mosh:一个基于 SSH 用于连接远程 Unix/Linux 系统的工具

mosh 表示移动 shellmobile shell,是一个用于从客户端跨互联网连接远程服务器的命令行工具。它能用于 ssh 连接,但是比 secure shell 功能更多。它是一个类似于 ssh 而带有更多功能的应用。程序最初由 keith winstein 编写,用于类 unix 的操作系统中,发布于gnu gpl v3协议下。

mosh:一个基于 SSH 用于连接远程 Unix/Linux 系统的工具

mosh shell ssh 客户端

它是一个支持漫游的远程终端程序。

在所有主流的类 unix 版本中可用,如 linux、freebsd、solaris、mac os x 和 android。

支持不稳定连接

支持智能的本地回显

支持用户输入的行编辑

响应式设计及在 wifi、3g、长距离连接下的鲁棒性

在 ip 改变后保持连接。它使用 udp 代替 tcp(在 ssh 中使用),当连接被重置或者获得新的 ip 后 tcp 会超时,但是 udp 仍然保持连接。

在很长的时候之后恢复会话时仍然保持连接。

没有网络延迟。立即显示用户输入和删除而没有延迟

像 ssh 那样支持一些旧的方式登录。

包丢失处理机制

<a target="_blank"></a>

<code># apt-get update</code>

<code># apt-get install mosh</code>

<code># yum update</code>

<code># yum install mosh</code>

<code># dnf install mosh</code>

1、 让我们尝试使用 mosh 登录远程 linux 服务器。

<code>$ mosh [email protected]</code>

mosh:一个基于 SSH 用于连接远程 Unix/Linux 系统的工具

mosh远程连接

注意:你有没有看到一个连接错误,因为我在 centos 7中还有打开这个端口。一个快速但是我并不建议的解决方法是:

<code># systemctl stop firewalld [在远程服务器上]</code>

更好的方法是打开一个端口并更新防火墙规则。接着用 mosh 连接到预定义的端口中。至于更深入的细节,也许你会对下面的文章感兴趣。

<a href="http://www.tecmint.com/configure-firewalld-in-centos-7/" target="_blank">如何配置 firewalld</a>

2、 让我们假设把默认的 22 端口改到 70,这时使用 -p 选项来使用自定义端口。

<code>$ mosh -p 70 [email protected]</code>

3、 检查 mosh 的版本

<code>$ mosh --version</code>

mosh:一个基于 SSH 用于连接远程 Unix/Linux 系统的工具

检查mosh版本

4、 你可以输入<code>exit</code>来退出 mosh 会话。

<code>$ exit</code>

5、 mosh 支持很多选项,你可以用下面的方法看到:

<code>$ mosh --help</code>

mosh:一个基于 SSH 用于连接远程 Unix/Linux 系统的工具

mosh 选项

mosh 有额外的需求,比如需要允许 udp 直接连接,这在 ssh 不需要。

动态分配的端口范围是 60000-61000。第一个打开的端口是分配好的。每个连接都需要一个端口。

默认的端口分配是一个严重的安全问题,尤其是在生产环境中。

支持 ipv6 连接,但是不支持 ipv6 漫游。

不支持回滚

不支持 x11 转发

不支持 ssh-agent 转发

mosh是一款在大多数linux发行版的仓库中可以下载的一款小工具。虽然它有一些差异尤其是安全问题和额外的需求,它的功能,比如漫游后保持连接是一个加分点。我的建议是任何一个使用ssh的linux用户都应该试试这个程序,mosh值得一试。

本文来自云栖社区合作伙伴“linux中国”,原文发布日期:2015-09-22  

继续阅读