服务器网卡绑定提升网络带宽:服务器网卡绑定全攻略
为什么需要做网卡绑定
当单张千兆或万兆网卡带宽不够用时,最简单的方法不是换更贵的网卡,而是把多张网卡“绑”在一起。服务器网卡绑定(Linux Bonding) 可以将两块或更多物理网卡虚拟成一块逻辑网卡,实现带宽叠加和链路冗余。
比如两块千兆网卡绑定后理论最大吞吐可达 2 Gbps,同时任意一块网卡坏掉也不会断网。
准备工作:硬件与系统要求
- 硬件:至少两张物理网卡(建议同型号),主板有足够 PCIe 插槽。
- 系统:CentOS 7/8、Ubuntu 20.04+ 或 Debian 10+ 均可,本文以 CentOS 7 为例。
- 驱动:确认网卡驱动已加载(
lspci | grep Ethernet查看)。 - 网络环境:交换机需支持 802.3ad(LACP) 静态聚合(推荐模式 4),或普通交换机也能用负载均衡模式(如 mode=0、mode=6)。
登录服务器后先备份现有网络配置:
cp -r /etc/sysconfig/network-scripts /etc/sysconfig/network-scripts.bak
分步配置 Linux Bonding
1. 加载并确认 bonding 模块
modprobe bonding
lsmod | grep bonding
若没有输出,则需手动加载并设置开机自动加载:
echo "bonding" >> /etc/modules-load.d/bonding.conf
2. 创建虚拟网卡 bond0 的配置文件
在 /etc/sysconfig/network-scripts/ 下新建 ifcfg-bond0:
vim /etc/sysconfig/network-scripts/ifcfg-bond0
写入以下内容(IP 按实际环境修改):
DEVICE=bond0
NAME=bond0
TYPE=Bond
BONDING_MASTER=yes
ONBOOT=yes
BOOTPROTO=static
IPADDR=192.168.1.100
NETMASK=255.255.255.0
GATEWAY=192.168.1.1
BONDING_OPTS="mode=4 miimon=100 lacp_rate=1 xmit_hash_policy=layer3+4"
说明:mode=4 是 802.3ad LACP 模式,若交换机不支持可改用 mode=0(轮询)或 mode=6(自适应负载均衡),但 mode=0 有概率乱序,建议有条件优先用 mode=4。
3. 修改两块物理网卡配置
假设物理网卡为 eth0 和 eth1(请用 ip link 确认实际名称)。
编辑每块网卡:
vim /etc/sysconfig/network-scripts/ifcfg-eth0
vim /etc/sysconfig/network-scripts/ifcfg-eth1
两块网卡内容相同(仅 DEVICE 不同):
DEVICE=eth0
TYPE=Ethernet
ONBOOT=yes
MASTER=bond0
SLAVE=yes
BOOTPROTO=none
注意:不要写 IP 地址、网关等信息,都由 bond0 统一管理。
4. 重启网络服务生效
systemctl restart network
或临时不重启使用 ifenslave 命令(但建议重启确保配置持久化)。
避坑指南:高频问题与注意事项
- 网卡名称不对:CentOS 7 以上可能使用
ens33ens37等命名,请用ip a确认,不要照抄 eth0。 - BONDING_OPTS 顺序:必须写在同一行,中间用空格分隔,否则可能加载失败。
- 交换机配合:如果用了 mode=4,交换机端口必须配置为 LACP 聚合组,否则无法通信。
- 防火墙和 SELinux:绑定后不影响原有规则,但建议先关闭测试:
setenforce 0
systemctl stop firewalld
没问题后再按需开启。
- 无法获取 IP:检查 bond0 配置中的网关是否正确,以及
route -n是否出现默认路由。 - 只要一块网卡有流量:可能是
xmit_hash_policy不合适,可换成layer2测试;或者 mode 选为 0 轮询(不依赖 hash)。
效果验证:确认绑定正常与带宽测试
查看 bond 状态
cat /proc/net/bonding/bond0
输出中应看到 MII Status: up,两块网卡均为 Slave Interface: eth0 且 Link Failure Count: 0。
测试带宽提升
使用 iperf3 测试带宽(服务端和客户端均需安装 iperf3):
# 服务端(本机)
iperf3 -s
# 客户端(另一台同网段机器)
iperf3 -c 192.168.1.100 -t 30 -P 4
观察输出中的 sum 和 sender 带宽。
如果单千兆网卡约 940 Mbps,绑定后应在 1.8~2.0 Gbps(双网卡)。
若未达到,检查交换机端口是否为瓶颈。
写在最后
网卡绑定是提升服务器网络性能最经济的手段之一。
只要硬件满足、交换机配置对,按本文步骤操作通常半小时内就能搞定。
遇到问题第一步查看 /proc/net/bonding/bond0,第二步检查交换机端口状态。
建议先用 mode=0 测试通后再切到 mode=4,减少排错复杂度。
如果你正在处理服务器网卡绑定提升网络带宽,不妨先完整执行一遍,再根据自己环境微调 bonding 参数。