使用mosh来连接你的海外服务器

简介

mosh其实我了解了很久了,就是一直没有写篇博客出来而已

做过坏事的人都知道,当我们去连接国外服务器的时候,网络一不好ssh连接就会断,典型处理这个问题的方法就是让ssh每隔多少时间就去发送一个心跳包,阻止ssh连接断,但是这个是一个不能制根本的方法,不需要多久ssh还是会断,如何使用心跳包你可以看下面这个博客

linux下踢掉一个用户(心跳包解决ssh断开连接)

mosh 和ssh最主要的区别就是mosh使用的是udp协议连接的,所以连接的速度非常快,但是因为udp协议的不可靠性,所以最好不要在生产环境使用mosh

mosh有两个最强大的特点,第一个是会话终端不会终止前台运行的命令,这样就算你在执行编译,网络断了,编译也不会中断出现问题

还有一个是mosh在连接断了之后不会立刻退出,当网络恢复时候会自动重新连接

安装

首先不管你本地还是远程的服务器都要安装mosh,mosh几乎全平台安装包都有,如果你本地是mac

brew install mosh

接着在远程服务器安装mosh,如果你是debian系列的

sudo apt install mosh

安装完成之后并不需要启动远程server什么的,什么都不用做,直接本地连接到远程服务器即可

mosh [email protected]

默认mosh会在你远程服务器开一个60001udp端口,所以当你发现连接不到远程服务器,爆出下面的错误的时候

Nothing received from server on UDP port 60001

检查你云服务器上的防火墙开放相关端口即可

得益于mosh的简单操作性,所以在一定程度上只要你在本地和远程服务器上都安装了mosh,你可以直接使用mosh代替ssh

最后说个事,就是termius支持mosh了,如果你本地不想安装mosh的话那么安装termius也可以

欢迎关注Bboysoul的博客www.bboy.app

Have Fun

欢迎关注我的其它发布渠道