SSH能夠對SSH客戶端與服務器端之間的網絡通信提供加密功能,而且SSH的端口轉發功能還能將其它TCP端口的網絡數據通過SSH連接來轉發,並且自動提供相應的加密和解密服務,這一過程也被稱為“隧道”(tunneling),telent、ftp、SMTP等明文傳輸的TCP協議都可通過SSH的隧道機制實現通信加密傳輸。如果工作環境中的防火牆限制了一些網絡端口的使用,但是允許ssh連接,也能夠通過通過ssh端口轉發功能來實現通信。
SSH端口轉發主要具有兩大功能:
1、加密SSH Client端至SSH Server端之間的通訊數據
2、突破防火牆限制,完成一些之前無法通過直接建立TCP連接實現的功能
一、本地端口轉發
命令:ssh -L localPort : remoteHost : remotePort sshServer
1、確認host2的http服務可用
host3:
2、設置防火牆使host1無法訪問host2的http服務
host2:
host1:
3、host1上配置本地端口轉發
4、host1上訪問host2上的http服務
host1:
http://localhost:9000
host3:
host2:
二、遠程端口轉發
命令:ssh -R sshServerPort : remoteHost : remotePort sshServer
1、確認host2的http服務可用
host3:
2、設置防火牆使host1無法訪問host2的http服務
host2:
host1:
3、host3上配置遠程端口轉發
host3:
4、host1上訪問host2上的http服務
host1:
http://localhost:9000
host3:
host2: