当前位置:首页 > 云服务器 > 正文

Hyper-V网络怎么设置?Hyper-V虚拟交换机配置教程

在 Hyper-V 中配置网络设置是构建虚拟化环境的关键步骤,它决定了虚拟机(VM)如何与外部网络、宿主机以及其他虚拟机进行通信,Hyper-V 提供了三种主要类型的虚拟交换机(Virtual Switch),每种类型适用于不同的网络需求。

以下是详细的设置指南,涵盖创建虚拟交换机、分配网络适配器以及常见问题排查。

理解三种虚拟交换机类型

在开始设置之前,必须了解 Hyper-V 提供的三种虚拟交换机类型,选择正确的类型是成功配置的前提:

交换机类型 描述 适用场景 网络连通性
外部 (External) 将虚拟交换机绑定到宿主机的物理网卡,允许 VM 访问外部网络(如互联网)和局域网。 需要 VM 拥有独立 IP 并对外提供服务,或需要访问外部资源的场景。 VM ↔ 外部网络

VM ↔ 宿主机

VM ↔ 其他 VM

内部 (Internal) 创建一个仅存在于宿主机和 VM 之间的私有网络,VM 无法直接访问外部网络,除非宿主机开启路由/NAT。 需要 VM 与宿主机或彼此之间通信,但不需要访问互联网的场景(如测试环境)。 VM ↔ 宿主机

VM ↔ 其他 VM

专用 (Private) 创建一个仅存在于 VM 之间的私有网络,宿主机无法访问该网络中的 VM,VM 也无法访问宿主机或外部网络。 完全隔离的测试环境,或仅允许特定 VM 之间通信的安全沙箱。 VM ↔ 其他 VM

通过 Hyper-V 管理器设置网络(图形界面法)

这是最直观且适合大多数用户的方法。

创建虚拟交换机

  1. 打开 Hyper-V 管理器
  2. 在右侧操作栏中,点击 “虚拟交换机管理器”
  3. 在左侧选择要创建的类型(外部、内部或专用)。
  4. 在右侧输入 名称(MyExternalSwitch)。
  5. 关键步骤
    • 若选择 外部:在下拉菜单中选择宿主机当前正在使用的物理网卡(通常是以太网适配器),确保勾选 “允许管理操作系统共享这个网络适配器”(除非你希望宿主机完全失去网络连接,通常建议勾选)。
    • 若选择 内部/专用:无需选择物理网卡,直接点击确定。
  6. 点击 “确定”,系统可能会提示网络连接会暂时中断,点击 “是” 确认。

将虚拟交换机分配给虚拟机

  1. 在 Hyper-V 管理器左侧列表中,右键点击目标虚拟机,选择 “设置”
  2. 在左侧硬件列表中,找到 “网络适配器”
  3. 在右侧的 “虚拟交换机” 下拉菜单中,选择你刚才创建的交换机名称。
  4. 点击 “确定” 保存设置。
  5. 启动虚拟机,进入操作系统内部配置 IP 地址(若使用外部交换机,通常可设置为自动获取 DHCP,前提是宿主机或路由器提供 DHCP 服务)。

通过 PowerShell 设置网络(命令行法)

对于批量部署或自动化脚本,PowerShell 是更高效的选择。

Hyper-V网络怎么设置?Hyper-V虚拟交换机配置教程 第1张

查看现有虚拟交换机

Get-VMSwitch

创建外部虚拟交换机

假设你的物理网卡名称为 “Ethernet”,创建名为 “ExtSwitch” 的外部交换机,并允许宿主机共享:

New-VMSwitch -Name "ExtSwitch" -NetAdapterName "Ethernet" -AllowManagementOS $true

创建内部虚拟交换机

创建名为 “IntSwitch” 的内部交换机:

New-VMSwitch -Name "IntSwitch" -SwitchType Internal

创建专用虚拟交换机

创建名为 “PrivSwitch” 的专用交换机:

New-VMSwitch -Name "PrivSwitch" -SwitchType Private

将交换机分配给虚拟机

假设虚拟机名为 “Win10-VM”,交换机名为 “ExtSwitch”:

Hyper-V网络怎么设置?Hyper-V虚拟交换机配置教程 第2张

高级配置:NAT 网络(实现内部网络访问互联网)

如果你创建了“内部”或“专用”交换机,但希望虚拟机能访问互联网,需要在宿主机上配置 NAT(网络地址转换)。

  1. 创建内部交换机(参考上文)。

  2. 为宿主机上的虚拟网卡分配静态 IP

    # 获取内部交换机的虚拟网卡名称 Get-NetAdapter | Where-Object {$_.InterfaceDescription -like "Hyper-V"} # 假设虚拟网卡名为 "vEthernet (IntSwitch)",分配 IP 192.168.100.1/24 New-NetIPAddress -IPAddress 192.168.100.1 -PrefixLength 24 -InterfaceAlias "vEthernet (IntSwitch)"
  3. 创建 NAT 网络

    New-NetNAT -Name "MyNATNetwork" -InternalIPInterfaceAddressPrefix 192.168.100.0/24
  4. 配置虚拟机

    Hyper-V网络怎么设置?Hyper-V虚拟交换机配置教程 第3张

    • 将虚拟机的网络适配器连接到该内部交换机。
    • 在虚拟机内部设置 IP 地址为 168.100.x(如 192.168.100.2),子网掩码 255.255.0,默认网关 168.100.1,DNS 服务器使用 8.8.8 或宿主机 IP。

常见问题与排查

  • 虚拟机无法上网
    • 检查是否选择了“外部”交换机。
    • 检查宿主机物理网卡是否正常工作。
    • 检查是否勾选了“允许管理操作系统共享”。

  • 虚拟机之间无法通信
    • 确认所有虚拟机都连接到了同一个虚拟交换机。
    • 检查防火墙设置,确保 ICMP(Ping)和相应端口未被阻止。
  • 创建外部交换机时物理网卡消失

    这是正常现象,物理网卡被 Hyper-V 虚拟交换机接管,不再直接显示为独立网卡,而是作为交换机的一部分,宿主机通过虚拟交换机继续使用该物理连接。


相关问题与解答

问题 1:我创建了外部虚拟交换机,但虚拟机仍然无法访问互联网,而宿主机可以,可能是什么原因?

解答:

这种情况通常由以下几个原因导致:

  1. DHCP 问题:虚拟机可能没有正确获取到 IP 地址,请进入虚拟机内部,检查网络适配器状态,尝试运行 ipconfig /release 和 ipconfig /renew(Windows)或 dhclient(Linux)手动获取 IP,确保你的路由器或宿主机上的 DHCP 服务正在运行。
  2. 防火墙拦截:宿主机的 Windows 防火墙可能阻止了虚拟机的网络流量,尝试暂时禁用宿主机的防火墙进行测试。
  3. 网卡绑定错误:在创建外部交换机时,可能选择了错误的物理网卡(例如选择了未连接网络的网卡,或选择了无线网卡但驱动不支持桥接),请确认选择的是正确且已连接网络的以太网适配器。
  4. MAC 地址冲突:极少数情况下,虚拟机的 MAC 地址可能与网络中的其他设备冲突,可以在虚拟机设置中手动更改虚拟网络适配器的 MAC 地址。

问题 2:如何在不使用外部交换机的情况下,让内部网络中的虚拟机访问互联网?

解答:

可以通过配置 NAT(网络地址转换) 来实现,具体步骤如下:

  1. 创建一个“内部”或“专用”虚拟交换机。
  2. 在宿主机上,找到该虚拟交换机对应的虚拟网卡(名称通常为 vEthernet (交换机名称))。
  3. 为该虚拟网卡分配一个静态 IP 地址(168.100.1),并将其作为内部网络的网关。
  4. 在 PowerShell 中使用 New-NetNAT 命令创建 NAT 规则,将内部网段(如 168.100.0/24)映射到宿主机的外部网络连接。
  5. 在虚拟机内部,将默认网关设置为宿主机的虚拟网卡 IP(168.100.1),并配置 DNS 服务器。

    这样,虚拟机发出的请求会经过宿主机进行 NAT 转换,从而访问互联网。

0