我應該在哪台伺服器上執行 ssh 連接埠轉送命令?

我應該在哪台伺服器上執行 ssh 連接埠轉送命令?

我有一台Macbook A,一台公共伺服器B(public IP: 1.2.3.4, internal IP: 10.0.0.2),一台內部伺服器C(internal IP: 10.0.0.3)

AB可以透過B的公網IP連接,也可以透過C的私網IPB連接,但不能直接連接CAC

現在我想連接到C:2345from A,所以我想我可以在 ? 中進行連接埠轉送B:1234=>C:2345

我應該運行什麼命令以及應該在哪台伺服器上運行?

我試過:

ssh -NfR 1234:localhost:2345 10.0.0.3
ssh -L 1234:0.0.0.0:2345 10.0.0.3

兩者都不起作用。

答案1

去做確切地您所要求的 ( B:1234=>C:2345) 應該運行在B

# Not recommended. Read along.
ssh -NgL 1.2.3.4:1234:localhost:2345 10.0.0.3

它還需要1234B防火牆中開啟連接埠。然後1.2.3.4:1234從外部連接到10.0.0.3:2345就像從自身連接一樣C(透過其環回介面)。任何人都可以連接,因此請記住,如果伺服器C(無論是什麼伺服器)沒有密碼保護等。


一種更簡單、更安全的從 到A的方法C如下。它並不完全符合您的要求,但可能正是您想要的。在A

ssh -NL 1234:10.0.0.3:2345 1.2.3.4

然後連接到127.0.0.1:1234onA即可到達2345上的連接埠CC將看到來自 的流量B。此連接僅適用於A,因此該方法比前一種方法更安全。

如果您想要允許其他電腦(例如:從 LAN 所在A位置)連接,您應該使用-g選項並指定綁定位址。例如:

ssh -NgL A_LAN_address_here:1234:10.0.0.3:2345 1.2.3.4

在這種情況下,請相應地重新配置防火牆A,然後連接到A_LAN_address_here:1234

答案2

在 Mac 上,您首先要做的

ssh -L2345:10.0.0.3:2345 10.0.0.2

這會在 Mac 上開啟本機連接埠 2345,該連接埠直接連接到 10.0.0.3 上的 :2345

然後您只需127.0.0.1:2345在 Mac 上訪問即可。任何前往此連接埠的內容都將透過 ssh 進行隧道傳輸並轉到10.0.0.3:2345.對於該伺服器,它似乎來自10.0.0.2.

相關內容