最直接有效的方式是配置mode=1(active-backup)主备模式,因其无需交换机支持、逻辑清晰、故障切换可靠;三步完成:创建ifcfg-bond0并设bonding_opts="mode=1 miimon=100",将物理网卡设为slave且清空ip等冗余字段,重启network服务后用cat /proc/net/bonding/bond0验证active slave切换及持续ping测试连通性。

提升 Linux 网络接入点可靠性,最直接有效的方式是配置多链路热备(即网卡绑定中的主备模式),核心目标不是叠加带宽,而是确保单点故障时不中断业务。对大多数生产环境,尤其是数据库、防火墙、虚拟化宿主机等关键节点,mode=1(active-backup)是最推荐、最易落地的方案。
为什么首选 mode=1 主备模式
该模式天然适配“可靠性优先”场景:
- 无需交换机支持 LACP 或端口聚合,物理直连或普通交换机即可工作;
- 只有一块网卡实际收发流量,另一块全程待命,逻辑清晰、无哈希错位或非对称路由风险;
- 故障切换由内核 bonding 模块自动完成,miimon=100 可实现约 100ms 级链路探测,切换通常在 2–3 秒内完成;
- 配置项少,冲突点明确,新手也能一次配通,避免陷入 mode=4 协商失败、mode=0 回包丢失等静默问题。
三步完成基础热备配置(以 CentOS/RHEL/Fedora 为例)
所有操作均在 /etc/sysconfig/network-scripts/ 下进行:
-
创建 bond0 主接口:新建
ifcfg-bond0,内容至少包含:DEVICE=bond0<br> BOOTPROTO=static<br> ONBOOT=yes<br> IPADDR=192.168.1.100<br> NETMASK=255.255.255.0<br> GATEWAY=192.168.1.1<br> BONDING_OPTS="mode=1 miimon=100"
-
设置物理网卡为从属:分别编辑
ifcfg-eth0和ifcfg-eth1,每份仅保留:DEVICE=eth0<br> BOOTPROTO=none<br> ONBOOT=yes<br> MASTER=bond0<br> SLAVE=yes
⚠️ 务必删除原 IP、NETMASK、GATEWAY、DNS 等字段,否则会导致地址冲突或服务启动失败。 -
重启并加载绑定模块:
执行modprobe bonding确保模块已载入;
运行systemctl restart network;
检查cat /proc/net/bonding/bond0,确认出现MII Status: up和Currently Active Slave: eth0。
必须验证的三个真实状态
接口显示 UP ≠ 热备可用。以下验证缺一不可:
- 用
ethtool eth0和ethtool eth1分别确认物理链路检测为Link detected: yes; - 拔掉当前 active 网线,等待 2–3 秒后再次执行
cat /proc/net/bonding/bond0,观察Currently Active Slave是否已切换至另一网卡; - 在另一台机器上持续
ping -t 192.168.1.100,拔线期间丢包应 ≤ 3 个,恢复后立即重连。
进阶建议:与 Keepalived 配合实现网关级冗余
若该 Linux 节点本身承担网关角色(如防火墙、出口路由器),仅做网卡热备还不够。建议叠加 Keepalived + VRRP 实现虚拟 IP 漂移:
- 两台同构服务器各自配置 bond0(mode=1)作为上行口;
- 通过 Keepalived 在它们之间共享一个 VIP(如 192.168.1.1),对外提供统一网关;
- 当主节点 bond0 全链路中断时,VIP 自动漂移到备用节点,终端无感知。
这种“底层链路热备 + 上层网关热备”双层防护,可覆盖网卡、网线、交换机端口、甚至整机宕机等多种故障场景。











