在Linux系统中,网桥(Bridge)是一种虚拟网络设备,用于连接多个网络接口,实现二层数据包转发(类似物理交换机),获取网桥地址(通常指MAC地址或关联的IP地址)是网络配置、故障排查或容器/虚拟化管理的常见需求,以下是几种专业可靠的方法:ip 是现代Linux网络配置的标准工具,支持网桥的详细查询:
ip link show master <网桥名称> # 查看网桥下属接口 ip addr show <网桥名称> # 获取网桥的MAC地址和IP地址
示例输出:
$ ip addr show br0
3: br0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP
link/ether a6:8f:3d:12:34:56 brd ff:ff:ff:ff:ff:ff # MAC地址在此
inet 192.168.1.10/24 brd 192.168.1.255 scope global br0 # IPv4地址
inet6 fe80::a48f:3dff:fe12:3456/64 scope link # IPv6地址
使用 bridge 命令(专用于网桥)
bridge 是 iproute2 套件的一部分,提供更精细的网桥控制:
bridge link show # 显示所有网桥关联的接口及MAC bridge fdb show br <网桥名称> # 查看网桥的MAC转发表
传统工具 brctl(旧系统兼容)
若系统未安装 brctl,需先安装 bridge-utils 包:
sudo apt install bridge-utils # Debian/Ubuntu sudo yum install bridge-utils # RHEL/CentOS
基础命令:
brctl show <网桥名称> # 显示网桥信息及下属接口
示例输出:
$ brctl show br0
bridge name bridge id STP enabled interfaces
br0 8000.a68f3d123456 no eth0
veth1
通过 /sys 文件系统(底层信息)
Linux的 sysfs 直接暴露内核数据:
cat /sys/class/net/<网桥名称>/address # 获取网桥MAC地址 cat /sys/class/net/<网桥名称>/bridge/bridge_id # 查询网桥ID
查看网桥的IP地址(三层配置)
若网桥配置了IP地址(如用于宿主机通信),使用:
ifconfig <网桥名称> # 传统工具 ip addr show <网桥名称> # 推荐方式
常见问题解决
- 网桥未显示IP地址
- 网桥是二层设备,IP地址非必需,若需管理,需手动分配:
sudo ip addr add 192.168.1.10/24 dev br0
- 网桥是二层设备,IP地址非必需,若需管理,需手动分配:
- 命令不存在
- 安装工具包:
iproute2(含ip、bridge)或bridge-utils(含brctl)。
- 安装工具包:
| 场景 | 推荐命令 |
|---|---|
| 获取MAC及IP地址 | ip addr show <网桥名称> |
| 查看下属接口 | bridge link show 或 brctl show |
| 底层MAC地址查询 | cat /sys/class/net/<网桥名称>/address |
重要提示:
- 网桥的MAC地址通常继承自第一个添加的接口,重启后可能变化。
- 生产环境中建议使用
ip和bridge命令(brctl已逐步淘汰)。
引用说明: 基于 Linux 内核文档(kernel.org/doc)及 iproute2 官方手册(man7.org/linux/man-pages/man8/ip.8.html),所有命令已在 Ubuntu 20.04 LTS 及 CentOS 8 环境下验证。
原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/8880.html