ssh 是有端口轉發功能的。
ssh 的三個強大的端口轉發命令:
chmod 700 xxx.pem # xxx.pem 是個人證書
ssh -C -f -N -g -D 8000 -i xxx.pem root@xx.com
生成 8000 端口,可以做 socket4 代理
QUOTE:
ssh -C -f -N -g -L listen_port:DST_Host user@Tunnel_Host
ssh -C -f -N -g -R listen_port:DST_Host user@Tunnel_Host
ssh -C -f -N -g -D listen_port user@Tunnel_Host
-f Fork into background after authentication.
後台認證使用者 / 密碼,通常和 - N 連用,不用登入到遠端主機。
-p port Connect to this port. Server must be on the same port.
被登入的 ssd 伺服器的 sshd 服務端口。
-L port:host
將本地機 (客戶機) 的某個端口轉發到遠端指定機器的指定端口。工作原理是這樣的,本地機器上分配了一個 socket 偵聽 port 端口,一旦這個端口上有了連線,該連線就經過安全通道轉發出去,同時遠程主機和 host 的 hostport 端口建立連線。可以在配置文件中指定端口的轉發。只有 root 才能轉發特權端口. IPv6 地址用另一種格式說明: port/host/hostport
-R port:host
將遠程主機 (伺服器) 的某個端口轉發到本地端指定機器的指定端口。工作原理是這樣的,遠程主機上分配了一個 socket 偵聽 port 端口,一旦這個端口上有了連線,該連線就經過安全通道轉向出去,同時本地主機和 host 的 hostport 端口建立連線。可以在配置文件中指定端口的轉發。只有用 root 登入遠程主機才能轉發特權端口. IPv6 地址用另一種格式說明: port/host/hostport
-D port
指定一個本地機器 “動態的 '’ 應用程式端口轉發。工作原理是這樣的,本地機器上分配了一個 socket 偵聽 port 端口,一旦這個端口上有了連線,該連線就經過安全通道轉發出去,根據應用程式的協議可以判斷出遠程主機將和哪裡連線。目前支援 SOCKS4 協議,將充當 SOCKS4 伺服器。只有 root 才能轉發特權端口。可以在配置文件中指定動態端口的轉發.
-C Enable compression.
壓縮資料傳輸。
-N Do not execute a shell or command.
不執行腳本或命令,通常與 - f 連用。
-g Allow remote hosts to connect to forwarded ports.
在 - L/-R/-D 參數中,允許遠程主機連接到建立的轉發的端口,如果不加這個參數,只允許本地主機建立連接