Linux Bridge 是 Linux 内核中提供的一种虚拟网络设备,它工作在数据链路层(OSI 模型的第二层),类似于物理交换机,能够连接多个网络接口(包括物理网卡、虚拟网卡等),并根据 MAC 地址转发数据帧,它常用于虚拟化环境(如 KVM、Docker)中实现虚拟网络互通,也可用于构建复杂的网络拓扑结构,以下详细介绍 Linux Bridge 的常用命令及其使用场景。

Linux Bridge 的基本管理命令
安装 bridge-utils 工具包
在大多数 Linux 发行版中,需要先安装 bridge-utils 工具包才能使用 brctl 命令管理 Linux Bridge,在基于 Debian/Ubuntu 的系统上:
sudo apt update && sudo apt install bridge-utils
在基于 RHEL/CentOS 的系统上:
sudo yum install bridge-utils
创建和删除 Bridge
- 创建 Bridge:使用
brctl addbr命令创建一个新的 Bridge,例如创建名为br0的 Bridge:sudo brctl addbr br0
- 删除 Bridge:使用
brctl delbr命令删除指定的 Bridge,例如删除br0:sudo brctl delbr br0
查看 Bridge 状态
- 查看所有 Bridge:使用
brctl show列出当前系统中的所有 Bridge 及其基本信息(如 ID、状态、接口列表等):brctl show
输出示例:
bridge name bridge id STP enabled interfaces br0 8000.000000000000 no ens33 - 查看特定 Bridge 的详细信息:使用
brctl show <bridge_name>,例如查看br0的接口状态和 MAC 地址:brctl show br0
添加和删除接口
- 添加接口到 Bridge:将网络接口(如物理网卡
eth0或虚拟接口veth0)添加到 Bridge 中,例如将ens33添加到br0:sudo brctl addif br0 ens33
- 从 Bridge 中删除接口:使用
brctl delif命令,例如从br0中移除ens33:sudo brctl delif br0 ens33
配置 Bridge IP 地址
Bridge 本身可以配置 IP 地址,作为虚拟网络的网关或管理接口,使用 ip 命令配置,例如为 br0 分配 IP 地址 168.1.100/24:

sudo ip addr add 192.168.1.100/24 dev br0 sudo ip link set br0 up # 启动 Bridge
查看 Bridge IP 地址:
ip addr show br0
启用/禁用 STP(生成树协议)
STP 用于防止网络中的环路,默认情况下 Bridge 的 STP 是关闭的,Bridge 连接了多个物理网络,建议启用 STP:
sudo brctl stp br0 on # 启用 STP sudo brctl stp br0 off # 禁用 STP
查看 STP 状态:
brctl showstp br0
设置网桥转发行为
- 设置 MAC 地址老化时间:指定 MAC 地址表项的存活时间(单位:秒),默认为 300 秒:
sudo brctl setageing br0 600
- 设置网桥最大 MAC 地址表大小:限制 Bridge 能学习的 MAC 地址数量,默认为 1000:
sudo brctl setmaxaddr br0 2000
Linux Bridge 配置示例
以下是一个简单场景:将物理网卡 ens33 和虚拟网卡 veth0 连接到 br0,并为 br0 分配 IP 地址,实现虚拟机与物理网络的互通。

# 1. 创建 Bridge sudo brctl addbr br0 # 2. 添加物理网卡到 Bridge sudo brctl addif br0 ens33 # 3. 创建虚拟网卡对(veth0 和 veth1) sudo ip link add veth0 type veth peer name veth1 # 4. 将 veth0 添加到 Bridge sudo brctl addif br0 veth0 # 5. 配置 Bridge IP 地址并启动 sudo ip addr add 192.168.1.100/24 dev br0 sudo ip link set br0 up sudo ip link set veth1 up # 虚拟机端使用 veth1,配置为同一网段 IP # 6. 查看 Bridge 状态 brctl show
相关问答 FAQs
问题 1:Linux Bridge 和虚拟交换机(如 OVS)有什么区别?
答:Linux Bridge 是内核态的虚拟交换机,性能较高,配置简单,适合基本的虚拟网络需求;而 OVS(Open vSwitch)是用户态的虚拟交换机,功能更强大(支持 VLAN、隧道、流表等),适合复杂的 SDN 场景,Linux Bridge 依赖 bridge-utils 工具,而 OVS 需要安装 ovs-vsctl 等工具。
问题 2:如何持久化 Linux Bridge 的配置,使其在系统重启后自动生效?
答:在 Debian/Ubuntu 系统中,可通过 /etc/network/interfaces 文件配置,
auto br0
iface br0 inet static
address 192.168.1.100
netmask 255.255.255.0
bridge_ports ens33
bridge_stp off
在 RHEL/CentOS 系统中,使用 NetworkManager 或 nmcli 命令配置,
nmcli con add type bridge ifname br0 ip4 192.168.1.100/24 nmcli con add type ethernet ifname ens33 master br0 nmcli con up bridge-br0
配置完成后,重启网络服务或系统即可持久化。
