[SSH服务]——SSH端口转发

实验拓扑图

 

 

实验描述

        假设有三台主机A、B、C。B和A、C可以连通,AC两台主机不能连通。

        这时候可以用本地端口转发,来实现A和C通过B来连通。

        实验中,为了构造上述环境,我们使用三台虚拟机,其网络环境设置如拓扑图所示:

           (1) 主机A :eth1(172.16.10.1/24)

           (2) 主机B: eth0(172.16.10.3/24)     eth1(172.16.20.1/24)

           (3) 主机C: eth0(172.16.20.1/24)

 

实验与验证

1. 确保B和A、C的连通,A、C不能连通(符合实验环境)

    

    

 

2. 在A、B的ssh配置文件/etc/ssh/sshd_config中开启允许转发的选项,并重启ssh服务

# vim /etc/ssh/sshd_config
   GatewayPorts        yes
   AllowTcpForwarding  yes
# service sshd restart

 

3. 在主机C安装httpd并启动http服务,为了更好的验证我们在主机C的站点主目录下写一个“小文件”

# yum install httpd -y
# vim /var/www/html/index.html
  hello,I'm 172.16.20.2
# service httpd start

 

4. 在主机A上执行命令:

# ssh -l  root  -L 172.16.10.159000:172.16.20.2:80  172.16.10.3

    参数-L后面总共有四个用冒号分割的值,分别是 '本地地址:本地端口:目标主机:目标主机端口'

    这条命令的意思是:

   指定SSH绑定本地主机A(172.16.10.1)的59000端口,转发到目标主机C(172.16.20.2)的80端口。并指定由主机B(192.16.10.3)来转发。

    执行结果:

   

 

5. (注意不要退出上一步骤的命令)在A新打开一个终端(Ctrl+Alt+F2)来验证就好,执行命令:

# curl  http://172.16.10.1:59000

     执行结果:

    

      这说明:

      我们连接了本地主机A的59000端口,就等于连上了主机C 172.16.20.2的80端口。

 


补充

1. 本实验参考了文章:http://my.oschina.net/guol/blog/115235

2. 实验过程中要注意防火墙的设置,最好 # iptables -F 清除一下防火墙规则

 

 

    

      

 

posted @ 2016-06-28 21:20  Jelly_lyj  阅读(147)  评论(0编辑  收藏  举报