在虚拟化环境中,虚拟机网络配置是确保虚拟机与宿主机、外部网络以及虚拟机之间通信的核心环节,通过命令行方式配置虚拟机网络,能够实现更精细化的控制,适用于自动化部署和批量管理场景,以下将详细介绍不同虚拟化平台(以KVM和VMware为例)的命令配置虚拟机网络方法,包括网络模式选择、具体操作步骤及常见参数说明。

虚拟机网络模式概述
虚拟机网络通常分为以下几种模式,不同模式决定了虚拟机的网络访问能力:
- NAT模式:虚拟机通过宿主机的NAT功能访问外部网络,外部网络无法直接访问虚拟机,适合隔离环境。
- 桥接模式:虚拟机虚拟网卡直接连接到物理网络,与宿主机处于同一网段,外部网络可视为独立设备。
- 仅主机模式:虚拟机与宿主机通信,无法访问外部网络,适合本地测试。
- 自定义模式:结合上述模式特点,支持更复杂的网络拓扑,如多网卡绑定、VLAN隔离等。
KVM虚拟机网络配置命令
KVM(Kernel-based Virtual Machine)作为Linux内核级的虚拟化方案,通过virsh命令管理虚拟机网络。
创建虚拟网络(NAT模式)
首先定义一个名为default的NAT网络,若已存在可跳过此步骤:
virsh net-create --file /tmp/nat_net.xml
其中nat_net.xml内容如下:

<network>
<name>default</name>
<uuid>12345678-1234-1234-1234-123456789012</uuid>
<forward mode='nat'/>
<bridge name='virbr0' stp='off' delay='0'/>
<ip address='192.168.122.1' netmask='255.255.255.0'>
<dhcp>
<range start='192.168.122.2' end='192.168.122.254'/>
</dhcp>
</ip>
</network>
启动并设置开机自启:
virsh net-start default virsh net-autostart default
配置虚拟机网卡
使用virsh attach-device命令为虚拟机添加网卡,例如为虚拟机vm1添加NAT模式网卡:
virsh attach-device vm1 /tmp/nat网卡.xml --config --live
网卡配置文件nat网卡.xml:
<interface type='network'> <mac address='52:54:00:12:34:56'/> <source network='default'/> <model type='virtio'/> </interface>
桥接模式配置
创建桥接网卡br0并绑定物理网卡eth0:

nmcli connection add type bridge con-name br0 ifname br0 nmcli connection modify br0 ipv4.method manual ipv4.addresses 192.168.1.100/24 ipv4.gateway 192.168.1.1 nmcli connection add type bridge-slave ifname eth0 master br0 nmcli connection up br0 nmcli connection up eth0
虚拟机网卡配置修改为:
<interface type='bridge'> <mac address='52:54:00:12:34:56'/> <source bridge='br0'/> <model type='virtio'/> </interface>
VMware虚拟机网络配置命令
VMware主要通过esxcli命令(ESXi主机)或govc工具(vCenter管理)进行配置。
使用govc配置虚拟机网络
安装govc工具后,配置环境变量:
export GOVC_URL='https://vcenter_ip/sdk' export GOVC_USERNAME='admin' export GOVC_PASSWORD='password'
查看可用网络:
govc ls network
为虚拟机vm1添加网卡并绑定到网络VM Network:
govc vm.network.add -vm vm1 -net VM Network -net.adapter vmxnet3
修改虚拟机网络连接
修改已存在网卡的网络类型:
govc vm.network.change -vm vm1 -net 'New Network' -net.adapter vmxnet3 -device-key 4000
其中4000为网卡设备ID,可通过govc device.info -vm vm1查询。
网络配置参数说明
以下为虚拟机网络配置中的关键参数及作用:
| 参数 | 作用说明 |
|---|---|
type |
网卡类型,如network(NAT)、bridge(桥接)、user(仅主机)等 |
source |
网络名称或桥接设备名,如default(KVM NAT)、br0(桥接) |
model |
网卡驱动模型,如virtio(KVM推荐)、vmxnet3(VMware推荐) |
mac address |
MAC地址,建议手动指定避免冲突 |
--live |
实时生效,无需重启虚拟机;仅加--config则需重启生效 |
FAQs
Q1: 虚拟机无法获取IP地址如何排查?
A: 首先检查虚拟机网络模式是否正确(如NAT模式需确认宿主机DN服务是否开启),然后查看虚拟机网卡驱动是否安装正确(如KVM建议使用virtio驱动),最后检查DHCP服务是否正常启动(可通过virsh net-dhcp-leases default查看分配的IP)。
Q2: 如何实现虚拟机与宿主机的高性能网络通信?
A: 推荐使用桥接模式并选择virtio(KVM)或vmxnet3(VMware)网卡驱动,避免使用模拟网卡(如e1000),可调整MTU值至9000以支持Jumbo帧,减少网络延迟,命令示例:virsh attach-device vm1 /tmp/jumbo网卡.xml --config,配置文件中添加<mtu size='9000'/>。
