用nmcli配置Linux Team模式可实现链路冗余与负载均衡,需先确认网卡状态和NetworkManager运行,再创建team主连接(如activebackup/roundrobin/loadbalance),添加slave成员,配置IP并启用,最后验证状态与故障切换效果。
用 nmcli 配置 Linux 的 Team 模式,既能实现链路级冗余(如主备自动切换),也能兼顾资源均衡(如轮询或负载均衡模式)。关键在选对
runner 模式
并配齐物理网卡、IP 和监控机制,全程命令行完成,无需手动改配置文件。
确认可用网卡与基础环境
确保至少两个物理网卡已识别且可操作:
运行
或
,找出类似
、
这类处于 UP 状态的以太网接口
检查 NetworkManager 是否运行:
,若非 active,请先执行
避免使用已被其他连接占用的网卡(如已有 DHCP 连接),必要时先
创建 team 接口并指定工作模式
Team 支持多种 runner 模式,冗余与均衡需按需选择:
主备冗余(推荐初用)
:只有一张网卡传数据,另一张纯备份,故障秒切。命令:
轮询均衡(提升吞吐)
:流量依次分发到所有成员,带宽叠加。命令:
哈希负载均衡(更智能)
:按源/目的 IP 或端口哈希分发,保持会话一致性。命令:
注意:JSON 必须用单引号包裹,内部双引号不可省略;
和
统一为
更易管理。
CentOS Linux 7.9.2009
CentOS Linux 7.9.2009是传统CentOS Linux 7的最后主要版本,也是很多企业历史服务器中仍可能遇到的系统版本。它以稳定、兼容RHEL 7生态、文档丰富和软件支持广泛著称,曾长期用于Web服务、数据库、虚拟化节点和企业内部业务系统。不过CentOS Linux 7已于2024年6月30日停止维护,现在继续使用会面临安全补丁缺失风险。该版本更适合旧业务迁移、历史环境恢复或离线兼容性测试。
下载
添加物理网卡作为 team 成员
每张网卡单独建一个 slave 连接,并绑定到 team0:
如需更多网卡(最多支持 8 张),继续追加同类命令,仅改
和
此时只是注册关系,尚未启用;slave 连接不能独立设置 IP 或 gateway
配置地址、启用并验证效果
给 team0 分配网络参数并启动整套链路:
设静态 IPv4:
按顺序启用:
验证状态:
•
查看是否 connected
•
看当前 active port 和 runner 类型
•
确认 IP 已生效
•
查成员详细状态和收发统计
测试时,用另一台机器持续 ping team0 的 IP,再执行
模拟断链——主备模式应几乎无丢包,轮询或负载均衡模式则自动绕过失效链路继续通信。
nmcli deviceip link show | grep "state UP" | grep -v "lo"ens224ens256systemctl is-active NetworkManagersystemctl start NetworkManagernmcli connection down xxxnmcli connection add type team con-name team0 ifname team0 config '{"runner": {"name": "activebackup"}}'nmcli connection add type team con-name team0 ifname team0 config '{"runner": {"name": "roundrobin"}}'nmcli connection add type team con-name team0 ifname team0 config '{"runner": {"name": "loadbalance", "tx_hash": ["eth", "ipv4", "ipv6"]}}'con-nameifnameteam0nmcli connection add type team-slave con-name team0-port1 ifname ens224 master team0nmcli connection add type team-slave con-name team0-port2 ifname ens256 master team0ifnamecon-namenmcli connection modify team0 ipv4.addresses 192.168.10.100/24nmcli connection modify team0 ipv4.gateway 192.168.10.1nmcli connection modify team0 ipv4.dns "8.8.8.8,114.114.114.114"nmcli connection modify team0 ipv4.method manualnmcli connection modify team0 connection.autoconnect yesnmcli connection up team0-port1nmcli connection up team0-port2nmcli connection up team0nmcli device show team0teamdctl team0 stateip addr show team0cat /proc/net/team/team0nmcli connection down team0-port1