Hyper-V 网络设置

1. 网络配置的方法

  • 1.1 Hyper-V 安装完后,将自动创建一个“默认虚拟交换机”,并同时创建一个同名的虚拟网卡。
    • 此交换机名及虚拟网卡都无法修改,虚拟机直接填加即可使用网络。
    • 虚拟机之间互联,再创建一个“内部交换机”,添加到虚拟机并设置同一网段即可。
    • 缺点:速度较慢
  • 1.2 将宿主机物理网卡直接共享给“默认虚拟交换机”创建的虚拟网卡,是比较省事、且高效的方法,相当于在物理网卡上做了一个NAT转换。
    • 优点:“默认虚拟交换机”创建的虚拟网卡IP地址会自动固定为192.168.137.1,所有虚拟机的网段会固定为192.168.137.0。网速较快。
    • 缺点:
      • 在多个物理网卡之间切换时非常不方便;
      • 在ReviOS等第三方精简系统中,运作不稳定。
  • 1.3 在宿主机使用无线网卡时,由于Hyper-V对无线网卡支持的不好,需要做以下操作:
    • 新建“外部虚拟交换机”:
      • 选择宿主机网卡。
        • 勾选“允许管理操作系统共享此网络适配器”。
          • 网速较快。
          • 会在宿主机上创建一个网桥,一个虚拟网卡,且宿主机可同时上网。
        • 反之,则只会添加一个网桥,且宿主机无法同时上网。
          • 这是 Hyper-V 对无线网卡支持不够好的表现,而且网速很慢,慢到什么程度呢?慢到微信连文件都发不出去!
    • 新建“内部虚拟交换机”:
      • 会在宿主机上创建一个虚拟网卡。
      • 将所有虚拟机都接入自建的“内部虚拟交换机”,可以解决IP变化的问题。
    • 在宿主机上,将“外部虚拟交换机”创建的虚拟网卡,共享给“内部虚拟交换机”创建的虚拟网卡。
      • “内部虚拟交换机”创建的虚拟网卡IP地址会自动固定为192.168.137.1,所有虚拟机的网段会固定为192.168.137.0。
    • 在ReviOS等第三方精简系统中,运作不稳定。

PS:

  • 如在宿主机同时安装了“Windows沙盒”功能,则沙盒会给每个物理网卡和虚拟网卡,都自动的再创建一个对应的虚拟网卡,容易造成混乱,使用中要注意。
  • Windows 网络共享重启会失效,这个BUG一直没有解决,需要如此解决:
    • 找到“Internet Connection Sharing”服务
      • 启动类型:自动
    • 找到注册表中“HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\SharedAccess”
      • 新建“DWORD(32位)值(D)”:EnableRebootPersistConnection
      • 值(十六进制):1
    • 重启电脑
  • 最好给每个虚拟机都设置外网DNS,比如1.2.4.8,因为hyper-v的DNS服务不是很稳定。

2. 网络拓扑

使用以下拓扑结构来,解决多个物理网卡随时切换的问题: 宿主机直连路由器,宿主机上创建一个虚拟路由器,和一个虚拟机,宿主机与虚拟机都通过虚拟路由器来上网。

TP Route 宿主机 OpenWRT 虚拟机
WLAN >DHCP
IP: 192.168.10.113
IP: 192.168.10.114
mac: ac-8f
>Bridge
IP: -
mac: ac-8f
- -
外部网络 - >WLAN
IP: 192.168.10.113
mac: ac-8f
>WLAN
IP: 192.168.10.114
mac: 01-36
-
内部网络 - >DHCP
IP: 192.168.123.100
mac: 01-28
>Static
IP: 192.168.123.1
mac: 01-29
>DHCP
IP: 192.168.123.102
mac: 01-2c
网桥 - >Switch
IP: -
mac: ac-8f
- -

可以尝试使用网桥功能,解决多物理网卡切换的问题

3. 查看网卡、虚拟网卡、虚拟交换机的命令

使用管理员模式,启动 PowerShell

查看所有网卡

1get-netadapter 

查看虚拟交换机

1get-vmswitch

查看所有虚拟网卡

1get-vmnetworkadapter -all 

查看在主机上的虚拟网卡

1get-vmnetworkadapter -managementos 

查看网卡组

1get-netlbfoteam

删除虚拟网卡

1remove-vmnetworkadapter -managementos -name "xxx"

删除虚拟交换机

1remove-vmswitch -name "xxx"

删除网卡组 这里要注意删除顺序是,虚拟网卡 > 虚拟交换机 > 网卡组 > 物理网卡。

1remove-netlbfoteam -name "xxx"

当然还有一个最简单粗暴的命令,删除所有设置,只保留物理网卡,非常简单好用。

1netcfg -d

参考文档

相关专栏文章