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 】
相关推荐:
免费网站制作appp,免费制作app哪个平台好?
如何用y主机助手快速搭建网站?
微博html5版本怎么弄发超话_超话进入入口及发帖格式要求【教程】
西安专业网站制作公司有哪些,陕西省建行官方网站?
laravel怎么为API路由添加签名中间件保护_laravel API路由签名中间件保护方法
如何快速查询网站的真实建站时间?
UC浏览器如何切换小说阅读源_UC浏览器阅读源切换【方法】
Laravel中间件起什么作用_Laravel Middleware请求生命周期与自定义详解
品牌网站制作公司有哪些,买正品品牌一般去哪个网站买?
武汉网站设计制作公司,武汉有哪些比较大的同城网站或论坛,就是里面都是武汉人的?
javascript读取文本节点方法小结
如何在香港服务器上快速搭建免备案网站?
详解jQuery停止动画——stop()方法的使用
夸克浏览器网页跳转延迟怎么办 夸克浏览器跳转优化
Laravel策略(Policy)如何控制权限_Laravel Gates与Policies实现用户授权
WEB开发之注册页面验证码倒计时代码的实现
python中快速进行多个字符替换的方法小结
如何在万网ECS上快速搭建专属网站?
HTML 中动态设置元素 name 属性的正确语法详解
香港代理服务器配置指南:高匿IP选择、跨境加速与SEO优化技巧
深圳防火门网站制作公司,深圳中天明防火门怎么编码?
Laravel如何处理和验证JSON类型的数据库字段
Python正则表达式进阶教程_复杂匹配与分组替换解析
Android Socket接口实现即时通讯实例代码
车管所网站制作流程,交警当场开简易程序处罚决定书,在交警网站查询不到怎么办?
php做exe能调用系统命令吗_执行cmd指令实现方式【详解】
Laravel如何使用.env文件管理环境变量?(最佳实践)
JavaScript如何操作视频_媒体API怎么控制播放
Laravel如何处理跨站请求伪造(CSRF)保护_Laravel表单安全机制与令牌校验
Laravel Eloquent性能优化技巧_Laravel N+1查询问题解决
文字头像制作网站推荐软件,醒图能自动配文字吗?
Win10如何卸载预装Edge扩展_Win10卸载Edge扩展教程【方法】
Laravel API资源类怎么用_Laravel API Resource数据转换
网页设计与网站制作内容,怎样注册网站?
如何快速生成凡客建站的专业级图册?
Laravel如何配置中间件Middleware_Laravel自定义中间件拦截请求与权限校验【步骤】
如何快速生成专业多端适配建站电话?
如何用狗爹虚拟主机快速搭建网站?
高性价比服务器租赁——企业级配置与24小时运维服务
HTML5空格和nbsp有啥关系_nbsp的作用及使用场景【说明】
购物网站制作费用多少,开办网上购物网站,需要办理哪些手续?
Laravel如何实现多语言支持_Laravel本地化与国际化(i18n)配置教程
图册素材网站设计制作软件,图册的导出方式有几种?
宙斯浏览器视频悬浮窗怎么开启 边看视频边操作其他应用教程
Java类加载基本过程详细介绍
油猴 教程,油猴搜脚本为什么会网页无法显示?
Edge浏览器如何截图和滚动截图_微软Edge网页捕获功能使用教程【技巧】
阿里云网站搭建费用解析:服务器价格与建站成本优化指南
智能起名网站制作软件有哪些,制作logo的软件?
Laravel集合Collection怎么用_Laravel集合常用函数详解
下一篇:如何挑选高效建站主机与优质域名?
下一篇:如何挑选高效建站主机与优质域名?


是峰值上限: