Hyper-V创建虚拟机配置IP等网络配置原理(Linux、Windows为例)
大家知道Windows系统里面内置了Hyper-V管理器,用来创建和管理本地虚拟机环境。今天我创建了两台虚拟机,一台是CentOS7.9(Linux),另一台是Windows 11,然后发现,Linux虚拟机网络不通,默认没有设置本地网络配置。而 Windows11虚拟机却可以。研究了下原因,解决办法总结如下:
虚拟交换机管理器
Hyper-V 管理员需要确定哪些 Hyper-V 网络特性和功能是可用的,以及在执行工作负载迁移之前如何使用它们。 Hyper-V 中的网络包含两个主要组件:虚拟网络适配器和虚拟交换机。 若要在网络上进行通信,请在 VM 上配置虚拟网络适配器,并连接到虚拟交换机上的端口。
在Hyper-V管理器里面,有个“虚拟交换机管理器”的组件专门用来管理网络接口。可以在Hyper-V管理器左侧菜单的服务器名称上右键菜单里找到它,也可以在右侧的预览窗口里快速找到它。如图:
在“虚拟交换机管理器”可以配置或新增网络交换机/接口。也可以自定义配置“MAC地址范围”。
这里我使用系统默认的虚拟网络交换机:Default Switch(默认网络)。如图:
虚拟交换机类型
虚拟交换机用于控制网络流量的流动方式,包括托管在 Hyper-V 服务器上的 VM 之间的网络流量,以及 VM 和其他组织网络之间的网络流量。 下表详细介绍了这三种类型的虚拟交换机:内部、外部和私有。
类型 | 说明 |
---|---|
内部(Internal) | 内部虚拟交换机用于在 Hyper-v 主机上的每个 VM 之间进行通信,以及在 VM 与 Hyper-V 主机之间进行通信。 |
外部(External) | 外部虚拟交换机用于将网络映射到特定网络适配器或网络适配器组。 Hyper-V 还支持将外部网络映射到无线网络适配器。 若要将外部网络映射到无线适配器,请在 Hyper-V 主机服务器上安装无线局域网 (LAN) 服务,并确保 Hyper-V 服务器具有兼容的网络适配器。 |
私有/专有(Private) | 专用交换机有助于同一 Hyper-V 主机上的 VM 之间的通信。 专用交换机不能用于 Hyper-V 主机和 VM 之间的通信。 |
- 外部(bridge):该模式下虚拟机与主机同级别,仿佛是同一局域网下的独立计算机,虚拟机通过虚拟交换机访问外部网络。
- 内部(NAT):该模式下虚拟机通过虚拟交换机与主机进行端口映射,进而访问外部网络,交换机用于虚拟机与主机之间的连接,虚拟机更像是位于主机的子网中。
- 专用(host-only):该交换机只负责虚拟机之间的通讯。
-
提示:
在配置虚拟网络时,还可以配置虚拟 LAN (VLAN) ID,然后将该 ID 与网络相关联。 使用此配置将外部网络上的现有 VLAN 扩展到 Hyper-V 主机的网络交换机内的 VLAN。 -
提示:
可以使用 VLAN 对网络流量进行分区。 VLAN 充当单独的逻辑网络。 若有流量通过路由器,则该流量只能从一个 VLAN 传递到另一个 VLAN。
我这里不搞太复杂,仅研究一下默认设置项Default Switch(默认网络)的内部网络(NAT):
该模式下虚拟机通过虚拟交换机与主机进行端口映射,进而访问外部网络,交换机用于虚拟机与主机之间的连接,虚拟机更像是位于主机的子网中。
那么,就从Hyper-V宿主机的 “控制面板\所有控制面板项\网络连接”里面寻找对应的网络适配器组件,会发现有很多“Hyper-V Virtual Ethernet Adapter #1”,“Hyper-V Virtual Ethernet Adapter #2”……等适配器。这里需要注意 vEthernet (Default Switch) 和 vEthernet (WLAN) 他们就是我配置虚拟机网络的来源(交换机)
vEthernet (Default Switch) 右键/属性/IPv4配置:
请记住,这里的ip地址和子网掩码将是虚拟机的网关和子网掩码。
vEthernet (WLAN) 右键/属性/IPv4配置:
以上配置也可以通过 cmd命令行窗口执行 ipconfig /all
查看到:
Hyper-V管理器创建的CentOS(Linux)虚拟机配置网路
Hyper-V管理器创建的CentOS(Linux)虚拟机,默认没有配置网络设置,更没有配置IP、DNS等网络信息。
首先,通过ip addr
命令查看确定当前虚拟机的默认网络接口,默认配置:
可以看到默认网络接口文件是 eth0,那么我们直接编辑配置:
vi /etc/sysconfig/network-scripts/ifcfg-eth0
配置项 | 说明 |
---|---|
BOOTPROTO=static | 标识设置为静态IP |
ONBOOT=yes | 开机启动 |
IPADDR | 静态IP,与虚拟网卡在同一个网段即可 |
GATEWAY | 网关 |
NETMASK | 子网掩码 |
配置DNS:vi /etc/resolv.conf,与Hyper-V管理器所在主机的DNS相同即可。
- 注意:编辑网络配置后需要重启网络服务才能生效。
systemctl restart network.service
网络设置成功后再次查看:
从虚拟机外面检查连通性:
至此,通过Default Switch(默认网络)的内部网络(NAT)设置虚拟机网络就完成了。
Hyper-V管理器创建的Windows11虚拟机配置网路
略。
参考:配置 Hyper-V 网络 来自 Microsoft Learn
参考:hyper-v虚拟机网络配置_03
参考:Hyper-V创建多台Linux虚拟机,配置静态IP,实现互通
参考:win10虚拟机Hyper-V安装部署配置linux系统(四)