一条ssh命令实现端口转发,实现跨机器直接访问
#功能场景:192.168.100.12和192.168.100.11在内网可以连接,但是只有12这台机器有另外一个网口配置了外网可访问的地址,外网不能直接访问11这台机器。
#那么,平时的做法是外网连接12机器,然后通过12这个跳板访问11;ssh连接的方式。
#问题来了:我客户端要直接访问11的数据库或者网页,肿么办?
#SSH隧道端口端口转发帮助你,只要一条命令搞定。
#具体需求,192.168.100.11:7180是CM的管理页面,外部无法访问,通过12这台机器的外网网口转发。
#本机192.168.100.12监听来自对本机全部网口6180端口发起连接的请求,然后把数据全部转发到192.168.100.11的7180端口去
插图:
#(实验环境没有跨网段,实际情况,第三方机器访问的不是192.168.100.11那个IP,而是其他网口IP,侦听端口对即可)
#实际上,浏览器中地址栏显示是12的6180端口,但是内容实质是11那边开启的7180服务。
插图:################## 用完,直接停掉进程即可。
[root@snn opt]# netstat -an |grep 6180
tcp 0 0 0.0.0.0:6180 0.0.0.0:* LISTEN
tcp 0 0 :::6180 :::* LISTEN
[root@snn opt]# netstat -tlnp |grep 6180
tcp 0 0 0.0.0.0:6180 0.0.0.0:* LISTEN 4642/ssh
tcp 0 0 :::6180 :::* LISTEN 4642/ssh
[root@snn opt]# ps -f 4642
UID PID PPID C STIME TTY STAT TIME CMD
root 4642 1 0 16:05 ? Ss 0:00 ssh -C -f -N -g -L 6180:192.168.100.11:7180 [email protected]
[root@snn opt]# kill -9 4642
[root@snn opt]# netstat -tlnp |grep 6180
[root@snn opt]# netstat -tlnp |grep 6180
[root@snn opt]#
################################
问题:有些机器SSH设置不允许端口转发,需要设置其他的远端转发,用于私网和公网建立隧道,反向访问私网的一个手段,暂时没有用得上。至于*翻*墙*的socket转发,呵呵。