我遇到一个特殊的问题,其中一个软件只能在 Linux 上运行,但必须通过只能在 Windows 上运行的 VPN 客户端连接到远程服务器。
有了物理硬件,我假设我可以在 Linux 机箱和 Windows 机箱之间运行一条以太网电缆,在 Windows 机箱和路由器之间运行第二条以太网电缆。(不知道这是否会起作用,但听起来应该可以)。
如何使用两个虚拟机在 VMWare ESXi 管理程序上实现此目的?
我发现了一些可能对我有帮助的文章,但我希望获得一些有关此事的专业知识。
https://www.privateinternetaccess.com/forum/discussion/1389/pia-tunnel-a-virtual-machine-vpn-tunnel
https://www.privateinternetaccess.com/forum/discussion/21459/pia-and-vmware-worsktation
https://protechgurus.com/configure-lan-routing-windows-server-2016/
- https://redmondmag.com/articles/2015/04/23/windows-server-as-a-network-router.aspx
答案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 VM 充当 VPN 的路由器,因此在 Windows 下运行 VPN 客户端并从 Linux 主机连接到它。
此解决方案并非在所有情况下都有效,因为许多公司都有强制使用 VPN 的坏习惯,因此连接的虚拟机将与主机网络隔离,无法路由请求。(幸运的是,没有防火墙可以将虚拟机的桌面与主机上运行的 VMWare 断开连接。)
一种可能的解决方案是使用 Linux 客户端来访问 VPN。大多数 Linux 版 VPN 客户端都是免费的,但即使不是,客户端也确实为产品付费,因此如果您坚持的话,可以为您提供 Linux 客户端。这是迄今为止最简单的解决方案。
第二种解决方案是反转架构。我建议买一台 Windows 电脑并在其上安装各种 VPN 客户端。然后可以在将使用主机网络的 Linux VM 中安装 Linux 程序。此解决方案甚至适用于强制 VPN。
第三种解决方案依赖于现代虚拟机管理程序现在支持嵌入式虚拟机管理程序的事实,嵌入式虚拟机管理程序是在虚拟机中运行的虚拟机管理程序。这种架构有点牵强,涉及您的 Linux 托管 Windows VM,其嵌入式虚拟机管理程序运行包含您的产品的嵌入式 Linux VM。此解决方案甚至适用于强制 VPN,但您必须权衡其优缺点。它可能会迫使您使用除当前使用的产品之外的其他 VMWare 产品。我承认我不知道这个解决方案是否真的可行。