autossh是自动维护ssh长连接的工具,正常程序员如果要维护ssh隧道,一般就会直接使用这个工具。当然,遇到不正常的程序员除外(小沃最近遇到一个不正常的)。
安装很简单,直接用命令即可:
apt-get install autossh
或
yum install autossh
autossh的命令与常规的ssh基本一样,需要注意的是需要加一个-M参数,用来指定监听隧道是否正常工作的端口。
如果只是创建一个sshtunnel,直接用
autossh -M 0 -o "ServerAliveInterval 20" -o "ServerAliveCountMax 3" -f -n -C -T -N -L 3306:127.0.0.1:3306 test@124.70.12.155
或
autossh -M 20000 -f -n -C -T -N -L 3306:127.0.0.1:3306 test@124.70.12.155
参数解释
-M 20000,使用20000端口用来进行连接测试,这是autossh独有的,ssh没有该命令。
-o,"ServerAliveInterval 20" -o "ServerAliveCountMax 3",设置tcp通道实现20秒没消息自动发送心跳包,3次心跳包没返回则断开连接
注:-M 20000与-o都是心跳命令,可以不同时启动。
-f,后台运行
-n,把 stdin重定向到/dev/null (实际上防止从stdin读取数据). ssh在后台运行时一定会用到这个选项.它的常用技巧是远程运行X11程序
-C,数据传输压缩,可降低带宽
-T,不分配终端
-N,不可执行linux命令
-L 3306:127.0.0.1:3306,本地代理,可选-R远端代理以及-D动态代理,意思是本地的3306端口映射到远程服务器的127.0.0.1:3306端口
文章作者:沃航科技