码迷,mamicode.com
首页 > 其他好文 > 详细

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

时间:2016-06-28 21:57:20      阅读:126      评论:0      收藏:0      [点我收藏+]

标签:

实验拓扑图

 

 

实验描述

        假设有三台主机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,Im 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 清除一下防火墙规则

 

 

    

      

 

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

标签:

原文地址:http://www.cnblogs.com/snsdzjlz320/p/5621459.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!