云服务器多网卡负载应优先采用弹性网卡+clb分流方案,避免内核bonding;仅私有云/裸金属等可控环境可谨慎启用mode 6 bonding,并需满足子网/vlan/安全组一致等条件。

云服务器初始化时配置多网卡绑定与负载,核心是把多块弹性网卡(ENI)或系统分配的网卡聚合为一个逻辑接口,实现带宽叠加和链路冗余。这不是简单配IP,而是要结合云平台限制、内核驱动支持和实际业务场景选对模式、做对步骤。
确认云平台是否支持底层bonding
多数公有云(如腾讯云、阿里云、华为云)默认不支持直接在云服务器内部做传统Linux bonding,原因在于: - 云平台网络栈接管了二层转发,物理端口不可见; - 多网卡可能跨可用区或不同交换机,无法满足mode 0/4对交换机聚合的硬性要求; - 主动修改MAC地址或启用bond驱动可能导致网络中断甚至实例失联。
因此,优先采用云原生方案: - 使用云厂商提供的弹性网卡绑定+CLB(负载均衡器)做上层分流; - 若确需内核级绑定(如私有云、裸金属或部分支持ENI直通的云环境),必须先确认该云平台允许修改网卡MAC、禁用STP、并开放ARP代理等能力。
推荐方式:弹性网卡 + CLB策略路由分流
这是云环境最稳定、可运维的“多网卡负载”实践,无需改动内核或bond驱动:
- 将多块弹性网卡分别绑定到同一台CVM,每张ENI配置独立内网IP(如192.168.10.101、192.168.10.102);
- 在CLB控制台创建监听器,后端服务器组中同时添加该CVM的主网卡IP和各ENI的IP;
- 设置权重(如均设为10)、选择轮询或最小连接算法,CLB自动将入向流量分发到不同网卡IP;
- 出向流量仍走主网卡(或通过策略路由指定ENI出口),避免源地址不对称问题。
优势:完全绕过bond限制,天然支持故障隔离;扩容只需增ENI+加CLB后端,无需重启实例。
谨慎使用:内核bonding(仅限私有云/裸金属)
若运行在可控环境中(如OpenStack私有云、麒麟/KylinOS裸金属云服务器),可启用bond,但必须注意:
- 选mode 6(balance-alb)最稳妥:不需要交换机配合,支持收发双向负载,且兼容大多数云网卡驱动;
- 禁用NetworkManager(防止其覆盖配置),改用network-scripts或nmcli持久化管理;
- 两块网卡必须处于同一子网、同一VLAN、同一安全组规则下,否则ARP无法正常响应;
- 加载bonding模块时明确指定参数:
modprobe bonding mode=6 miimon=100 updelay=200 downdelay=200; - 配置文件中所有从属网卡(slave)的
BOOTPROTO=none、MASTER=bond0、SLAVE=yes缺一不可。
验证与调优关键点
配置完成后不能只看ifconfig显示UP,要实测:
- 用
cat /proc/net/bonding/bond0确认两块网卡状态均为up,且MII status为up; - 执行
iperf3 -c 192.168.10.1 -P 4压测,对比单网卡与bond0的吞吐差异; - 手动断开其中一块网卡(
ip link set ens33 down),观察业务是否无感切换、bond0是否保持UP; - 检查
ethtool -S ens33 | grep tx和ethtool -S ens34 | grep tx,确认发送字节数是否接近均衡(mode 6下非严格1:1,但应无明显偏科)。











