Linux网络带宽限制_tc配置实践解析【教程】
发布时间 - 2025-12-31 00:00:00 点击率:次tc不是“开个开关就能限速”的工具,它依赖队列规则(qdisc)、类定义(class)和过滤器(filter)三层结构协同工作;未配对qdisc与class或遗漏filter将导致限速无效。
直接说结论:tc 不是“开个开关就能限速”的工具,它依赖队列规则、类定义和过滤器三层结构协同工作;没配对 qdisc 和 class,或漏掉 filter,限速基本无效。
为什么tc加了规则却完全不生效?
最常见原因是把限速规则加在了错误的网络接口上,或者没指定出口方向(egress)。tc 只能控制本机发出的数据包(即 egress),无法限制流入(ingress)带宽——除非用 ifb 模块做重定向。
-
tc默认只作用于egress,想限下载得把流量先“拉”到虚拟接口ifb0上再限 - 物理网卡如
eth0不能直接挂htb+sfq复合 qdisc,必须先删掉默认的pfifo_fast:tc qdisc del dev eth0 root
- 误把
rate单位写成mbit(应为mbit是合法的,但mbps或Mbps会静默失败) - 没加载
sch_htb和sch_sfq内核模块(某些精简内核需手动modprobe sch_htb sch_sfq)
tc 限速时如何精准匹配某类流量?
靠 filter + u32 或 fw 匹配器。用 u32 写 IP/端口条件容易出错,推荐先用 iptables 打标记,再用 tc filter 查 fw 标记——更稳定、易调试。
- 给目标流量打标记:
iptables -t mangle -A OUTPUT -d 192.168.1.100 -j MARK --set-mark 1
- 在
htb下挂 class 并绑定 filter:tc filter add dev eth0 parent 1: protocol ip u32 match ip dst 192.168.1.100 flowid 1:10
(u32方式)
或更推荐:tc filter add dev eth0 parent 1: protocol ip handle 1 fw flowid 1:10
-
handle值必须和iptables的--set-mark一致;flowid必须对应已创建的classID(如1:10)
单台服务器限速多个客户端,tc 怎么避免互相抢占?
关键在 htb 的 ceil 和 rate 配合,以及子类的 burst/cburst 设置。单纯设 rate 会导致突发流量被丢弃,体验卡顿;不设 ceil 则无法实现“保底+弹性”。
- 根类设总带宽上限:
tc class add dev eth0 parent 1: classid 1:1 htb rate 100mbit ceil 100mbit
- 每个客户端分一个子类,
rate是保障带宽,ceil
是峰值上限:tc class add dev eth0 parent 1:1 classid 1:10 htb rate 10mbit ceil 20mbit burst 15k cburst 15k
- 务必给每个
class挂一个sfqqdisc 做内部排队:tc qdisc add dev eth0 parent 1:10 handle 10: sfq perturb 10
- 漏掉
sfq,多个 TCP 流会因 ACK 拥塞而严重不均——这是实际部署中最常被忽略的一环
真正难的不是写对几条 tc 命令,而是理解每层 qdisc/class/filter 如何传递数据包;一旦某个 class 没绑 qdisc,或 filter 的 flowid 指向不存在的 class,整个链路就静默失效——连日志都不会报错。
# linux
# 端口
# 工具
# 为什么
# 子类
# Filter
# 接口
# class
# 就能
# 多个
# 开个
# 数据包
# 客户端
# 这是
# 协同工作
# 都不
# 不存在
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
php后缀怎么变mp4格式错误_修改扩展名提示格式不对怎么办【技巧】
Laravel Eloquent模型如何创建_Laravel ORM基础之Model创建与使用教程
b2c电商网站制作流程,b2c水平综合的电商平台?
个人摄影网站制作流程,摄影爱好者都去什么网站?
如何快速搭建高效可靠的建站解决方案?
Laravel如何配置任务调度?(Cron Job示例)
Python自动化办公教程_ExcelWordPDF批量处理案例
Laravel如何实现用户密码重置功能?(完整流程代码)
东莞市网站制作公司有哪些,东莞找工作用什么网站好?
如何快速搭建FTP站点实现文件共享?
Laravel怎么实现模型属性的自动加密
如何快速搭建高效WAP手机网站?
Windows驱动无法加载错误解决方法_驱动签名验证失败处理步骤
如何用腾讯建站主机快速创建免费网站?
详解一款开源免费的.NET文档操作组件DocX(.NET组件介绍之一)
Laravel如何实现用户角色和权限系统_Laravel角色权限管理机制
Laravel如何实现API资源集合?(Resource Collection教程)
独立制作一个网站多少钱,建立网站需要花多少钱?
香港服务器租用每月最低只需15元?
Java遍历集合的三种方式
Laravel怎么配置自定义表前缀_Laravel数据库迁移与Eloquent表名映射【步骤】
怎么制作网站设计模板图片,有电商商品详情页面的免费模板素材网站推荐吗?
Java垃圾回收器的方法和原理总结
iOS验证手机号的正则表达式
Laravel怎么集成Log日志记录_Laravel单文件与每日日志配置及自定义通道【详解】
Linux系统命令中tree命令详解
Laravel如何实现多表关联模型定义_Laravel多对多关系及中间表数据存取【方法】
Laravel怎么连接多个数据库_Laravel多数据库连接配置
文字头像制作网站推荐软件,醒图能自动配文字吗?
,交易猫的商品怎么发布到网站上去?
Laravel如何处理CORS跨域请求?(配置示例)
Android okhttputils现在进度显示实例代码
Laravel Admin后台管理框架推荐_Laravel快速开发后台工具
矢量图网站制作软件,用千图网的一张矢量图做公司app首页,该网站并未说明版权等问题,这样做算不算侵权?应该如何解决?
如何在企业微信快速生成手机电脑官网?
如何在万网自助建站平台快速创建网站?
如何在万网主机上快速搭建网站?
Laravel怎么进行数据库事务处理_Laravel DB Facade事务操作确保数据一致性
如何用景安虚拟主机手机版绑定域名建站?
Android仿QQ列表左滑删除操作
Laravel Blade模板引擎语法_Laravel Blade布局继承用法
Linux系统命令中screen命令详解
Laravel如何实现用户注册和登录?(Auth脚手架指南)
西安市网站制作公司,哪个相亲网站比较好?西安比较好的相亲网站?
如何快速生成凡客建站的专业级图册?
如何用5美元大硬盘VPS安全高效搭建个人网站?
如何在服务器上三步完成建站并提升流量?
Laravel Sail是什么_基于Docker的Laravel本地开发环境Sail入门
Laravel如何处理文件下载请求?(Response示例)
长沙做网站要多少钱,长沙国安网络怎么样?
下一篇:如何挑选高效建站主机与优质域名?
下一篇:如何挑选高效建站主机与优质域名?


是峰值上限: