KVM桥接网络通过nmcli配置br0网桥,将物理网卡(如eno1)设为从属并清空其IP,使虚拟机与宿主机同网段二层互通。需依次创建br0主连接、添加eno1从属、禁用其IP、启用连接,并在虚拟机XML中指定source bridge='br0'。

用 nmcli 配置网桥支持 KVM 虚拟机二层交换,核心是让物理网卡“退居幕后”,把 IP 地址、路由、DNS 等网络属性全交给网桥接口(如 br0),再将虚拟机直连到该网桥。这样虚拟机就和宿主机处于同一局域网段,实现真正的二层交换,延迟低、吞吐高,无需 NAT 转发。
创建网桥连接并配置基础参数
先创建一个名为 br0 的网桥连接,不绑定任何物理设备(后续再添加):
- sudo nmcli connection add type bridge con-name br0 ifname br0
然后为 br0 设置静态 IPv4 地址、网关与 DNS,使其可作为宿主机的主网络接口:
- sudo nmcli connection modify br0 ipv4.addresses 192.168.1.100/24
- sudo nmcli connection modify br0 ipv4.gateway 192.168.1.1
- sudo nmcli connection modify br0 ipv4.dns "8.8.8.8,114.114.114.114"
- sudo nmcli connection modify br0 ipv4.method manual
将物理网卡设为网桥从属设备
假设你的有线网卡是 eno1(可用 ip -br a 查看),需将其设为 br0 的从属(slave),并清空其 IP 配置:
- sudo nmcli connection add type bridge-slave con-name br0-eno1 ifname eno1 master br0
- sudo nmcli connection modify br0-eno1 ipv4.method disabled
- sudo nmcli connection modify br0-eno1 ipv6.method ignore
注意:此时 eno1 不再拥有 IP,所有通信由 br0 统一处理,这是实现二层交换的关键前提。
启用连接并验证桥接状态
按顺序激活从属连接和主桥接连接:
- sudo nmcli connection up br0-eno1
- sudo nmcli connection up br0
验证是否生效:
- nmcli device status —— 查看 br0 和 eno1 是否均为 connected
- bridge link show —— 确认 eno1 已加入 br0(显示 master br0)
- ip addr show br0 —— 检查 IP 是否已正确分配
KVM虚拟机使用br0桥接网络
创建或编辑虚拟机时,指定网络模式为桥接到 br0:
- 命令行安装:
virt-install ... --network bridge=br0 ... - XML 配置片段(
/etc/libvirt/qemu/xxx.xml):
<interface type='bridge'><source bridge='br0'/></interface> - 启动后,在虚拟机内配置同网段 IP(如 192.168.1.101/24),即可与宿主机及局域网其他设备直接二层互通。
这种配置下,KVM 虚拟机获得的是真实局域网 IP,支持 DHCP、ARP、组播、甚至 PXE 启动,真正复现物理交换机行为。


















