ssh隧道穿透内网

应用场景:
现有inner_server、 online_server、 client 三台设备:

  1. inner_server在内网,可以访问公网,但是不能从公网直接访问。
  2. online_server在公网上
  3. client是办公电脑,无固定公网ip

想实现inner_server和client两台设备之间的互联,可以通过挖一条ssh隧道穿透内网为两台设备牵线搭桥。

相关技术blog:
http://www.ruanyifeng.com/blog/2011/12/ssh_port_forwarding.html
http://linux.51yip.com/search/ssh

思路:
step1. 在inner_server上开启remote_forwarding,实现: inner_server<------connection------>online_server。
step2. 在online_server上开启local_forwarding,实现:client<------connection------>online_server
这样就实现了:client<------online_forwarding------>inner_server

配置:

// inner_server:
ssh -Np 8888 online_server
ssh -NT -f -R 12345:localhost:8888 online_server
// inner_server 通过8888端口连接 online_server,并让online_server监听自身的12345端口,有任何流量即转发到inner_server的22端口(online_server的ssh监听端口为8888)

// online_server:
ssh -NT -f -L *:55555:localhost:12345 localhost
// online_server 把任何连接到55555端口流量转发到自身的12345端口上

// client访问时:
ssh -Np 55555 online_server
// client 通过55555端口连接online_server,同时也打通了与inner_server的8888端口的连接

参数解释:
-f 后台运行
-C 允许压缩数据
-N 不执行任何命令
-R 将端口绑定到远程服务器,反向代理
-L 将端口绑定到本地客户端,正向代理

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容