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

Mosh 表示移动 ShellMobile Shell,是一个用于从客户端跨互联网连接远程服务器的命令行工具。它能用于 SSH 连接,但是比 Secure Shell 功能更多。它是一个类似于 SSH 而带有更多功能的应用。程序最初由 Keith Winstein 编写,用于类 Unix 的操作系统中,发布于GNU GPL v3协议下。

Mosh Shell SSH 客户端

Mosh的功能

  • 它是一个支持漫游的远程终端程序。
  • 在所有主流的类 Unix 版本中可用,如 Linux、FreeBSD、Solaris、Mac OS X 和 Android。
  • 支持不稳定连接
  • 支持智能的本地回显
  • 支持用户输入的行编辑
  • 响应式设计及在 wifi、3G、长距离连接下的鲁棒性
  • 在 IP 改变后保持连接。它使用 UDP 代替 TCP(在 SSH 中使用),当连接被重置或者获得新的 IP 后 TCP 会超时,但是 UDP 仍然保持连接。
  • 在很长的时候之后恢复会话时仍然保持连接。
  • 没有网络延迟。立即显示用户输入和删除而没有延迟
  • 像 SSH 那样支持一些旧的方式登录。
  • 包丢失处理机制

Linux 中 mosh 的安装

在 Debian、Ubuntu 和 Mint 类似的系统中,你可以很容易地用 apt-get 包管理器安装。


  1. # apt-get update
  2. # apt-get install mosh

在基于 RHEL/CentOS/Fedora 的系统中,要使用 yum 包管理器安装 mosh,你需要打开第三方的 EPEL


  1. # yum update
  2. # yum install mosh

在 Fedora 22+的版本中,你需要使用 dnf 包管理器来安装 mosh。


  1. # dnf install mosh

我该如何使用 mosh?

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


  1. $ mosh root@192.168.0.150

mosh远程连接

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


  1. # systemctl stop firewalld [在远程服务器上]

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

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


  1. $ mosh -p 70 root@192.168.0.150

3、 检查 mosh 的版本


  1. $ mosh --version

检查mosh版本

4、 你可以输入exit来退出 mosh 会话。


  1. $ exit

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


  1. $ mosh --help

Mosh 选项

mosh 的优缺点

  • mosh 有额外的需求,比如需要允许 UDP 直接连接,这在 SSH 不需要。
  • 动态分配的端口范围是 60000-61000。第一个打开的端口是分配好的。每个连接都需要一个端口。
  • 默认的端口分配是一个严重的安全问题,尤其是在生产环境中。
  • 支持 IPv6 连接,但是不支持 IPv6 漫游。
  • 不支持回滚
  • 不支持 X11 转发
  • 不支持 ssh-agent 转发

总结

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

本文来自合作伙伴“Linux中国”,原文发布日期:2015-09-22  

时间: 2024-11-30 22:29:54

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

Ubuntu下通过sftp/SSH远程登录linux系统

SSH远程登录linux系统 步骤如下: 1.在需要远程访问的计算机的"新立得"里面安装openssh-server.这台计算机是远程计算机,你当前使用的计算机是本地计算机.如果使用Ubuntu或者其他Linux版本,已经安装了连接到远程计算机的软件. 2.远程计算机软件安装完毕.在本地计算机的终端里面输入: ssh username@address 其中username是远程计算机的账户名称,address是远程计算机的IP地址或者域名. 平日你希望以keir登录192.168.1.

【下载】维基解密第14批 法外之地“OutlawCountry”项目 用于远程入侵Linux系统

维基解密近日又发布了一批新的文档,其中详细介绍了CIA入侵Linux系统的工具,法外之地"OutlawCountry".相关文档称,"OutlowCountry"工具的原理是将目标Linux计算机上的全部出站网络流量,重新定向至CIA控制下的系统当中,从而获取 exfiltrate 及 infiltrate数据 该工具包含一个面向Linux 2.6的内核模块,CIA黑客通过shell访问目标系统从而完成该模块的加载,但该工具的局限在于只适用于部分特定Linux内核,

linux-想做一个基于图像对比视频监控的监控系统应该看哪些书籍或者推荐学习什么?

问题描述 想做一个基于图像对比视频监控的监控系统应该看哪些书籍或者推荐学习什么? 基于mini2440来做的,主要是通过图像对比看当前采集到的数据和之前的有没有变化,来决定采集到的数据要不要存储.

各位大神我想做一个基于android的互联网统一身份认证系统

问题描述 各位大神我想做一个基于android的互联网统一身份认证系统 只要通过android验证就可以访问web服务器的网页,网页简单的就是登陆界面和登录成功失败界面,当用户吧手机号输入到web的登录框点击确定就可以发送到android手机,android端输入用户名和密码就可以完成验证,若点击准许跳转到成功界面,不准许就跳转到失败界面.求大神们帮我啊

请教各位,希望自己动手开发一个基于JAVE语言的,录入单据系统,希望可以有“自动完成”的等功能,选择什么AJAX框架

问题描述 希望开发一个基于JAVE语言的,录入单据系统,希望可以有"自动完成"的功能,还有一些工作流的代码(例如后工序审核)应该使用什么框架比较啊容易做到这些功能呢?有没视频提供一下学习,我是一个自学开发的初哥(有一点JAVA基础:主要希望实现的是把原来的桌面型的系统,开发成为用JAVA+AJAX造的网页型的单据管理系统) 解决方案 解决方案二:prototype或JQuery都行吧解决方案三:JQuery比较好一点,容易掌握学习prototype现在企业才用

基于物联网技术的远程温湿度监测系统

基于物联网技术的远程温湿度监测系统 朱俊光 高健 田俊 赵敏 戚海峰 谢亚卓 庄建军 利用SHT11温湿度传感器监测环境温湿度,将监测到的数据通过ZigBee模块CC2530和ZigBee协议无线通信发送给ZigBee协调器,协调器再把数据传递给嵌入式网关系统,嵌入式网关部分驱动LCD屏幕显示动态温湿度曲线,并且将数据制作成动态网页通过WiFi可以远程实时查看当前温湿度值,实现物联网中人物相连.物物相连的功能. 基于物联网技术的远程温湿度监测系统

远程修改Linux系统VPS服务器Root用户密码教程

当你刚接触Linux系统的VPS主机时,运营商往往会给你一个Linux系统的远程登陆管理的用户名和密码.而这个密码是默认的切具有一定规律,所以是非常不安全的.这个时候我们就需要修改Root密码了. 方法其实很简单,在Windows系统下用putty链接到Linux后用一个简单的命令就可以搞定. Linux修改root密码命令 首先以root身份登陆,执行:「passwd 用户名」(用户名一般些root),如以下示例: [root@bogon ~]# passwd root Changing pa

获得Unix/Linux系统中的IP、MAC地址等信息

获得Unix/Linux系统中的IP.MAC地址等信息 中高级  |  2010-07-13 16:03  |  分类:①C语言. Unix/Linux. 网络编程 ②手册  |  4,471 次阅读 作者:diaoyf  |  文章来源:http://programmerdigest.cn 实际环境和特殊需求往往会将简单问题复杂化,比如计算机IP地址,对于一个连接中socket,可以直接获得本端和对端的IP.端口信息.但在一些特殊场合我们可能需要更多的信息,比如系统中有几块网卡,他们的Mac地

Unix/Linux系统自动化管理: 进程管理篇

简介:本文是 Unix/Linux 系统管理自动化系列中的一篇,主要讲述如何实现自动化监控进程状态和 性能并及时通知系统管理员. 进程监控是 Unix/Linux 系统管理中一个非常重要的组成部分.它可以监控进程状态.进程的 CPU 利 用率等信息,并且可以在发现进程出现异常情况的时候,发送告警信息给系统管理员或者做出指定的反应 .我们可以使用系统进程监控信息进行合理的进程调度从而优化系统性能,或者根据这些信息调整系统的 行为. 不同的操作系统监控进程的命令可能略有不同.本文将介绍 Unix/L