[SSH服務]——SSH埠轉發

Jelly_lyj發表於2017-03-18

實驗拓撲圖

 

 

實驗描述

        假設有三臺主機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 清除一下防火牆規則

 

 

    

      

 

相關文章