如何设置 Hyper-V 让虚拟机既能访问外网,又能与局域网内的其他物理设备通信
在 Hyper-V 中,让虚拟机既能访问外网,又能与局域网内的其他物理设备通信,通常需要正确配置虚拟交换机(vSwitch)。以下是具体的方法:
方法 1:使用“外部”虚拟交换机(推荐)
适用于希望 VM 直接加入局域网,与其他设备互通。
步骤
打开 Hyper-V 管理器
创建外部虚拟交换机
- 进入“虚拟交换机管理器”(Virtual Switch Manager)。
- 选择“外部”(External)并点击“创建虚拟交换机”。
- 选择你的物理网卡(确保不是 Wi-Fi,否则可能会导致网络中断)。
- 勾选“允许管理操作系统共享此网络适配器”(可选)。
- 点击“应用”并确认。
将 VM 连接到此交换机
- 在 Hyper-V 管理器中,找到你的虚拟机,右键选择“设置”。
- 进入“网络适配器”,在“虚拟交换机”中选择刚刚创建的“外部”交换机。
- 确认后,启动虚拟机。
结果
- VM 直接使用你的物理网卡,与局域网内的其他设备在同一网段。
- 适用于 DHCP(自动获取 IP)或静态 IP 配置。
方法 2:使用“内部”虚拟交换机 + ICS(Internet 连接共享)
适用于主机和虚拟机互通,但 VM 不能直接访问局域网。
步骤
创建内部交换机
- 进入“虚拟交换机管理器”,选择“内部”(Internal),创建交换机。
绑定到 VM
- 在虚拟机的网络适配器中,选择刚创建的内部交换机。
配置 ICS(Internet Connection Sharing)
- 在宿主机(Hyper-V 运行的物理机):
- 打开网络和共享中心> 适配器设置。
- 右键点击你的物理网卡,选择“属性”>“共享”。
- 勾选“允许其他网络用户通过此计算机的 Internet 连接访问网络”,并选择你的内部虚拟交换机。
- 在宿主机(Hyper-V 运行的物理机):
结果
- 适用于 VM 仅需访问主机及互联网,但不能直接与局域网其他设备通信。
方法 3:NAT 方式(适用于 Wi-Fi)
适用于宿主机使用 Wi-Fi 连接局域网,但希望 VM 也能访问互联网。
步骤
- 创建内部交换机powershell
New-VMSwitch -SwitchName "NATSwitch" -SwitchType Internal
- 创建虚拟网络适配器powershell
New-NetIPAddress -IPAddress 192.168.100.1 -PrefixLength 24 -InterfaceAlias "vEthernet (NATSwitch)"
- 配置 NAT 规则powershell
New-NetNat -Name "MyNATNetwork" -InternalIPInterfaceAddressPrefix 192.168.100.0/24
- 在 VM 里手动设置 IP
- IP 地址:
192.168.100.2 - 子网掩码:
255.255.255.0 - 网关:
192.168.100.1 - DNS:
8.8.8.8或192.168.100.1
- IP 地址:
结果
- VM 通过宿主机的 NAT 上网,但不能直接访问物理局域网。
- VM 通过宿主机的 NAT 上网,但不能直接访问物理局域网。
结论
方法 | 是否能访问互联网 | 是否能访问局域网 | 适用场景 |
外部交换机 | ✅ | ✅ | 最推荐,VM 直接加入 LAN |
内部交换机 + ICS | ✅ | ❌(仅宿主机互通) | 主机与 VM 互联 |
NAT方式 | ✅ | ❌ | 宿主机用 Wi-Fi,但 VM 仍需上网 |
如果你的 VM 需要直接与局域网的物理机通信,并访问互联网,使用外部虚拟交换机是最好的方案。如果你用的是 Wi-Fi,则NAT 方式是个替代方案。
