Linux怎么配置系统的多网卡负载均衡

老晨小哥_3528

老晨小哥_3528

2026-06-27

823人浏览

原创

linux多网卡负载均衡需据目标选方案:带宽叠加用bonding mode=0/4(需交换机聚合)、高可用用mode=1、免交换机双向负载用mode=6、多isp分流用策略路由+多路由表。

linux怎么配置系统的多网卡负载均衡

Linux 多网卡负载均衡没有“一键开启”的通用方案,必须先明确目标:你要的是带宽叠加(如两块千兆卡跑出接近2Gbps),还是故障自动切换,或是多出口分流(比如走不同ISP)?选错路径,配置完流量照样只走一张卡。

nmcli team 配置最容易踩坑的四个点

如果你用的是 RHEL 7+/CentOS 7+/银河麒麟等主流发行版,nmcli 是首选,但直接抄命令几乎必失败:

  • nmcli connection down 必须先执行——哪怕接口显示 disconnected,只要它还关联着某个连接(如 "System ens33"),后续加 team-slave 就会报 device is already managed
  • 创建 team 主接口时,config 参数里的 JSON 必须用单引号包裹,且 runner.name 字段不能漏:比如主备写成 '{"runner": {"name": "activebackup"}}',少个 r(写成 activebackup)就静默失败
  • master 指的是主连接的 con-name(不是 ifname),添加 slave 时写 master team0,前提是创建 team 时用了 con-name team0;若你写的是 con-name myteam,这里就必须同步改成 master myteam
  • teamd 守护进程只在第一个 team-slave up 时启动——所以顺序只能是:nmcli connection up team0-ens33 → nmcli connection up team0-ens34 → nmcli connection up team0;先 up team0,teamd 不拉起,整个 team 接口永远 unmanaged

bonding mode=6(balance-alb)为什么比 mode=0/4 更适合普通环境

mode=6 是唯一不需要交换机配合、又能实现收发双向负载的模式,特别适合虚拟机、测试环境或交换机不支持 LACP 的场景:

Obsidian (Linux)
Obsidian (Linux)

操作 Obsidian 库(纯 Markdown 笔记),并通过 notesmd-cli 实现自动化。

下载
  • 发送流量按源/目的 IP+端口哈希分发到不同物理口,接收流量通过 ARP 协商让对端把响应包发到当前活跃口,避免乱序
  • 不用改交换机配置,插上线就能用;而 mode=0(balance-rr)和 mode=4(802.3ad)都要求交换机端口聚合,否则可能丢包或 MAC 抖动
  • 纯无线网卡不支持 mode=6——内核会拒绝加载,报错 Unsupported device type for mode=6
  • 配置时 BONDING_OPTS 必须包含 miimon=100(链路检测间隔),否则故障切换延迟高达数分钟;primary= 参数可选,但建议指定一块网卡为默认出口,避免初始路由混乱

策略路由才是真·多出口负载均衡的解法

当两张网卡连的是不同子网甚至不同 ISP(如 eth0 走电信、eth1 走联通),靠 bonding 绑定没用——bonding 要求所有成员口在同一二层网络。这时必须用策略路由 + 多路由表:

  • 每张网卡配独立路由表(如 tab_eth0、tab_eth1),各自加 default via X.X.X.1 dev eth0
  • 用 ip rule add from 192.168.10.100 table tab_eth0 指定源 IP 查哪张表,不能只靠 ip route add default ——Linux 默认只查 main 表,不加规则等于白配
  • 要实现“轮询式”负载(比如 HTTP 请求交替走两个出口),得结合 iptables -t mangle 打 fwmark,再用 ip rule add fwmark 1 table tab_eth0 分流,否则所有流量仍走第一条匹配规则
  • 记得关掉反向路径过滤:sysctl -w net.ipv4.conf.all.rp_filter=0,否则跨表回包会被丢弃,SSH 都连不上

真正难的不是敲几行命令,而是搞清你的物理拓扑:两张网卡是不是接在同一台交换机?IP 是否同网段?对端设备是否可控?这些决定了该用 team、bonding 还是策略路由——选错模型,后面所有参数调得再细也没用。

相关文章

PHP速学视频免费教程(入门到精通)
PHP速学视频免费教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

相关标签:

linux

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
磁盘配额是什么
磁盘配额是什么

磁盘配额是计算机中指定磁盘的储存限制,就是管理员可以为用户所能使用的磁盘空间进行配额限制,每一用户只能使用最大配额范围内的磁盘空间。php中文网为大家提供各种磁盘配额相关的内容,教程,供大家免费下载安装。

2023.06.21

4110

4

如何安装LINUX
如何安装LINUX

本站专题提供如何安装LINUX的相关教程文章,还有相关的下载、课程,大家可以免费体验。

2023.06.29

3493

10

linux find
linux find

find是linux命令,它将档案系统内符合 expression 的档案列出来。可以指要档案的名称、类别、时间、大小、权限等不同资讯的组合,只有完全相符的才会被列出来。find根据下列规则判断 path 和 expression,在命令列上第一个 - ( ) , ! 之前的部分为 path,之后的是 expression。还有指DOS 命令 find,Excel 函数 find等。本站专题提供linux find相关教程文章,还有相关

2023.06.30

2693

5

linux修改文件名
linux修改文件名

本专题为大家提供linux修改文件名相关的文章,这些文章可以帮助用户快速轻松地完成文件名的修改工作,大家可以免费体验。

2023.07.05

6570

7

linux系统安装教程
linux系统安装教程

linux系统是一种可以免费使用,自由传播,多用户、多任务、多线程、多CPU的操作系统。本专题提供linux系统安装教程相关的文章,大家可以免费体验。

2023.07.06

6222

7

linux查看文件夹大小
linux查看文件夹大小

Linux是一种自由和开放源码的类Unix操作系统,存在着许多不同的Linux版本,但它们都使用了Linux内核。Linux可安装在各种计算机硬件设备中,比如手机、平板电脑、路由器、视频游戏控制台、台式计算机、大型机和超级计算机。linux怎么查看文件夹大小呢?php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

2023.07.20

3613

8

linux查看ip命令
linux查看ip命令

本专题为大家提供linux查看ip命令相关文章内容,感兴趣的朋友可以免费下载体验试试。

2023.07.20

3105

4

linux查看cpu使用率
linux查看cpu使用率

在linux的系统维护中,可能需要经常查看cpu使用率,分析系统整体的运行情况。本专题为大家带来了linux查看cpu使用率的相关文章,感兴趣的朋友千万不要错过了。

2023.07.25

3339

6

linux查找文件命令
linux查找文件命令

Linux是一种自由和开放源码的类Unix操作系统,存在着许多不同的Linux版本,但它们都使用了Linux内核。Linux可安装在各种计算机硬件设备中,比如手机、平板电脑、路由器、视频游戏控制台、台式计算机、大型机和超级计算机。php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

2023.07.31

297

3

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Python uv官方安装与入门文档
Python uv官方安装与入门文档

共0课时 | 0人学习

Buffalo框架快速入门指南
Buffalo框架快速入门指南

共0课时 | 0人学习

Valgrind支持平台说明
Valgrind支持平台说明

共0课时 | 0人学习