最权威实时的bonding状态查看方式是直接读取/proc/net/bonding/bond0,需重点解读active slave和mii status字段,结合ethtool交叉验证物理链路,并识别mii down、active为none等异常信号。

直接看 /proc/net/bonding/bond0 是最权威、最实时的审计方式,它不依赖外部工具或缓存,反映内核 bonding 驱动当前维护的真实状态。关键不是“能不能看到”,而是“怎么看懂每一行背后的含义”。
重点关注字段:Active Slave 和 MII Status
输出中这两项决定主备是否真正生效:
-
Active Slave:明确标出当前正在转发流量的物理网卡(如
eth0或enp3s0),这是唯一承载业务流量的接口; -
MII Status:每块 slave 下都有一行,显示
up才代表链路物理连通、被 bonding 框架识别为可用;若为down,说明网线未插、交换机端口 shutdown、或 ethtool 检测到 link lost。
验证主备切换是否就绪:检查 backup 状态与 failover 日志
仅看当前 active 不够,要确认备用路径随时可接管:
- 找到 backup slave 条目,确认其
MII Status: up且Link Failure Count: 0; - 观察
Number of ports:是否等于你配置的 slave 数量(如 2); - 留意
Currently active slave:后面是否紧跟着Last time slave was active:时间戳——如果刚发生过切换,这里会显示最近一次变更时间; - 配合
dmesg | grep -i bond查看内核是否记录过link status down或failover事件,验证故障检测机制是否触发过。
识别常见异常信号:别忽略这些细节
以下情况看似“有输出”,实则高可用已失效:
- 某 slave 的
MII Status: down但Link Failure Count为 0 → 可能网卡驱动未加载或硬件未识别; - 所有 slave 的
MII Status: up,但Currently active slave:显示none→ bonding 模块未正确初始化或 mode=1 下 primary 指定错误; -
Speed:和Duplex:显示Unknown→ ethtool 无法读取协商结果,可能物理链路不稳定或网卡固件异常; -
MAC address:在 active 和 backup slave 间不一致 →fail_over_mac=1未启用,主备切换后可能出现 ARP 超时丢包。
结合 ethtool 做交叉验证
/proc/net/bonding/bond0 是逻辑视图,ethtool 提供物理层真相:
- 对每个 slave 执行
ethtool enp3s0,确认Link detected: yes; - 比对
Speed和Duplex是否与 bonding 输出一致; - 若某 slave 在 bonding 中显示
up,但ethtool显示no→ 内核 bonding 状态滞后,需重启 bonding 或检查 miimon 值是否过大(建议设为 100ms)。











