ubuntu多网卡聚合必须使用bonding内核模块,仅配置多个ip仅为多地址,无法提升带宽或实现自动容错;需先确认物理网卡识别且状态up、bonding模块已加载并设为开机自启,推荐netplan配合renderer: networkd配置,优选mode=1(active-backup)或mode=6(balance-alb)模式。

Ubuntu 多网卡聚合必须用 bonding 内核模块,不能靠简单配两个 IP 就算“聚合”——那只是多地址,不提升带宽也不自动容错。
确认网卡和内核支持
先看物理网卡是否识别、能否 up:
ip link show | grep -E "^[0-9]|state.*UP|state.*DOWN"
输出里要有至少两块状态为 UP 的以太网设备(如 eth0、enp3s0),且没被其他服务独占(比如 NetworkManager 正在接管)。
再检查 bonding 模块是否已加载:
lsmod | grep bonding
如果没输出,运行 sudo modprobe bonding 加载;要开机自动加载,写入 /etc/modules:
echo "bonding" | sudo tee -a /etc/modules
- Ubuntu 20.04+ 默认用
networkd渲染器,NetworkManager对 bonding 支持弱,建议显式指定renderer: networkd - 别用
ifconfig或ip addr add手动配 bond 接口——Netplan 不会跟踪,重启后丢失 - 虚拟机环境下,确保两块网卡不是都桥接到同一物理网卡,否则实际还是单路径
选对 mode:mode=1 和 mode=6 最实用
mode=1(active-backup)和 mode=6(balance-alb)是生产环境最稳妥的选择:
-
mode=1:主备切换快( -
mode=6:收发双向负载均衡,自动适配流量,也不依赖交换机,但要求所有成员网卡 MAC 地址可被 ARP 响应(即不能有防火墙拦截 ARP) - 别碰
mode=4(802.3ad):除非你确定交换机已启用 LACP 且配置严格匹配,否则大概率链路起不来 -
mode=0(balance-rr)在多数交换机上会丢包,因为交换机不知道多个端口属于同一个逻辑接口
判断依据很简单:如果只求“一块挂了不中断”,选 mode=1;如果还想“两块一起跑满带宽”,且确认客户端能正常 ARP,选 mode=6。
Ubuntu 26.04 LTS(代号“Resolute Raccoon”)是Canonical于2026年4月23日发布的下一代长期支持版操作系统,提供长达10年的技术支持。它搭载Linux 7.0内核与GNOME 50桌面环境,全面转向Wayland协议,并引入Rust重写的核心工具以增强安全性。官方提供适用于AMD64和ARM64架构的桌面及服务器ISO镜像,是追求前沿技术与极致稳定的开发者
Netplan 配 bond0 的关键写法
配置文件(如 /etc/netplan/00-bond.yaml)必须满足三个硬性条件:
- 所有物理网卡(如
eth0、eth1)的dhcp4: false且不配addresses——它们只是 bond 成员,IP 全由bond0统一管 -
bond0必须显式声明interfaces: [eth0, eth1],顺序无关,但名字必须和ip link输出完全一致 -
bond0的parameters中,mode、miimon(建议 100)、updelay(建议 200)缺一不可
示例(mode=1):
network:
version: 2
renderer: networkd
bonds:
bond0:
interfaces: [eth0, eth1]
parameters:
mode: active-backup
miimon: 100
updelay: 200
addresses: [192.168.1.100/24]
gateway4: 192.168.1.1
nameservers:
addresses: [8.8.8.8, 114.114.114.114]
ethernets:
eth0: {dhcp4: false}
eth1: {dhcp4: false}
注意:ethernets 下的 eth0 和 eth1 不能有任何地址、路由或 DNS 配置,否则 netplan apply 会失败。
验证 bond 状态和常见失败点
执行 sudo netplan apply 后,立刻检查:
cat /proc/net/bonding/bond0
重点看三行:
-
Bonding Mode:是否显示你设的 mode(如fault-tolerance (active-backup)) -
Currently Active Slave:是否有且仅有一个网卡标为Active -
MII Status:所有成员是否都是up,不是down或link failure
典型失败现象:
-
netplan apply报错 “invalid bond interface”:通常是interfaces列表里写了不存在的网卡名,或大小写/下划线不匹配 -
cat /proc/net/bonding/bond0显示no such device:bonding模块没加载,或 Netplan 渲染器不是networkd - 虽然 bond0 up 了但 ping 不通:检查
gateway4是否写错,或物理链路根本没通(比如一根网线插在关机的交换机口上)
真正难调的不是语法,而是物理层连通性和交换机端口协商——bond 接口不会告诉你网线松了,只会安静地把所有流量扔给唯一“up”的那个 slave。










