Autossh打洞

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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 [email protected]

  • autossh -M 9091 -fCNR 18082:10.10.3.x:80 [email protected]

  • autossh -M 9091 -fCNR 18083:127.0.0.1:80 [email protected]

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

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

      参数解释:

  • -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 [email protected]

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

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

        技术分享

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


本文出自 “未来时空” 博客,请务必保留此出处http://sjitwant.blog.51cto.com/3661219/1976409

以上是关于Autossh打洞的主要内容,如果未能解决你的问题,请参考以下文章

TCP 打洞和UDP打洞

UDP打洞原理

vlc源码研究

如何在 pygame 表面打洞? [复制]

iOS在UIView中打洞不是正方形

NAT路由打洞机制