資料來源:
https://help.ubuntu.com/community/SSH/OpenSSH/PortForwarding
工作中常用的 SSH 端口轉發有三種:
- 本地端口轉發(Local Port Forwarding);
- 遠程端口轉發 (Remote Port Forwarding);
- 動態端口轉發(Dynamic Port Forwarding);
本地端口轉發
本地端口轉發使你通過本地地址端口(當前設備)訪問遠程地址端口;
1 | ssh -L 8080:localhost:80 root@my.server # 本地訪問8080 獲取遠程計算機的localhost的80 |
也可以在本地地址端口,通過遠程地址(遠程SSH服務)訪問遠程地址能訪問到的服務(起到跳板作用);
1 | ssh -L 8080:linux.dog:80 root@my.server # 本地訪問 8080 通過遠程計算機訪問 linux.dog |
也可以多個 -L
組合使用~
遠程端口轉發
通過遠程 my.server 上的 5900 訪問本地的 1234(起到映射、端口轉發的作用)
1 | ssh -R 0.0.0.0:5900:localhost:1234 root@my.server |
動態端口轉發
本地開放 1080 通過遠程主機轉發(SOCKS代理😂)
1 | ssh -D 1080 root@my.server |
相關參數及配置
-f
ssh 進入後臺-N
不執行遠程命令-T
不分配終端-c
對轉發數據進行壓縮,提文本數據轉發效率(二進制會降低);