Autossh打洞

简介:

autossh介绍:

  • autossh 是一个用来启动 ssh 并进行监控的程序,可在需要时重启 ssh,如果程序问题或者是网络问题。其灵感和机制来自于 rstunnel (Reliable SSH Tunnel). autossh 1.2 的方法已经改变:autossh 使用 ssh 来构造一个 ssh 重定向循环(本地到远程和远程到本地),然后发送测试数据并获得返回结果。

  • 内网主机主动连接到外网主机,又被称作反向连接(Reverse Connection),这样NAT路由/防火墙就会在内网主机和外网主机之间建立映射即可相互通信了。但这种映射是路由网关自动维持的,不会持续下去,如果连接断开或者网络不稳定都会导致通信失败,这时内网主机需要自动重连机制了。

安装:

  • yum install autossh

实例:

  • autossh -M 9090 -fCNR 18081:10.10.3.x:8080 root@x.x.x.x

  • autossh -M 9091 -fCNR 18082:10.10.3.x:80 root@x.x.x.x

  • autossh -M 9091 -fCNR 18083:127.0.0.1:80 root@x.x.x.x

  • 这样将在'x.x.x.x'主机上开启一个本地侦听地址:18081,访问本地18081将转发至10.10.3.x:8080

      -M 9090参数,负责通过9090端口监视连接状态,连接有问题时就会自动重连。
      -M 是服务器echo机制使用的端口。

  • autossh -M 5678 -CqTfnN -D 192.168.0.2:7070 freeoa@remote-host

      参数解释:

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

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

  • -C :启动数据压缩传输

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

  • -T :不占用shell

  • -f :后台运行

  • -n :配合 -f 参数使用

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

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

使用场景:

  • 场景:A是内网服务器192.168.1.10(内部多次nat,无法使用公网IP),B是内网用户转发代理服务器192.168.1.12,C是公网服务器x.x.x.x,D是用户PC

  • 需求:D访问A内网服务器web 8080

  • 方法:
    1.B安装autossh

          2.B执行autossh -M 9091 -fCNR 18080:192.168.1.10:8080 root@x.x.x.x

          3.设置B可以无密码登陆C

          4.D上打开putty,设置正向代理,点击Add,save保存,如图:

        image2017-10-26%2014%3A44%3A22.png?versi

        5.D上打开浏览器:http://127.0.0.1:18080 ,访问到内网A服务器web应用


补充:

注意几个参数:

AUTOSSH_MAXLIFETIME:
    Sets the maximum number of seconds the process should live for before killing off the ssh child and exiting.
AUTOSSH_POLL:
    poll time in seconds; default is 600.

     在实际应用中,发现每隔10分钟,会断线重连,这对应用造成很大影响。

     使用AUTOSSH_MAXLIFETIME参数设定转发存活时间,在这个时间内不会断,但是时间到后,会kill掉进程,无法重连。

     使用AUTOSSH_POLL,可以指定多长时间断线重连,官网原话,实际上没看懂,希望理解的同道指点。

    AUTOSSH_POLL	  - poll time in seconds; default is 600.
    			    Changing this will also change the first
			    poll time, unless AUTOSSH_FIRST_POLL is
			    used to set it to something different.
			    If the poll time is less than twice the 
			    network timeouts (default 15 seconds) the 
			    network timeouts will be adjusted downward 
			    to 1/2 the poll time.

     在实际中,使用这个参数,依然无法解决我的问题,authossh实际上是调用ssh,可以再加上 -o TCPKeepAlive=yes -o ServerAliveInterval=30 ,解决频繁断线问题。

     一个例子:

     autossh -M 9098 -CNR  x.x.x.x:443:10.x.x.x:443 root@x.x.x.x -f AUTOSSH_POLL  86400 -o TCPKeepAlive=yes -o ServerAliveInterval=30


本文转自 穿越防火墙 51CTO博客,原文链接:http://blog.51cto.com/sjitwant/1976409


相关文章
|
3月前
|
网络协议 算法 程序员
网络必修课:以太网报文格式详解
嗨,大家好!今天,我要带大家深入了解以太网报文格式,这是现代网络通信的重要基础。无论你是网络工程师、开发者,还是对技术感兴趣的朋友,这篇文章都将为你揭开以太网的神秘面纱,让你更好地理解和应用这一关键技术。准备好了吗?让我们开始吧!
89 4
|
5月前
|
网络协议 网络架构
网络原理-IP/数据链路层协议
网络原理-IP/数据链路层协议
|
4月前
|
存储 网络协议 网络架构
网络原理(5)——IP协议(网络层)
网络原理(5)——IP协议(网络层)
39 0
|
5月前
|
存储 网络协议 算法
网络原理(2)-IP协议
网络原理(2)-IP协议
48 0
|
5月前
|
存储 缓存 网络协议
【网安 | 网络协议】ARP协议(地址解析协议)
【网安 | 网络协议】ARP协议(地址解析协议)
286 1
|
5月前
|
存储 网络协议 算法
网络原理之IP协议
网络原理之IP协议
|
网络协议 数据挖掘 网络架构
【计算机网络】网络层和链路层网路协议分析
【计算机网络】网络层和链路层网路协议分析
|
网络协议 安全
计算机网络——DHCP协议详解
计算机网络——DHCP协议详解
356 2
|
缓存 网络协议 算法
计网 - 局域网:NAT 是如何工作的?
计网 - 局域网:NAT 是如何工作的?
143 0
|
网络协议