linux系统中配置bridge网桥有五种方法:一、iproute2临时创建;二、/etc/network/interfaces静态配置(debian/ubuntu);三、nmcli配置networkmanager网桥(rhel/centos/fedora);四、netplan yaml声明式配置(ubuntu 18.04+);五、bridge-utils手动构建(旧版sysvinit系统)。

如果您在Linux系统中需要为虚拟机、容器或网络隔离场景提供二层交换能力,则需配置bridge网桥。网桥作为内核级虚拟交换机,可将物理网卡与虚拟接口桥接,实现同广播域通信。以下是多种兼容主流发行版的配置方法:
一、使用iproute2创建临时网桥
该方法通过ip命令在内存中即时创建网桥设备,不写入磁盘配置,适用于调试、测试或脚本化一次性部署,系统重启后配置自动失效。
1、加载bridge内核模块:sudo modprobe bridge
2、创建名为br0的网桥:sudo ip link add name br0 type bridge
3、为br0分配IPv4地址(如192.168.1.100/24):sudo ip addr add 192.168.1.100/24 dev br0
4、启用br0接口:sudo ip link set br0 up
5、识别待桥接的物理网卡(例如enp0s3):ip -br link show | grep UP
6、将物理网卡加入br0:sudo ip link set enp0s3 master br0
7、清除物理网卡原有IP地址(防止地址冲突):sudo ip addr flush dev enp0s3
8、启用物理网卡数据通路:sudo ip link set enp0s3 up
二、通过/etc/network/interfaces静态配置(Debian/Ubuntu系)
该方法将网桥定义为系统级持久接口,由ifup/ifdown和systemd-networking统一管理,配置随系统启动自动生效,适合生产环境长期运行。
1、编辑主网络配置文件:sudo nano /etc/network/interfaces
2、注释或删除原物理接口(如enp0s3)的inet配置段,确保其不再独立获取IP或路由
3、在文件末尾添加br0配置块:auto br0\niface br0 inet static\n address 192.168.1.100\n netmask 255.255.255.0\n gateway 192.168.1.1\n bridge_ports enp0s3\n bridge_stp off\n bridge_fd 0\n bridge_maxwait 0
4、重启网络服务:sudo systemctl restart networking
5、验证网桥状态:sudo brctl show 或 bridge link
三、使用nmcli配置NetworkManager网桥(RHEL/CentOS/Fedora及部分Ubuntu桌面版)
该方法依赖NetworkManager服务,支持热插拔感知与图形界面联动,配置通过D-Bus持久存储,适用于桌面环境或混合网络管理场景。
1、创建网桥连接:sudo nmcli connection add type bridge con-name br0 ifname br0
2、设置br0的IPv4参数:sudo nmcli connection modify br0 ipv4.addresses 192.168.1.100/24 ipv4.gateway 192.168.1.1 ipv4.dns "8.8.8.8" ipv4.method manual
3、添加物理网卡作为从属设备:sudo nmcli connection add type bridge-slave con-name br0-slave-enp0s3 ifname enp0s3 master br0
4、停用原物理网卡的独立连接(名称需替换为实际连接名,如"System enp0s3"):sudo nmcli connection down "System enp0s3"
5、启用新网桥连接:sudo nmcli connection up br0
四、通过netplan配置YAML文件(Ubuntu 18.04+及Cloud镜像系统)
该方法采用声明式配置语法,由netplan后端(networkd或NetworkManager)统一渲染,避免手动管理多处配置文件,适合自动化部署与版本控制。
1、定位netplan配置文件(通常为/etc/netplan/*.yaml):ls /etc/netplan/
2、编辑配置文件(例如01-netcfg.yaml):sudo nano /etc/netplan/01-netcfg.yaml
3、写入以下内容(注意缩进为2空格,且bridge_ports值须为实际网卡名):network:\n version: 2\n renderer: networkd\n ethernets:\n enp0s3:\n dhcp4: false\n dhcp6: false\n bridges:\n br0:\n interfaces: [enp0s3]\n dhcp4: false\n addresses: [192.168.1.100/24]\n gateway4: 192.168.1.1\n nameservers:\n addresses: [8.8.8.8, 1.1.1.1]
4、应用配置:sudo netplan apply
5、检查生成的运行时配置:sudo networkctl status br0
五、使用bridge-utils工具链手动构建(兼容旧版SysVinit系统)
该方法基于传统bridge-utils套件,命令语义明确,适用于无systemd或NetworkManager的精简系统,如嵌入式或容器宿主机。
1、安装bridge-utils:sudo apt update && sudo apt install bridge-utils
2、查看可用物理网卡:ip -br link show | grep -E "UP|LOWER"
3、清空物理网卡IP配置(以enp0s3为例):sudo ip addr flush dev enp0s3
4、创建网桥:sudo brctl addbr br0
5、将物理网卡添加至网桥:sudo brctl addif br0 enp0s3
6、启用网桥及物理端口:sudo ip link set br0 up && sudo ip link set enp0s3 up
7、为网桥分配地址:sudo ip addr add 192.168.1.100/24 dev br0










