如何在 VMWare ESXi 上透過另一台電腦 (Windows) 上的 VPN 路由來自一台電腦 (Linux) 的所有連線?

如何在 VMWare ESXi 上透過另一台電腦 (Windows) 上的 VPN 路由來自一台電腦 (Linux) 的所有連線?

我有一個特殊的問題,一個軟體只能在 Linux 上運行,但必須透過只能在 Windows 上運行的 VPN 用戶端連接到遠端伺服器。

對於實體硬件,我假設我可以在 Linux 機器和 Windows 機器之間運行一條乙太網路電纜,並在 Windows 機器和路由器之間運行第二條乙太網路電纜。 (不知道這是否有效,但聽起來應該如此)。

如何使用兩台虛擬機器在 VMWare ESXi 虛擬機器管理程式上完成此操作?

我發現了一些可能對我有幫助的文章,但我想要一些關於此事的專業知識。

答案1

儘管我同意這是一個壞主意,但您似乎確信這是適合您情況的最佳解決方案。就我個人而言,我會收集所有不同的 VPN 用戶端。照這樣說...

首先,您需要在執行 VPN 用戶端的 Windows 電腦上啟用路由和遠端存取。您擁有的「設定區域網路路由」連結應該可以幫助您實現這一點。

然後,您需要設定一條路由,透過預期介面(VPN 適配器)引導 VPN 網路/主機的流量。如果您不知道哪些流量,可以使用預設路由來路由所有流量。在 Windows 機器上進行設定後,您需要將 Linux 機器上的預設閘道位址設定為 Windows 機器上 LAN 適配器的 IP 位址。

雖然您可以使用命令列在 Windows 上設定路由,但如果您使用 Nirsoft NetRouteView 等 GUI 工具,可能會更容易上手:

https://www.nirsoft.net/utils/network_route_view.html

確保您以管理員身份運行此命令,否則您最終會感到頭痛;)它將允許您查看/編輯/刪除現有路線並建立新路線。僅供參考,如果您有多個預設路由 (0.0.0.0),則度量值最低的路由是優先的路由。因此,您可能必須相應地調整路線的指標。

如果這是經常使用/永久的設置,您可以按原樣保留 Linux 盒子配置,並在 Windows 盒子上添加其他路由來處理各種 VPN 隧道的流量。當您將路線「持久化」時,它們將透過重新啟動來保存。當電腦重新啟動時,非持久的路由將會遺失。您也可以在設定路由時指定路由的適配器(介面)。例如,您可以為 VPN-A 和 VPN-B 設定路由,當 VPN-A 連接而 VPN-B 未連接時,VPN-B 的路由本質上將被忽略,流量將透過 VPN-A 路由。

答案2

發文者遇到的情況是需要使用VPN連接到他的多個客戶端。他從客戶那裡收到 VPN 軟體,這些軟體幾乎總是在 Windows 下使用。不幸的是,他的程式是在 Linux 上編寫和運行的。

發文者要求的解決方案是使用 Windows 虛擬機器作為 VPN 的路由器,因此在 Windows 下執行 VPN 用戶端並從 Linux 主機連接到它。

該解決方案並非在所有情況下都有效,因為許多公司都有強制使用 VPN 的壞習慣,因此連接的虛擬機器將與主機網路隔離,並且無法路由請求。 (幸運的是,沒有防火牆可以中斷虛擬機器桌面與主機上執行的 VMWare 的連線。)

一個可能的解決方案是使用 Linux 用戶端作為 VPN。大多數適用於 Linux 的 VPN 用戶端都是免費的,但即使不是,客戶端也會為產品付費,因此如果您確實堅持的話,可以為您提供 Linux 用戶端。這是迄今為止最簡單的解決方案。

第二種解決方案是反轉架構。我建議購買一台 Windows 電腦並在其上安裝各種 VPN 用戶端。然後可以將 Linux 程式安裝在將使用主機網路的 Linux VM 中。該解決方案甚至適用於強制 VPN。

第三種解決方案依賴於這樣一個事實:現代虛擬機器管理程序現在支援嵌入式虛擬機器管理程序,這是在虛擬機器中運行的虛擬機器管理程序。這種架構有點牽強,涉及到您的 Linux 託管 Windows VM,其嵌入式虛擬機器管理程式運行包含您的產品的嵌入式 Linux VM。即使對於強制 VPN,該解決方案也適用,但您必須權衡其優缺點。它可能會迫使您使用目前正在使用的產品之外的另一種 VMWare 產品。我承認我不知道這個解決方案是否真的可行。

相關內容