既然"本地端口轉發"是指綁定本地端口的轉發,那么"遠程端口轉發"(remote forwarding)當然是指綁定遠程端口的轉發。
還是接着看上面那個例子,host1與host2之間無法連通,必須借助host3轉發。但是,特殊情況出現了,host3是一台內網機器,它可以連接外網的host1,但是反過來就不行,外網的host1連不上內網的host3。這時,"本地端口轉發"就不能用了,怎么辦?
解決辦法是,既然host3可以連host1,那么就從host3上建立與host1的SSH連接,然后在host1上使用這條連接就可以了。
我們在host3執行下面的命令:
$ ssh -R 2121:host2:21 host1
R參數也是接受三個值,分別是"遠程主機端口:目標主機:目標主機端口"。這條命令的意思,就是讓host1監聽它自己的2121端口,然后將所有數據經由host3,轉發到host2的21端口。由於對於host3來說,host1是遠程主機,所以這種情況就被稱為"遠程端口綁定"。
綁定之后,我們在host1就可以連接host2了:
$ ftp localhost:2121
*注意:"遠程端口轉發"的前提條件是,host1和host3兩台主機都有sshD和ssh客戶端。
