nmcli配置双网卡主备模式需先创建bond0连接并指定active-backup、miimon和primary参数,再添加两块slave网卡,最后为bond0配置静态ip、网关及dns并启用;验证时通过/proc/net/bonding/bond0确认主备状态,支持自动故障切换与恢复。

直接用 nmcli 配置双网卡主备(active-backup)模式,是现代 RHEL/CentOS 8+、Fedora、Rocky/AlmaLinux 等基于 NetworkManager 的系统推荐方式,比传统 ifcfg + bonding 模块更简洁、可管理性强,且原生支持热插拔与状态监控。
确认前提与基础准备
确保以下条件已满足:
- NetworkManager 版本 ≥ 1.22(
nmcli --version查看),旧版本可能不支持完整 bonding 参数 - 两块物理网卡(如
ens3和ens4)已识别且无冲突:ip -br a或nmcli d - 禁用传统 bonding 模块干扰:检查
/etc/modprobe.d/下无alias bond0 bonding类配置;若存在,注释或删除后重启 NetworkManager - 关闭或卸载
network-scripts服务(RHEL 8+ 默认不启用),避免与 NetworkManager 冲突
创建 active-backup 类型的 bond 连接
执行以下命令一次性创建主备 bond(以 bond0 为例):
nmcli connection add type bond con-name bond0 ifname bond0 mode active-backup miimon 100 primary ens3
说明:
-
mode active-backup明确指定主备逻辑 -
miimon 100启用链路检测(100ms 周期),自动判断网卡是否 up -
primary ens3强制ens3为默认活动端口;故障恢复时也优先切回该卡 - 此命令仅创建连接定义,尚未绑定物理口
添加从属网卡并设置关键参数
将两张网卡作为 slave 加入 bond:
nmcli connection add type bond-slave con-name bond0-ens3 ifname ens3 master bond0<br>nmcli connection add type bond-slave con-name bond0-ens4 ifname ens4 master bond0
接着为 bond0 设置 IP 和网关(静态地址示例):
nmcli connection modify bond0 ipv4.addresses "192.168.10.100/24"<br>nmcli connection modify bond0 ipv4.gateway "192.168.10.1"<br>nmcli connection modify bond0 ipv4.method manual<br>nmcli connection modify bond0 ipv4.dns "192.168.10.1"
最后启用整个 bond:
nmcli connection up bond0
验证与业务保障要点
运行以下命令确认主备状态是否生效:
-
cat /proc/net/bonding/bond0—— 查看当前 active interface 是否为ens3,Slave Interface列显示Up/Down -
nmcli -f NAME,DEVICE,STATE,CONNECTION connection show—— 确认bond0和两个 slave 连接均处于activated - 模拟故障:
nmcli device disconnect ens3,等待 2–3 秒后再次查看/proc/net/bonding/bond0,应显示ens4成为 active
为保障核心业务连续性,建议额外配置:
- 在应用服务(如 Nginx、数据库监听)中绑定到
bond0接口,而非具体物理卡 - 若需 ARP 监控增强(防交换机单边断连),追加:
nmcli connection modify bond0 bond.options "arp_interval=1000,arp_ip_target=192.168.10.1" - 设置连接自动重连:
nmcli connection modify bond0 connection.autoconnect yes











