Ssh

SSH伺服器遠端埠轉發訪問內部應用伺服器

  • August 23, 2018

我試圖弄清楚 SSH 埠轉發,但通過查看不同的問題和教程並沒有找到成功,似乎我所看到的一切都與我的情況有點不同,我不太明白如何將它應用到礦。

我正在內部網路 (22.22.22.xx) 中的 Windows 機器上執行應用程序 (A)。此應用程序必須託管在此網路上。我在一台機器上也有一個 Linux SSH 客戶端/伺服器 (S),它有一個用於 (22.22.22.xx) 網路以及一個用於 (11.11.11.xx) 網路的網路適配器卡。我有一個在 Windows 上執行的應用程序客戶端 (C),它可以訪問 SSH 客戶端但無法訪問 (22.22.22.xx) 網路,因此無法直接訪問 A。設置如下所示。

網路設置圖

我正在嘗試從 SSH 伺服器設置埠轉發,以便應用程序客戶端可以訪問應用程序伺服器。

到目前為止,我已經能夠在應用程序客戶端上使用 PuTTY 進行本地埠轉發。我使用了這個命令(在 PuTTY 的 UI 上輸入):

ssh -L 8888:22.22.22.5:5555 user@11.11.11.4

從這裡我可以轉到“C”上的 localhost:8888 並通過“S”隧道到達“A”上提供的頁面。但是,在一個完美的世界中,我希望不必每次都在客戶端上打開並執行 PuTTY 來訪問該頁面。

因此,我正在嘗試找到一種方法來設置遠端埠轉發以將“S”上的埠(例如 4444)轉發到“A”。這樣我就可以從“C”簡單地轉到 11.11.11.4:4444,然後通過隧道進入 22.22.22.5:5555。

到目前為止,我已經嘗試在“S”的命令行上執行它:

ssh -R 4444:22.22.22.5:5555 user@localhost -o GatewayPorts=yes

當我執行它時,看起來我直接 ssh-ed 回到了機器,我輸入了憑據並嘗試從客戶端轉到 11.11.11.4:4444,但我沒有被定向到伺服器。我還嘗試在“A”上執行此命令(但來自 PuTTY):

ssh -R 4444:localhost:5555 user@22.22.22.4 -o GatewayPorts=yes

由此我在 PuTTY 事件日誌中收到“遠端埠轉發失敗”消息。

我覺得我非常接近解決方案,只是在我的命令中有一些混淆,或者我離得很遠,根本不明白髮生了什麼。

您不想要遠端/反向轉發,儘管使用本地版本(您的第一個範例)幾乎沒有區別,除了它需要在伺服器上進行配置。該選項GatewayPorts=yes適用於 ssh 伺服器,而不適用於 ssh 客戶端。

在伺服器 S 上嘗試

ssh -g -L 4444:22.22.22.5:5555 user@localhost

引用自:https://serverfault.com/questions/927544