Linux Bridge命令是Linux系统中用于创建和管理网络桥接的核心工具,它允许将多个网络接口(如物理网卡、虚拟网卡)绑定到一个逻辑桥接设备中,实现二层网络流量转发,常用于虚拟化环境(如KVM、Docker)、网络隔离以及流量监控场景,以下从基本概念、常用命令、高级配置及实际应用场景展开详细说明。

Linux Bridge基本概念
Linux Bridge工作在OSI模型的第二层(数据链路层),类似于传统交换机,根据MAC地址转发数据帧,它支持VLAN划分、STP(生成树协议)等高级特性,能够隔离广播域或实现跨网段通信,在系统中,Bridge设备通过brctl命令(需安装bridge-utils包)或ip link命令管理,现代Linux发行版更推荐使用iproute2工具集,功能更全面且兼容性更好。
常用Linux Bridge命令操作
安装工具包
首先需安装Bridge管理工具,以Ubuntu/Debian为例:
sudo apt install bridge-utils iproute2
CentOS/RHEL系统使用:
sudo yum install bridge-utils iproute2
创建Bridge设备
使用brctl addbr或ip link add命令创建桥接设备,例如创建名为br0的桥:

# 方式1:brctl(传统工具) sudo brctl addbr br0 # 方式2:iproute2(推荐) sudo ip link add name br0 type bridge
创建后需启用桥接设备:
sudo ip link set br0 up
添加网络接口到Bridge
将物理网卡(如eth0)或虚拟网卡加入桥接设备:
# 添加物理网卡eth0到br0 sudo ip link set eth0 master br0 # 添加虚拟设备(如tap设备) ip tuntap add tap0 mode tap ip link set tap0 master br0
若需从Bridge中移除接口:
sudo ip link set eth0 nomaster
配置IP地址
Bridge设备可配置IP地址作为网关使用,例如为br0分配168.1.1/24:

sudo ip addr add 192.168.1.1/24 dev br0
若需删除IP地址:
sudo ip addr del 192.168.1.1/24 dev br0
查看Bridge状态
使用brctl show或ip link show查看桥接设备及其接口状态:
# brctl查看详细信息(包含端口列表、MAC地址等) sudo brctl show # iproute2查看设备状态 ip link show br0
输出示例:
bridge name bridge id STP enabled interfaces
br0 8000.0a1b2c3d4e5f no eth0
tap0
启用/禁用STP
生成树协议(STP)可防止网络环路,默认关闭,建议在复杂网络中启用:
# 启用STP sudo brctl stp br0 on # 禁用STP sudo brctl stp br0 off
删除Bridge设备
删除前需先移除所有接口并关闭设备:
sudo ip link set br0 down sudo ip link del br0
高级配置与实际应用
VLAN配置
Bridge支持VLAN隔离,可为不同端口划分VLAN ID,为eth0添加VLAN 10:
# 创建VLAN子接口并加入Bridge ip link add link eth0 name eth0.10 type vlan id 10 ip link set eth0.10 master br0
eth0.10仅处理VLAN 10的流量,与其他VLAN隔离。
流量监控与过滤
结合tc(Traffic Control)命令可对Bridge流量进行限速或过滤,限制tap0接口带宽为100Mbps:
tc qdisc add dev tap0 root tbf rate 100mbit burst 32kbit latency 400ms
虚拟化环境应用
在KVM虚拟化中,Bridge常用于连接虚拟机网络,创建桥接网络后,虚拟机网卡通过vnet设备桥接到br0,实现与宿主机及其他虚拟机的通信,Docker的bridge模式也基于Linux Bridge,默认创建docker0桥接设备管理容器网络。
常见问题与注意事项
- Bridge与Bonding结合:若需提高网络冗余,可将多个物理网卡Bonding后再加入Bridge,避免单点故障。
- 性能优化:在高并发场景下,关闭Bridge的
hairpin_mode(发夹模式)或调整forward_delay参数可提升转发效率。 - 防火墙兼容性:若使用iptables/nftables,需注意Bridge流量可能经过
FORWARD链,需正确配置规则。
相关问答FAQs
Q1: 如何查看Linux Bridge的详细流量统计信息?
A: 可使用brctl show查看基本统计(如接收/发送数据包数),或通过cat /proc/net/dev查看接口流量,更详细的信息需借助ebtables(二层防火墙工具)或ip -s link show br0命令,
ip -s link show br0 # 显示接收/发送字节数、错误数等 ebtables -L -n # 查看Bridge层的过滤规则统计
Q2: Linux Bridge与OVS(Open vSwitch)有什么区别?如何选择?
A: Linux Bridge是内核态实现,轻量级且性能较高,适合简单场景(如单机虚拟化、小型网络);OVS是用户态+内核态混合实现,支持更高级特性(如Geneve隧道、负载均衡、多协议支持),适合大规模虚拟化、SDN环境,选择时,若仅需基本桥接功能,优先用Linux Bridge;若需复杂网络策略或云环境集成,推荐OVS。
