场景: 机房机器若干, 只有少数服务器有和办公区可以互联的IP, 其他服务器都是内网IP, 需要从有互联能力的服务器跳转. 为了避免两次登录, 或者需要访问内网服务器的Web等服务, 最简单的方法就是弄个SSH Remote Tunnel. 有互联的能力的服务器假设是linux的.
比方说, 我能看到到服务器是100.120.8.151, 想访问内网10.120.8.153:8080 ...
因为安全考虑, 转发能力默认是关闭的. 得先打开它. 登录上100.120.8.151, 修改sshd的配置
# /etc/ssh/sshd_config,找到GatewayPorts,改成yes
GatewayPorts yes
执行这个命令
ssh -NfR 18080:10.120.8.153:8080 root@100.120.8.151
这样, 10.120.8.153:8080端口就被映射到了100.120.8.151的18080端口.
PS: 也可以用iptables转发
iptables -t nat -A PREROUTING -p tcp -d 100.120.8.151 --dport 18080 -j DNAT --to-destination 10.120.8.153:8080
iptables -t nat -A POSTROUTING -p tcp -d 10.120.8.153 --dport 8080 -j SNAT --to-source 100.120.8.151:18080