在Ubuntu系統中,你可以使用ssh
命令來實現端口轉發。端口轉發允許你將本地計算機上的一個端口映射到遠程計算機上的另一個端口。以下是幾種常見的端口轉發方法:
本地端口轉發允許你將本地計算機的某個端口轉發到遠程計算機的某個端口。
ssh -L local_port:remote_host:remote_port user@ssh_server
例如,如果你想將本地計算機的端口8080轉發到遠程計算機example.com
的端口80,可以使用以下命令:
ssh -L 8080:example.com:80 user@ssh_server
遠程端口轉發允許你將遠程計算機的某個端口轉發到本地計算機的某個端口。
ssh -R remote_port:local_host:local_port user@ssh_server
例如,如果你想將遠程計算機ssh_server
的端口9090轉發到本地計算機的端口9090,可以使用以下命令:
ssh -R 9090:localhost:9090 user@ssh_server
動態端口轉發允許你將本地計算機的某個端口轉發到一個SOCKS代理服務器。
ssh -D local_port user@ssh_server
例如,如果你想將本地計算機的端口1080轉發到一個SOCKS代理服務器,可以使用以下命令:
ssh -D 1080 user@ssh_server
假設你想將本地計算機的端口8080轉發到遠程計算機example.com
的端口80,并且使用SSH密鑰進行身份驗證:
生成SSH密鑰(如果還沒有):
ssh-keygen -t rsa -b 4096
將公鑰復制到遠程服務器:
ssh-copy-id user@ssh_server
使用本地端口轉發:
ssh -L 8080:example.com:80 user@ssh_server
現在,你可以在本地計算機上訪問http://localhost:8080
,流量將通過SSH隧道轉發到example.com
的端口80。
希望這些信息對你有所幫助!如果有任何問題,請隨時提問。