linux中创建br0桥接需三类方法:nmcli(networkmanager系统)、netplan(ubuntu/debian声明式)、ip命令(临时调试);核心是将物理网卡设为br0从属且自身不配ip,所有ip配置于br0。

要在Linux系统中让虚拟机或容器直接接入物理局域网,必须创建一个能承载真实网卡和虚拟设备的二层交换平面——br0不是新网卡,而是把物理口(如enp0s3)和虚拟口(如vnet0)桥接起来的内核交换中枢。
用nmcli创建并启用br0(推荐用于RHEL/CentOS/Fedora/Ubuntu桌面版)
NetworkManager已接管网络管理的系统,必须用nmcli操作,否则重启后br0会被自动清理。
第一步:停用原物理连接,避免IP冲突。假设当前有线连接名为“Wired connection 1”,执行:
sudo nmcli con down "Wired connection 1"
第二步:创建桥接主接口:
sudo nmcli con add type bridge con-name br0 ifname br0
第三步:禁用STP防止环路延迟(家用/测试环境可关,生产环境建议保留):
sudo nmcli con modify br0 bridge.stp no
第四步:将物理网卡(例如eno1)作为从属设备加入br0:
sudo nmcli con add type bridge-slave ifname eno1 master br0
第五步:为br0配置IPv4地址并启用:
sudo nmcli con modify br0 ipv4.method manual ipv4.addresses 192.168.1.100/24 ipv4.gateway 192.168.1.1 ipv4.dns "8.8.8.8"
sudo nmcli con up br0
【关键前提】物理网卡eno1本身不能配IP,所有IP必须只写在br0下,否则网络会中断
用Netplan配置永久生效的br0(Ubuntu 20.04+/Debian 12+默认方式)
声明式配置避免启停顺序错误,特别适合云服务器和KVM宿主机。
打开终端,进入配置目录:
cd /etc/netplan/
编辑或新建YAML文件,例如01-netcfg.yaml:
sudo nano 01-netcfg.yaml
填入以下内容(注意缩进必须是空格,不能用Tab):
network:
version: 2
ethernets:
eno1:
dhcp4: false
optional: true
bridges:
br0:
interfaces: [eno1]
dhcp4: true
parameters:
stp: false
forward-delay: 0
保存退出后立即应用:
sudo netplan apply
这一步执行后br0即上线,无需重启、无需手动up,【若报错请检查eno1是否拼写正确,且未被其他连接占用】
用ip命令临时搭建br0(仅限调试/无NetworkManager环境)
方法一:纯iproute2流程(不依赖bridge-utils)
sudo ip link add name br0 type bridge
sudo ip link set br0 up
sudo ip addr flush dev eno1
sudo ip link set eno1 master br0
sudo dhclient br0
方法二:兼容老脚本的组合(需先安装bridge-utils)
sudo apt install bridge-utils -y
sudo brctl addbr br0
sudo ip link set eno1 down
sudo ip addr flush dev eno1
sudo brctl addif br0 eno1
sudo ip link set br0 up
sudo ip addr add 192.168.1.100/24 dev br0
临时配置在重启后全部丢失,但操作快、验证准,适合快速排除物理链路问题。











