SSH端口映射
通常我们的内网的服务端口都会被出口防火墙封掉。一般情况下只给我们开放了SSH的22端口(默认情况下),此时网管又不给我们在防火墙上做端口转发,我们应该怎么呢? 首先大家肯定想到利用,linux自身所带的防火墙做NAT转发。但我想告诉大家利用SSH协议可以做到。 首先让我们先来了解下他的命令语法及格式。 ssh -C -f -N -g -L/-R 端口:IP:端口 用户名:IP -C:压缩数据传输。 -f :后台认证用户/密码,通常和-N连用,不用登录到远程主机。 -N :不执行脚本或命令,通常与-f连用。 -g :在-L/-R/-D参数中,允许远程主机连接到建立的转发的端口,如果不加这个参数,只允许本地主机建立连接。 -L 本地端口:目标IP:目标端口 将本地机(客户机)的某个端口转发到远端指定机器的指定端口. 工作原理是这样的, 本地机器上分配了一个 socket 侦听 port 端口, 一旦这个端口上有了连接, 该连接就经过安全通道转发出去, 同时远程主机和 host 的 hostport 端口建立连接. 可以在配置文件中指定端口的转发. 只有 root 才能转发特权端口. -R本地端口:目标IP:目标端口 将远程主机(服务器)的某个端口转发到本地端指定机器的指定端口. 工作原理是这样的, 远程主机上分配了一个 socket 侦听 port 端口, 一旦这个端口上有了连接, 该连接就经过安全通道转向出去, 同时本地主机和 host 的 hostport 端口建立连接. 可以在配置文件中指定端口的转发. 只有用 root 登录远程主机才能转发特权端口. 应用事例: 主机A:10.15.62.82 主机B:10.15.62.209 实验环境: 首先我们在主机B通过YUM源安装HTTP服务 Yum install httpd –y 安装完成后启动主机B的http服务: Service httpd start 通过netstat –tnlp | grep 80 查看80端口是否开放 此时我们关闭防火墙和selinux以免影响我们的实验。 通过浏览器查看10.15.62.209的网页。 然后我们在/var/www/html/创建一个index.html文件 写入: 10.15.62.209:80 刷新浏览器页面看是否达到效果。 然后我们主机A上操作: ssh -C -f -N -g -L 80:10.15.62.209:80 root@10.15.62.209 然后我们在浏览器上输入http://10.15.62.82:80 查看是否和前面看到的一样。如果一样说明你已经成功。