两种虚拟环境,各有优缺点,在生产环境中,遇到需要两种环境同时使用,同时还要求网络互通,涉及虚拟机基础知识请自行搜索,在此只记录操作过程。

最终拓扑图如下

目录

一、Hyper-v 与vmware workstation为什么以前不能同时使用?

1. 历史背景:

2. 为什么现在可以同时使用?

3. 实现原理

4. 如何在 Windows 11 上配置

二、vmware workstation桥接模式和hyper-v外部虚拟交换机可以共用一个物理网卡吗?我只有一个物理网卡,如何实现两个软件支持的虚拟机同时连接外网?

1. VMware Workstation 桥接模式和 Hyper-V 外部虚拟交换机的原理

2. 是否可以共用一个物理网卡?

3. 实现 VMware Workstation 和 Hyper-V 虚拟机同时连接外网

方法 1:Hyper-V 外部交换机 + VMware NAT 模式

方法 2:Hyper-V 外部交换机 + VMware 自定义网络(Host-Only + 手动桥接)*

方法 3:禁用 VMware 桥接,使用 Hyper-V 虚拟交换机共享

三、Hyper-V 外部虚拟交换机 + VMware VMnet0桥接网络(桥接到 vEthernet)*

配置 Hyper-V 外部虚拟交换机:

配置 VMware 桥接模式到 vEthernet:

配置 VMware 虚拟机:

四、Hyper-V内部虚拟交换机(Internal Virtual Switch) 用于虚拟机 NAT

创建一个内部虚拟交换机:

为虚拟交换机分配一个 IP 地址(作为虚拟机的网关):

配置 NAT:


一、Hyper-v 与vmware workstation为什么以前不能同时使用?

1. 历史背景:

  • Hypervisor 类型差异
    • Hyper-V 是 Type-1(第一类)虚拟机监控程序(Hypervisor),直接运行在硬件之上,将 Windows 操作系统本身虚拟化为核心分区(Root Partition)。它独占硬件虚拟化扩展(如 Intel VT-x 或 AMD-V)。
    • VMware Workstation 是 Type-2(第二类)虚拟机监控程序,运行在宿主操作系统(Windows)之上,依赖操作系统提供的资源和硬件虚拟化支持。
    • 当 Hyper-V 启用时,它接管了 CPU 的虚拟化扩展(VT-x 或 AMD-V),导致 VMware Workstation 无法直接访问这些硬件资源,因此无法运行虚拟机。
  • 资源冲突
    • 硬件虚拟化扩展一次只能被一个 Hypervisor 使用。Hyper-V 启动后,VMware Workstation 的虚拟机监控器(VMM)无法获取必要的硬件支持,提示类似“VMware Workstation 和 Hyper-V 不兼容”的错误。
  • 解决方法局限
    • 以前的解决方法是禁用 Hyper-V(通过 bcdedit 设置 hypervisorlaunchtype off 或卸载 Hyper-V 功能),但这会关闭依赖 Hyper-V 的功能(如 Windows Subsystem for Linux 2、Windows Sandbox 等),对需要同时使用两者的用户不方便。

2. 为什么现在可以同时使用?

从 VMware Workstation 15.5.5 开始(发布于 2020 年),VMware 与微软合作,引入了对 Windows Hypervisor Platform (WHP) API 的支持,使得两者可以共存。以下是具体原因:
  • Windows Hypervisor Platform (WHP)
    Windows 虚拟机管理程序平台 (WHP):
    • WHP 是微软在 Windows 10 1809 版本引入的一个 API 框架,允许第三方虚拟化软件(如 VMware Workstation、VirtualBox)利用 Hyper-V 的虚拟化基础设施运行虚拟机。
    • 在 Windows 11(基于 Windows 10 20H1 及以上版本,如 Build 19041)中,WHP 得到了进一步完善。启用 Hyper-V 和 WHP 后,VMware Workstation 不直接访问硬件虚拟化扩展,而是通过 Hyper-V 的 Hypervisor 层运行其虚拟机。
  • VMware 的技术调整
    • VMware Workstation 引入了“Host VBS Mode”(虚拟化基于安全的模式),当检测到 Hyper-V 启用时,自动切换到使用 WHP API,而不是传统的直接硬件访问模式。
    • 这意味着 VMware Workstation 的虚拟机运行在 Hyper-V 的虚拟化环境之上,而不是与 Hyper-V 竞争硬件资源。
  • 系统要求
    • 操作系统:Windows 11(或 Windows 10 20H1 Build 19041 及以上)。
      作系统:Windows 11(或 Windows 10 20H1 Build 19041 及以上)。
    • VMware 版本:VMware Workstation 15.5.5 或更高版本(推荐最新版,如 17.x)。
    • 启用功能:需要在 Windows 中启用“Hyper-V”和“Windows Hypervisor Platform”功能(通过“启用或关闭 Windows 功能”设置)。

3. 实现原理

  • 嵌套虚拟化
    • 当 Hyper-V 启用时,Windows 11 本身运行在 Hyper-V 的根分区中。VMware Workstation 通过 WHP API 调用 Hyper-V 的虚拟化服务,在此之上运行自己的虚拟机,形成一种“嵌套”关系。
    • 这种方式类似于 Hyper-V 提供了一个虚拟化层,VMware Workstation 作为客户端利用该层运行。
  • 性能权衡
    • 使用 WHP API 时,VMware Workstation 的虚拟机性能可能略低于直接访问硬件的情况,因为多了一层 Hyper-V 的抽象。
    • VMware 会显示提示,如“您正在使用侧信道缓解措施运行此虚拟机,提供增强的安全性但会降低性能”,这是因为 Hyper-V 启用了虚拟化安全性(VBS)功能。

4. 如何在 Windows 11 上配置

要让 VMware Workstation 和 Hyper-V 同时运行,需要确保以下设置:
  1. 检查系统兼容性
    • 确保 CPU 支持硬件虚拟化(Intel VT-x 或 AMD-V),并在 BIOS 中启用。
    • Windows 11 默认支持 Hyper-V(专业版及以上)。
  2. 启用 Hyper-V 和 WHP
    • Win + R,输入 optionalfeatures,打开“Windows 功能”。
    • 勾选“Hyper-V”和“Windows Hypervisor Platform”,点击“确定”并重启。
  3. 安装或更新 VMware Workstation
    • 下载并安装 VMware Workstation 15.5.5 或更高版本(推荐最新版)。
    • 安装时,如果检测到 Hyper-V,会自动配置兼容模式。
  4. 运行虚拟机
    • 启动 VMware Workstation,创建或打开虚拟机,系统会自动使用 WHP API 运行,无需额外配置。

5. 注意事项与限制
  • 性能影响
    • 由于通过 Hyper-V 间接运行,VMware 虚拟机的性能可能不如禁用 Hyper-V 时,尤其是在高负载场景下。
  • 嵌套虚拟化限制
    • 在 VMware Workstation 的虚拟机中运行嵌套虚拟化(即虚拟机内的虚拟机)可能不受支持或性能较差,因为 Hyper-V 的 WHP API 当前对嵌套支持有限。
  • 功能兼容性
    • 某些高级功能(如 vPMC,虚拟可信平台模块)在 Hyper-V 模式下可能不可用。
  • 版本依赖
    • 必须使用支持 WHP 的 VMware Workstation 版本,旧版本(如 15.5.1 及以下)仍会提示不兼容。

二、vmware workstation桥接模式和hyper-v外部虚拟交换机可以共用一个物理网卡吗?我只有一个物理网卡,如何实现两个软件支持的虚拟机同时连接外网?

在 Windows 系统中,VMware Workstation 的桥接模式和 Hyper-V 的外部虚拟交换机原则上可以共用同一个物理网卡,但由于两者的网络实现机制存在潜在冲突,直接共用可能会导致问题。不过,通过合理配置和理解它们的运行方式,你可以在只有一个物理网卡的情况下,实现 VMware Workstation 和 Hyper-V 的虚拟机同时连接外网。以下是详细分析和实现方法。


1. VMware Workstation 桥接模式和 Hyper-V 外部虚拟交换机的原理

VMware Workstation 桥接模式

  • 原理:

    • 桥接模式下,VMware 将虚拟机的网络流量直接绑定到物理网卡,使虚拟机表现为局域网中的独立设备。

    • VMware Workstation 使用自己的虚拟网络适配器(VMnet0)桥接到物理网卡,虚拟机通过物理网卡获取独立的 IP 地址(通常由路由器的 DHCP 分配)。

  • 要求:

    • 需要直接访问物理网卡。

    • VMware 通过驱动程序(如 vmnetbridge.sys)管理桥接流量。

Hyper-V 外部虚拟交换机

  • 原理:

    • Hyper-V 的外部虚拟交换机将物理网卡虚拟化为一个交换机,允许 Hyper-V 虚拟机通过该交换机访问外部网络。

    • 创建外部虚拟交换机时,Hyper-V 会接管物理网卡,将其绑定到虚拟交换机,原物理网卡的网络功能转移到虚拟交换机的一个实例(vEthernet)。

    • Hyper-V 虚拟机通过虚拟交换机获取独立 IP。

  • 要求:

    • 物理网卡被 Hyper-V 独占,宿主系统和虚拟机共享虚拟交换机的网络连接。

冲突点

  • 物理网卡独占性:

    • Hyper-V 外部虚拟交换机绑定物理网卡后,VMware Workstation 的桥接模式无法直接访问同一网卡,因为网卡已被 Hyper-V 虚拟化。

  • 驱动冲突:

    • VMware 和 Hyper-V 使用不同的网络驱动管理物理网卡,可能导致竞争或不稳定。


2. 是否可以共用一个物理网卡?

直接共用:通常不可行

  • 当 Hyper-V 创建外部虚拟交换机并绑定物理网卡后,VMware Workstation 的桥接模式会失败,因为它找不到可用的物理网卡(显示“桥接网络不可用”或“无法连接到 VMnet0”)。

  • 原因是 Hyper-V 将物理网卡转为虚拟交换机的私有资源,VMware 的桥接驱动无法识别或绑定到 Hyper-V 的 vEthernet。

间接共用:可以通过配置实现

  • 通过调整网络配置,可以让两者在单一物理网卡下共存并访问外网,但需要依赖 Hyper-V 的网络基础设施,而不是 VMware 的桥接模式。


3. 实现 VMware Workstation 和 Hyper-V 虚拟机同时连接外网

由于你只有一个物理网卡,以下是可行的解决方案:

方法 1:Hyper-V 外部交换机 + VMware NAT 模式
  • 思路:

    • Hyper-V 使用外部虚拟交换机绑定物理网卡,连接外网。

    • VMware Workstation 使用 NAT 模式,通过宿主系统的网络(Hyper-V 的 vEthernet)访问外网。

  • 步骤:

    1. 配置 Hyper-V 外部虚拟交换机:

      • 打开 Hyper-V 管理器,点击“虚拟交换机管理器”。

      • 创建一个“外部”虚拟交换机,选择你的物理网卡(如 Ethernet)。

      • 勾选“允许管理系统共享此网络适配器”,点击“应用”。

      • 此时,宿主系统会通过 vEthernet 连接网络,Hyper-V 虚拟机也能通过外部交换机访问外网。

    2. 配置 Hyper-V 虚拟机:

      • 在 Hyper-V 虚拟机的网络设置中,选择刚创建的外部虚拟交换机。

      • 启动虚拟机,确认可以获取 IP 并访问外网。

    3. 配置 VMware Workstation 为 NAT 模式:

      • 打开 VMware Workstation,编辑虚拟机设置。

      • 在“网络适配器”中,选择“NAT”模式(默认使用 VMnet8)。

      • 启动 VMware 虚拟机,确认可以访问外网。

  • 原理:

    • Hyper-V 虚拟机直接通过物理网卡(外部交换机)访问外网。

    • VMware 虚拟机通过 NAT 模式共享宿主系统的网络连接(vEthernet),宿主通过物理网卡访问外网。

  • 优点:

    • 配置简单,无需额外网卡。

    • Hyper-V 和 VMware 虚拟机都能访问外网。

  • 缺点:

    • VMware 虚拟机无法像桥接模式那样获取独立 IP,表现为 NAT 后的设备(与宿主共享 IP)。

方法 2:Hyper-V 外部交换机 + VMware 自定义网络(Host-Only + 手动桥接)*
  • 思路:

    • Hyper-V 使用外部虚拟交换机绑定物理网卡。

    • VMware 使用 Host-Only 模式,然后手动桥接宿主系统的 vEthernet 到 VMware 的虚拟网络。

  • 步骤:

    1. 配置 Hyper-V 外部虚拟交换机:

      • 同方法 1,创建外部虚拟交换机并绑定物理网卡。

    2. 配置 VMware Host-Only 网络:

      • 打开 VMware Workstation 的“虚拟网络编辑器”(需管理员权限)。

      • 选择 VMnet1(Host-Only),确保未桥接到任何物理网卡。

    3. 手动桥接网络:

      • 打开“网络和 Internet 设置” > “更改适配器选项”。

      • 找到 Hyper-V 的 vEthernet 适配器和 VMware 的 VMnet1 适配器。

      • 选中两者,右键选择“桥接”,创建网络桥接。

    4. 配置 VMware 虚拟机:

      • 在虚拟机设置中,选择“自定义”网络,指定 VMnet1。

      • 启动虚拟机,确认可以访问外网。

  • 原理:

    • Hyper-V 虚拟机通过外部交换机直接访问物理网卡。

    • VMware 虚拟机通过桥接的 VMnet1 利用宿主的 vEthernet 访问外网。

  • 优点:

    • VMware 虚拟机可以获取独立 IP(类似桥接模式)。

  • 缺点:

    • 配置复杂,可能不稳定(桥接 vEthernet 不被官方完全支持)。

    • Hyper-V 和 VMware 的网络驱动可能冲突,导致断连。

方法 3:禁用 VMware 桥接,使用 Hyper-V 虚拟交换机共享
  • 思路:

    • 完全依赖 Hyper-V 的外部虚拟交换机,VMware 通过宿主网络间接访问外网。

    • VMware 不使用桥接模式,而是依赖 NAT 或 Host-Only。

  • 步骤:

    • 同方法 1 配置 Hyper-V 外部虚拟交换机。

    • VMware 虚拟机设置为 NAT 模式(默认即可)。

  • 结果:

    • Hyper-V 虚拟机直接连接外网。

    • VMware 虚拟机通过 NAT 共享宿主网络访问外网。


4. 配置注意事项

  • Hyper-V 优先级:

    • 因为 Hyper-V 是 Type-1 Hypervisor,且 Windows 11 默认启用 WHP(Windows Hypervisor Platform),建议让 Hyper-V 管理物理网卡,VMware 作为次级工具适应 Hyper-V 的网络。

  • 网络稳定性:

    • 如果同时运行多个虚拟机,网络性能可能下降,需监控带宽使用。

  • VMware 兼容性:

    • 确保 VMware Workstation 版本为 15.5.5 或更高,支持与 Hyper-V 共存(通过 WHP)。

  • IP 冲突:

    • NAT 模式下 VMware 虚拟机不会与 Hyper-V 虚拟机冲突,但手动桥接可能需要手动分配 IP。


5. 只有一个物理网卡的最佳方案

推荐方法:方法 1(Hyper-V 外部交换机 + VMware NAT)

  • 原因:

    • 配置简单,稳定可靠。

    • 不需要额外硬件或复杂桥接。

    • 满足“同时连接外网”的基本需求。

  • 实现效果:

    • Hyper-V 虚拟机:独立 IP,直接访问外网。

    • VMware 虚拟机:通过 NAT 共享宿主 IP,访问外网。

示例配置:

  • 物理网卡:Ethernet,IP 192.168.1.100(路由器分配)。

  • Hyper-V 外部交换机:绑定 Ethernet,虚拟机 IP 192.168.1.101。

  • VMware NAT:虚拟机 IP 192.168.1.x(VMnet8 子网),通过宿主访问外网。


6. 总结

  • 共用物理网卡:直接桥接模式和外部虚拟交换机难以共用,但通过 Hyper-V 主导网络 + VMware NAT 模式可以实现。

  • 单一网卡方案:Hyper-V 使用外部虚拟交换机,VMware 使用 NAT 模式,确保两个软件的虚拟机同时连接外网。

  • 限制:VMware 无法使用桥接模式获取独立 IP,除非添加第二块网卡。

如果需要更复杂的网络配置(例如两者的虚拟机都在同一局域网中获取独立 IP),建议添加一个 USB 网卡或无线网卡,分别分配给 Hyper-V 和 VMware。如果你尝试过程中遇到问题(例如网络不通),可以提供具体错误,我会帮你排查!

三、Hyper-V 外部虚拟交换机 + VMware VMnet0桥接网络(桥接到 vEthernet)*

  • 思路:

    • Hyper-V 使用外部虚拟交换机绑定物理网卡。

    • VMware Workstation 不直接桥接到物理网卡,而是桥接到 Hyper-V 创建的 vEthernet 适配器。

  • 步骤:

    1. 配置 Hyper-V 外部虚拟交换机:

      • ,创建外部虚拟交换机并绑定物理网卡,勾选“允许管理系统共享此网络适配器”

      • 检查 vEthernet 适配器:打开“控制面板 > 网络和 Internet > 网络连接”,找到 Hyper-V 创建的 vEthernet 适配器(例如“vEthernet (外部交换机)”)。或 win+r,输入control ncpa.cpl打开网络管理器

    2. 配置 VMware 桥接模式到 vEthernet:

      • 打开 VMware Workstation 的“虚拟网络编辑器”(需管理员权限)。

      • 选择 VMnet0(桥接模式),在“桥接到”下拉菜单中选择 Hyper-V 的 vEthernet 适配器(而不是物理网卡)。

      • 点击“应用”。

    3. 配置 VMware 虚拟机:

      • 在虚拟机设置中,选择“桥接模式”。

      • 启动虚拟机,确认可以获取 IP 并访问外网

四、Hyper-V内部虚拟交换机(Internal Virtual Switch) 用于虚拟机 NAT

  • 内部交换机允许主机与虚拟机通信,主机的网络接口可以充当 NAT 的网关。

  • 通过在主机上配置 NAT(例如使用 PowerShell 命令 New-NetNat),可以将内部交换机连接的虚拟机网络与主机的外部网络桥接起来,实现虚拟机通过主机访问外部网络。

配置 NAT 的步骤(示例)

  1. 创建一个内部虚拟交换机:

    New-VMSwitch -Name "NATSwitch" -SwitchType Internal

  2. 为虚拟交换机分配一个 IP 地址(作为虚拟机的网关):

    New-NetIPAddress -IPAddress 10.0.18.1 -PrefixLength 24 -InterfaceAlias "vEthernet (NATSwitch)"

  3. 配置 NAT:

    New-NetNat -Name "NATNetwork" -InternalIPInterfaceAddressPrefix "10.0.18.0/24"

  4. 将虚拟机连接到此交换机,并在虚拟机中设置网关为 10.0.18.1,即可通过主机的网络访问外部网络。


总结

  • 外部交换机:适合直接连接物理网络,不直接支持 NAT。

  • 内部交换机:适合主机与虚拟机通信,且可以通过配置支持 NAT,是实现虚拟机 NAT 的推荐选择。

  • 私有交换机:完全隔离,不支持 NAT。

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐