OpenSSH
建立一個反向 ssh
隧道只需一個開關 -R
到原始命令。
命令列
假設你使用命令 ssh guest@example.com
作為使用者 guest
連線到 example.com
。開啟反向隧道可能如下所示:
ssh -R 2222:localhost:22 guest@example.com
它將在遠端伺服器上開啟一個埠 2222
(僅限環回介面),並且該埠的每個連線都將轉發到本地計算機 ssh 伺服器(埠 22
)。
這也假設你已在伺服器上的 sshd_config
中允許選項 AllowTcpForwarding yes
和 PermitOpen any
。否則它將失敗並出錯
open failed: administratively prohibited: open failed
如果要允許轉發埠可以在其他網路地址(而不是 localhost
)上訪問,則還需要允許 GatewayPorts yes
並使用 IP 地址或主機名或 IP):
ssh -R 2222:example.com:22 guest@example.com
組態
此外,你可以在~/.ssh/config
中指定遠端埠轉發,以避免每次連線時鍵入相同的行。如果經常連線到主機並且不希望每次都啟動埠轉發,那麼良好的做法可能是為主機設定別名,該主機將進行此轉發:
Host example.com-R
Hostname example.com
User guest
RemoteForward 2222 localhost:22
然後使用 ssh example.com-R
建立遠端埠轉發
在後臺執行
埠轉發可以簡單地在後臺使用交換機 -N
執行(不要執行遠端命令,只執行轉發),-f
(驗證後轉到後臺),-T
(禁用遠端 TTY 分配)。把它們放在一起:
ssh -NTfR 2222:localhost:22 guest@example.com