- 常用參數
- 栗子
- 實戰
常用參數
- -N 告訴SSH客戶端,這個連接不需要執行任何命令。僅僅做端口轉發
- -C 表示壓縮數據傳輸
- -f 告訴SSH客戶端在后台運行
- -q Quiet mode. 安靜模式,忽略一切對話和錯誤提示
- -g:允許遠程主機連接主機的轉發端口
- -L port:host:hostport 做本地映射端口(正向隧道,監聽本地port)
- 需要使用的本地端口號
- 需要訪問的目標機器IP地址(IP: 234.234.234.234)
- 需要訪問的目標機器端口(端口: 21)
- -R。port:host:hostport 該參數的三個部分的含義分別(反向隧道,監聽遠程port)
- 遠程機器使用的端口(2222)
- 需要映射的內部機器的IP地址(127.0.0.1)
- 需要映射的內部機器的端口(22)
- 栗子 -R X:Y:Z 就是把我們內部的Y機器的Z端口映射到遠程機器的X端口上
- -D port 指定一個本地機器 ``動態的 應用程序端口轉發
栗子
ssh -N -f -L 2121:234.234.234.234:21 123.123.123.123
ftp localhost:2121 # 現在訪問本地2121端口,就能連接234.234.234.234的21端口了
-
保持長時間連接
ssh -R 2222:localhost:22 123.123.123.123 "vmstat 30"
-
SSH隧道建立SOCKS服務器
ssh -N -f -D 1080 123.123.123 # 將端口綁定在127.0.0.1上 ssh -N -f -D 0.0.0.0:1080 123.123.123.123 # 將端口綁定在0.0.0.0上
-
SSH 建立正向代理
ssh -CfNg -L 6300:127.0.0.1:1521 oracle@172.16.1.164
-
SSH 建立反向代理
ssh -CfNg -R 1521:127.0.0.1:6300 oracle@172.16.1.164
實戰
有A,B,C 3台服務器;
A,C有公網IP, B是某IDC的服務器無公網IP。
A通過B連接C的80端口(A<=>B<=>C), 那么在B上執行如下命令即可:
ssh -CfNg -L 6300:127.0.0.1:80 userc@C
ssh -CfNg -R 80:127.0.0.1:6300 usera@A