必须先停用原物理连接,否则会导致IP冲突、ARP混乱及KVM桥接失败;需用nmcli con down "Wired connection 1"停用有线连接,再通过ip -br a确认物理口无IP,最后添加bridge-slave并设br0为manual模式。

nmcli 创建 br0 网桥前必须停用原物理连接
直接运行 nmcli con add type bridge ifname br0 不会自动禁用 eno1、eth0 等物理网卡,而网桥要正常工作,物理接口必须作为从属(slave)加入,且不能同时持有 IP 地址或处于激活状态。否则会出现双 IP 冲突、ARP 响应混乱、虚拟机无法获取 DHCP 等问题。
实操建议:
- 先查当前活跃连接:
nmcli con show --active,重点关注类型为802-3-ethernet的有线连接(如Wired connection 1) - 停用它:
nmcli con down "Wired connection 1"(引号不能省,名称含空格) - 确认物理接口已无 IP:
ip -br a | grep -E "^(eno1|eth0)",输出中第二列应为DOWN或只有LOWER_前缀 - 这步跳过是 KVM 桥接失败最常见原因,尤其在桌面版 Fedora/RHEL/CentOS 上
添加 bridge-slave 时 ifname 必须是物理网卡真实名称
nmcli con add type bridge-slave ifname eno1 master br0 这条命令里的 eno1 不能写成 eth0 或 ens33 —— 必须和 ip -br l 输出的第一列完全一致。系统启用 net.ifnames=0 时才是 eth0,否则默认是 eno1、enp0s3 等可预测命名。
常见错误现象:
- 执行后
nmcli con show br0中看不到bridge-slaves字段 -
ip link show master br0返回空,说明从属未生效 - 虚拟机 ping 宿主机通,但 ping 不通同网段其他机器 → 物理口没真正桥进去
验证方式:执行 nmcli dev show eno1 | grep GENERAL.CONNECTION,输出应为 br0;若仍是原连接名,说明 slave 添加失败,需检查拼写并重试。
br0 的 ipv4.method 必须设为 manual 才能稳定承载 KVM 流量
KVM 虚拟机桥接到 br0 后,宿主机本身也通过该桥通信。若设为 auto(DHCP),重启 NetworkManager 或网络波动时可能触发 DHCP 重协商,导致短暂断连,虚拟机网络中断;更严重的是,某些 DHCP 服务器会拒绝给桥接口发地址(认为它是二层设备)。
正确做法是静态配置:
nmcli con mod br0 ipv4.method manualnmcli con mod br0 ipv4.addresses 192.168.1.100/24nmcli con mod br0 ipv4.gateway 192.168.1.1nmcli con mod br0 ipv4.dns "8.8.8.8,1.1.1.1"- 最后启用:
nmcli con up br0
注意:ipv4.dns 值必须用英文逗号分隔、无空格,否则 NetworkManager 解析失败,resolv.conf 不更新。
KVM 虚拟机 XML 中 interface type="bridge" 的 source bridge 名必须与 nmcli 一致
在 virsh 定义虚拟机时,网卡段写成这样才有效:
<interface type='bridge'> <source bridge='br0'/> <model type='virtio'/> </interface>
关键点:
-
br0是nmcli con add时指定的ifname,不是连接名(con-name)—— 即使你写了con-name my-br0,XML 里仍填br0 - 若填错(比如写成
br-0或bridge0),virsh start vm会报错:unable to get interface MAC address 'br-0': No such device - 启动后检查:
virsh domiflist vm应显示bridge br0,且ip link show | grep -A1 vnet可见其 master 是br0
真正容易被忽略的是:NetworkManager 默认不管理由 libvirt 自动创建的 vnet 接口,所以只要 br0 本身 UP 且 slave 正确,KVM 就能透传二层帧——不需要额外配 bridge-slave 给 vnet 设备。


















