Port

VirtualBox 與 RDP 通過 ssh 隧道

  • January 31, 2017

我有一個奇怪的要求,我認為這很容易做到,但結果比我想像的要復雜。

我執行著一個防火牆嚴密的 HPC 科學集群。使用者希望 Windows 7 VM 執行特定應用程序。我在我的 Mac 上創建了 VM,然後將其複製到集群中的 Centos 7 伺服器。VirtualBox 作為無頭伺服器執行良好,並表示它正在偵聽埠 3389。

要進入集群,您首先必須 ssh 到登錄節點,然後您可以從那裡獲取集群的其餘部分。

所以,我必須創建一個 SSH 隧道,對嗎?除了隧道不是到登錄節點外,它是在您進入節點後到集群中的另一台伺服器。VM 未在登錄伺服器上執行(即本身就是一個 VM)。所以我必須做雙重轉發?

我嘗試在 .ssh/config 文件中使用 localforward,但效果不佳。

現在我在想我必須配置登錄節點以將埠 3389 上的所有流量轉發到執行 vm 的伺服器。

我是在朝著正確的方向前進還是在找錯樹?

鑑於您可以讓登錄伺服器將流量轉發到 VirtualBox 實例,我猜 VirtualBox 伺服器距離登錄伺服器只有一跳,並且登錄伺服器可以通過埠 3389 到達 VirtualBox 實例。

在這種情況下,您不需要進行雙重轉發。SSH 可以轉發 SSH 伺服器能夠訪問的任何遠端電腦的埠,因此您只需執行以下操作:

ssh -L 3389:host.which.runs.virtualbox:3389 the.login.node

可能值得注意的是,host.which.runs.virtualbox:3389上面範例中的部分是相對於您登錄的電腦而言的。因此,如果登錄電腦知道執行 VirtualBox 的主機vboxrunner.local,您可以在轉發中使用該名稱,即使您的本地電腦(執行 ssh 的電腦)對該名稱一無所知。

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