菜鸟科技网

Linux查看桥命令有哪些?

在Linux系统中,桥接(Bridge)是一种将多个网络接口连接在一起,使它们能够像单个网络接口一样工作的技术,常用于虚拟化环境(如KVM、Docker)或实现网络流量转发,要查看Linux系统中的桥接设备及其配置信息,可以使用多种命令和工具,以下是详细的操作方法和命令说明。

Linux查看桥命令有哪些?-图1
(图片来源网络,侵删)

使用 brctl 命令查看桥接信息

brctl 是传统的桥接配置工具,适用于较老的Linux内核版本,但部分系统仍需安装该工具,首先确保已安装 bridge-utils 包(基于Debian/Ubuntu的系统可通过 sudo apt install bridge-utils 安装,基于RHEL/CentOS的系统可通过 sudo yum install bridge-utils 安装)。

查看所有桥接设备

brctl show

输出示例:

bridge name     interface
docker0         veth12345
               veth67890
  • bridge name:桥接设备的名称(如 docker0)。
  • interface:连接到该桥接的物理或虚拟接口。

查看特定桥接的详细信息

brctl show <bridge_name>

例如查看 docker0 的详细信息:

brctl show docker0

输出会包含桥接的ID、STP状态、接口列表等。

Linux查看桥命令有哪些?-图2
(图片来源网络,侵删)

查看桥接的STP(生成树协议)状态

brctl showstp <bridge_name>

输出示例:

docker0
 bridge id              8000.0242a8b3cdef
 designated root        8000.0242a8b3cdef
 root port              0
...
  • bridge id:桥接的唯一标识符。
  • designated root:生成树协议的根桥ID。

查看桥接的接口统计信息

brctl showmacs <bridge_name>

输出示例:

port mac addr                is local? ageing time
  1   0242a8b3cdef           yes                0.00
  2   0a1b2c3d4e5f            no               120.00
  • port:接口编号。
  • mac addr:接口的MAC地址。
  • is local:是否为本地接口。

使用 ip 命令查看桥接信息

ip 命令是现代Linux系统中更推荐的网络管理工具,功能更全面且无需额外安装。

查看所有桥接设备

ip link show type bridge

输出示例:

1: docker0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 bridge 8000.0242a8b3cdef
    link/ether 02:42:a8:b3:cd:ef brd ff:ff:ff:ff:ff:ff
  • bridge:表示该设备为桥接类型。
  • 0242a8b3cdef:桥接的MAC地址(前8位为桥接类型标识)。

查看桥接的接口列表

ip link show

通过过滤 master <bridge_name> 查看连接到特定桥接的接口:

ip link show master docker0

输出示例:

3: veth12345: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 master docker0 state UP
    link/ether 1a:2b:3c:4d:5e:6f brd ff:ff:ff:ff:ff:ff
  • master docker0:表示该接口属于 docker0 桥接。

查看桥接的IP地址和路由信息

ip addr show <bridge_name>
ip addr show docker0

输出示例:

1: docker0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 bridge 8000.0242a8b3cdef
    inet 172.17.0.1/24 brd 172.17.0.255 scope global docker0
       valid_lft forever preferred_lft forever
  • inet:桥接的IPv4地址及子网掩码。

查看桥接的转发和过滤表

bridge link

输出示例:

1: veth12345: master docker0 state UP priority 32 cost 100
3: veth67890: master docker0 state UP priority 32 cost 100
  • master:所属桥接名称。
  • priority:接口优先级(影响STP)。

使用 sysfs 文件系统查看桥接信息

Linux内核通过 /sys/class/net/ 目录暴露网络设备的详细信息,桥接设备的子目录包含其配置和状态文件。

查看所有桥接设备

ls /sys/class/net/ | grep bridge

输出示例:

docker0

查看桥接的详细信息

cat /sys/class/net/<bridge_name>/operstate
cat /sys/class/net/docker0/operstate

输出示例:

up
  • operstate:桥接的运行状态(updown)。

查看桥接的接口列表

ls /sys/class/net/<bridge_name>/brif/
ls /sys/class/net/docker0/brif/

输出示例:

veth12345 veth67890

使用 bridge 命令查看桥接信息

bridge 命令是 iproute2 包的一部分,功能更强大,支持查看桥接的详细统计和协议信息。

查看所有桥接设备

bridge link

查看桥接的MAC地址表

bridge fdb show

输出示例:

02:42:a8:b3:cd:ef dev docker0 master docker0 permanent
0a:1b:2c:3d:4e:5f dev veth12345 master docker0 age 120
  • master:所属桥接名称。
  • permanent:静态MAC地址。

查看桥接的VLAN过滤信息

bridge vlan show

桥接配置信息对比表

以下是常用查看命令的对比:

命令 功能描述 示例
brctl show 显示所有桥接设备 brctl show
ip link show type bridge 显示桥接设备类型 ip link show type bridge
bridge link 显示桥接接口和属性 bridge link
bridge fdb show 显示桥接MAC地址表 bridge fdb show
cat /sys/class/net/<bridge>/operstate 显示桥接状态 cat /sys/class/net/docker0/operstate

相关问答FAQs

Q1: 如何确认桥接是否启用了STP(生成树协议)?
A1: 使用 brctl showstp <bridge_name>bridge link 查看STP状态,若输出中包含 stp_state 且为 forwarding,则表示STP已启用;若为 disabled,则表示未启用,也可以通过 cat /sys/class/net/<bridge_name>/bridge/stp_state 查看,输出 1 表示启用,0 表示禁用。

Q2: 如何查看桥接的流量统计信息(如接收/发送字节数)?
A2: 使用 ip -s link show <bridge_name>cat /sys/class/net/<bridge_name>/statistics/rx_bytes/sys/class/net/<bridge_name>/statistics/tx_bytes 查看流量统计。

ip -s link show docker0

输出会包含 RXTX 部分的字节数、包数等统计信息。

分享:
扫描分享到社交APP
上一篇
下一篇