題 ssh隧道端口轉發


我有三台電腦,A,B,C。A是我正在使用的電腦,C是我想要訪問的遠程電腦。但是C只能通過B訪問。只有B有一個ssh服務器,只有A有一個ssh客戶端。

我要使用什麼命令(最好是在A上)以便我可以通過B連接到C(端口80)?例如,B應將所有傳入端口12345轉發到C:80。

我知道這是一個常見的問題,我在谷歌上發現了大量的命令,但似乎都沒有。

一旦設置完畢,我應該在A上使用localhost:5678,它連接到B:1234,然後轉發到C:80。

謝謝。


3
2018-02-25 15:23


起源




答案:


可能是那個 sshd 守護進程設置為禁止端口轉發到其他計算機或根本不允許端口轉發。無論如何,發出正確的命令 A 訪問 C 在80號港口如下:

ssh -L localhost:5678:<ip-or-name-of-C>:80 <ip-or-name-of-B>

之後 ssh 建立會話連接到localhost:5678以連接到C:80。如果您希望任何與主機A:5678的入站連接轉發到C:80,則刪除 localhost: 從上面的命令。

如果禁用了到其他主機的端口轉發 B,然後你可以嘗試鏈接,描述 這裡


1
2018-02-25 15:45



就是這樣,謝謝。但是,我確實得到了B的提示。如果我想避免這種情況,我必須添加-nN,對吧? - Car981
該 -N 足以不啟動遠程shell。如果你想把ssh放到後台,那麼,是的,添加 -n 開關 - Serge