linux网卡负载均衡需用bonding模块聚合多网卡,按场景选mode=6(免交换机双向均衡)、mode=4(lacp企业级叠加)或mode=0(慎用直连测试)。

用 mode=6(balance-alb)实现免交换机配置的双向负载均衡
适合大多数办公、测试、中小生产环境——不需要动交换机,两块千兆网卡即可让内网传输接近 2Gbps(非理论叠加,但显著高于单卡)。
- 加载并固化模块: echo "alias bond0 bonding" >> /etc/modprobe.d/bonding.conf echo "options bonding mode=6 miimon=100" >> /etc/modprobe.d/bonding.conf
- 配置主接口 ifcfg-bond0(CentOS/RHEL 系):
DEVICE=bond0
TYPE=Bond
BOOTPROTO=static
IPADDR=192.168.1.100
NETMASK=255.255.255.0
ONBOOT=yes
BONDING_OPTS="mode=6 miimon=100" - 配置从属网卡(如 ens33、ens37):
DEVICE=ens33
BOOTPROTO=none
ONBOOT=yes
MASTER=bond0
SLAVE=yes
USERCTL=no - 重启网络或执行:ifdown bond0 && ifup bond0,然后验证:cat /proc/net/bonding/bond0 —— 应显示两个 slave 状态为 Up,且 Mode: adaptive load balancing
用 mode=4(802.3ad/LACP)获取真正带宽叠加
适合企业级环境,有支持 LACP 的可管交换机(如华为、H3C、Cisco)。这是唯一能实现标准链路聚合、流量按流哈希均匀分发、且接收/发送双向均衡的模式。
- 交换机侧必须启用 LACP 并将对应端口加入同一聚合组(如 port-channel 1)
- 服务器侧配置 BONDING_OPTS:"mode=4 miimon=100 lacp_rate=1"(fast 表示每秒协商一次)
- 注意:所有参与 bond 的网卡速率、双工模式必须一致(建议用 ethtool ens33 核查),否则无法 UP
- 验证时除 /proc/net/bonding/bond0 外,还需确认 Aggregator ID 相同、LACP state 为 0x3D(表示协商成功)
用 mode=0(balance-rr)做简单轮询(慎用)
仅推荐在测试环境或直连另一台 Linux 主机(双方都配 bonding + mode=0)时使用。它对交换机无要求,但存在严重限制:
- 单个 TCP 连接的数据包会跨网卡发出 → 经过普通交换机后可能乱序 → 触发重传,反而降低吞吐
- 实际效果常不如 mode=6,且无法自动故障切换(需依赖 miimon 检测,但切换过程无 MAC 同步保障)
- 若坚持使用,务必确保两端都是 Linux 且配置完全对称,并关闭交换机的 STP 或设置为 portfast











