· 4 min read

Mosh: SSH远程登录的替代者

Mosh的连接可在网络断开连接后自动重连,而不会中断会话,Mosh在高延迟和不稳定的网络条件下具有更快的响应速度和更少的延迟,这使得在远程连接中使用命令行工具更加流畅,并且Mosh会根据当前网络状况自适应调整连接参数,这有助于提高连接质量

Mosh的连接可在网络断开连接后自动重连,而不会中断会话,Mosh在高延迟和不稳定的网络条件下具有更快的响应速度和更少的延迟,这使得在远程连接中使用命令行工具更加流畅,并且Mosh会根据当前网络状况自适应调整连接参数,这有助于提高连接质量

使用ssh登录远程服务器有两个问题

  • 自动断连,需要频繁重连
  • 延迟高时,输入卡顿

Mosh很好地解决了这两个问题,使用基于UDP加密传输的状态同步协议(State Synchronization Protocol),即使本地切换网络也能无缝重连.

SSH在高延迟下无法通过Control-C中止进程运行的问题彻底解决了,再也不会出现卡半天的情况了哈哈哈。

相比传统的SSH工具,Mosh的优势

  • 高效的移动网络支持:Mosh对于高延迟和不稳定的网络连接,如3G、4G、Wi-Fi和移动网络提供了很好的支持。Mosh的连接可在网络断开连接后自动重连,而不会中断会话。

  • 安全性:Mosh通过加密和身份验证保证了安全性。Mosh会话在客户端和服务器之间进行加密,即使黑客能够截获你的数据,也无法破解它。

  • 更好的用户体验:Mosh在高延迟和不稳定的网络条件下具有更快的响应速度和更少的延迟,这使得在远程连接中使用命令行工具更加流畅。

  • 跨平台支持:Mosh支持各种操作系统,包括Linux、macOS、Windows、Android和iOS等。

  • 自适应调整:Mosh会根据当前网络状况自适应调整连接参数,这有助于提高连接质量。

Mosh兼容SSH,服务器只要开启了ssh-server就可以用Mosh.

下图是Mosh与SSH的延迟对比(3G网络环境)

Mosh performance

可以看到Mosh在70%的情况下延迟低于10ms,几乎没有延迟的感知.加上Mosh会缓存用户的输入,不会像SSH一样出现卡顿感,即使在网络环境不佳时依然流畅使用.

服务端配置

# 安装ssh server
sudo apt install openssh-server
# 启动及开机启动
sudo systemctl enable ssh --now
# 查看ssh状态
sudo systemctl status ssh
# 安装Mosh
sudo apt install mosh
# 开启udp端口between 60000 and 61000
sudo ufw allow 60001:61000/udp
# 或者打开特定端口,更安全
sudo ufw allow 60089/udp
# 重启防火墙
sudo systemctl restart ufw

客户端连接

# 客户端连接mosh
mosh username@ip -p 60089

ssh客户端配置文件

编辑或创建~/.ssh/config文件

Host aws-jp
  HostName 127.0.0.4                            # ssh服务器ip地址
  Port 22
  User root                                     # ssh服务器用户名
  IdentitiesOnly yes                            # 仅使用IdentityFile进行登录
  IdentityFile /Users/your-username/.ssh/id_rsa # ssh私钥目录

连接服务器

  1. ssh aws-jp 使用普通ssh
  2. mosh aws-jp -p 60089 使用mosh
Back to Blog

Related Posts

View All Posts »
访问电子书库Z-Library

访问电子书库Z-Library

Z-Library有一个庞大的数据库,包含了数千万的书籍和文档,涉及众多的学科和领域,比如计算机科学、数学、生物学、化学、历史、文学、哲学等等。如果你需要查找或下载一个书籍,你可以直接在Z-Library的网站进行搜索下载。本文介绍了几种访问Z-Library的方法

免费使用微软文本转语音(TTS)服务

免费使用微软文本转语音(TTS)服务

系统自带的文字转语音(TTS)不堪入耳,听了几分钟,耳朵严重不适。上传到微信读书可以使用微信读书的AI语音,但是考虑到平台限制等诸多因素,还是倾向于使用微软的TTS -- 最自然流畅的文本转语音,效果更佳。但是微软TTS属于付费服务,这里推荐一款借助edge浏览器接口免费使用的Python程序,开源免费。