autossh自动重连与打洞

/ NetworkLinux服务安装搭建 / 没有评论 / 4195浏览

作用

安装

apt-get -y install autossh

环境准备

ssh 免密

实例

x.x.x.x 代表公网ip

主机上开启一个本地侦听地址:6767端口,外网访问本地5428端口将转发至localhost:5429,先主后外

labs@hostname:~$ autossh -M 6767 -CTfnN  -D 5428:localhost:5429 user@x.x.x.x  -p 22

在外网机器访问内网的5428端口,-h后面直接跟localhost就可以

labs@pg-slave:~$ psql -h localhost -p 5429  -U labs  -d databasename
psql (9.5.4)
Type "help" for help.

databasename=#

参数解释

-M为autossh参数, -CqTfnN -D 为ssh参数

-M 6767 : 负责通过6767端口监视连接状态,连接有问题时就会自动重连

-C :启动数据压缩传输

-q :安静模式运行,忽略提示和错误

-T :不占用shell

-f :后台运行

-n :配合 -f 参数使用

-N :不执行远程命令,专为端口转发度身打造

-D 192.168.0.2:7070 :指定一个本地机器 “动态的“ 应用程序端口转发,如果不加IP地址,默认只监听127.0.0.1

优化

authossh实际上是调用ssh,可以再加上 -o TCPKeepAlive=yes -o ServerAliveInterval=30 ,解决频繁断线问题。

labs@hostname:~$ autossh -M 6767 -CTfnN  -D 5428:localhost:5429 user@x.x.x.x  -p 22  -f AUTOSSH_POLL  86400 -o TCPKeepAlive=yes -o ServerAliveInterval=30