背景:公司在不同地域不同资源池的vpc中建有子网,其中内网1和内网2的机器都无公网ip,都是通过SNAT访问公网。需求是需要在内网2的机器中从内网1的服务器B提供的git服务拉取代码,当然有诸多方式比如vpn等来打通两个内网网络,这里只介绍通过ssh反向隧道的方式打通。
这个方式是借助了服务器c有公网ip,利用服务器C的特定端口监听,实现远程端口转发。
服务器A: 192.168.1.36 ssh有权限访问
服务器B: 192.168.1.86 无ssh访问权限,和服务器A内网互通,对内网提供git服务(https,使用443端口)
服务器C: 144.6.121.* 有公网ip,有ssh的root访问权限
服务器D: 172.18.150.12 在另一内网下,也是通过SNAT访问公网,需要从git拉取代码进行构建
步骤:
1.首先打开服务器C的特定端口,用于端口转发,此处使用6767。示例机器使用iptables,如果使用firewalld service,请相应转换为firewall-cmd 命令打开端口。
iptables -I INPUT -p tcp --dport 6767 -j ACCEPT
iptables -I OUTPUT -p tcp --sport 6767 -j ACCEPT
2.登陆服务器A, 使用ssh反向代理进行端口远端转发。
ssh -R 6767:192.168.1.86:443 root@144.6.121.*
(autos