在 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 连接访问网络”,并选择你的 内部虚拟交换机。
结果
适用于 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
结果
VM 通过宿主机的 NAT 上网,但不能直接访问物理局域网。
VM 通过宿主机的 NAT 上网,但不能直接访问物理局域网。
结论
方法
是否能访问互联网
是否能访问局域网
适用场景
外部交换机
✅
✅
最推荐,VM 直接加入 LAN
内部交换机 + ICS
✅
❌(仅宿主机互通)
主机与 VM 互联
NAT 方式
✅
❌
宿主机用 Wi-Fi,但 VM 仍需上网
如果你的 VM 需要直接与局域网的物理机通信,并访问互联网,使用外部虚拟交换机是最好的方案。如果你用的是 Wi-Fi,则 NAT 方式是个替代方案。