0

0

如何在Linux中限制带宽 Linux tc限速配置实例

P粉602998670

P粉602998670

发布时间:2025-08-30 12:30:02

|

430人浏览过

|

来源于php中文网

原创

使用tc命令可实现Linux网络带宽限制。首先确认安装iproute2包,利用tc qdisc添加HTB调度器限制出方向带宽,如限制eth0为1Mbps;通过ingress qdisc和police动作控制入方向流量;使用netem模拟延迟与丢包;最后用tc qdisc del或flush清除规则。掌握qdisc、class、filter关系,适用于测试与资源隔离场景。

如何在linux中限制带宽 linux tc限速配置实例

在Linux中限制网络带宽,可以使用

tc
(Traffic Control)命令,它是Linux内核中流量控制的核心工具,配合
netem
htb
等调度器,可实现精确的带宽限制、延迟、丢包等网络行为控制。下面通过几个实用的
tc
限速配置实例,帮助你快速掌握如何在Linux中进行带宽限制。

1. 安装和确认tc工具

大多数Linux发行版默认已安装

tc
,它属于
iproute2
包。可通过以下命令确认:

tc -version

如果没有安装,在Debian/Ubuntu系统上执行:

sudo apt install iproute2

在CentOS/RHEL上执行:

sudo yum install iproute

2. 限制指定网卡的出方向带宽(egress)

使用HTB(Hierarchical Token Bucket)调度器限制

eth0
网卡的出方向带宽为1Mbps:

sudo tc qdisc add dev eth0 root handle 1: htb default 10
sudo tc class add dev eth0 parent 1: classid 1:1 htb rate 1mbit

说明:

  • qdisc add
    添加一个队列规则
  • dev eth0
    指定作用网卡
  • root
    表示这是根队列
  • handle 1:
    是该队列的标识
  • htb
    使用分层令牌桶算法
  • classid 1:1
    创建一个类,限制速率为1mbit

验证配置:

tc -s qdisc ls dev eth0

3. 限制入方向带宽(ingress)

入方向限速需要先添加一个

ingress
qdisc,再通过
filter
将流量重定向到
htb

# 添加ingress队列
sudo tc qdisc add dev eth0 handle ffff: ingress

限速为512kbit

sudo tc filter add dev eth0 parent ffff: protocol ip u32 match u32 0 0 \ action police rate 512kbit burst 10k drop flowid :1

注意: ingress限速本质是“流量监管”(policing),不是排队,因此使用

police
动作。

Lessie AI
Lessie AI

一款定位为「People Search AI Agent」的AI搜索智能体

下载

4. 清除限速配置

要恢复原始网络状态,需删除已配置的队列规则:

# 删除出方向规则
sudo tc qdisc del dev eth0 root

删除入方向规则

sudo tc qdisc del dev eth0 ingress

或者更彻底地清除所有规则:

sudo tc qdisc flush dev eth0

5. 添加延迟和丢包模拟(高级用法)

结合

netem
可模拟复杂网络环境。例如,给
eth0
增加100ms延迟和5%丢包率:

sudo tc qdisc add dev eth0 root netem delay 100ms loss 5%

查看效果:

tc -s qdisc ls dev eth0

此功能常用于测试应用在弱网环境下的表现。

基本上就这些。通过

tc
命令,你可以灵活控制Linux系统的网络带宽、延迟、丢包等参数,适用于测试、调试或资源隔离场景。关键是理解
qdisc
class
filter
之间的关系,并根据实际需求选择合适的调度器和参数。不复杂但容易忽略细节,建议在测试环境先行验证。

相关专题

更多
登录token无效
登录token无效

登录token无效解决方法:1、检查token的有效期限,如果token已经过期,需要重新获取一个新的token;2、检查token的签名,如果签名不正确,需要重新获取一个新的token;3、检查密钥的正确性,如果密钥不正确,需要重新获取一个新的token;4、使用HTTPS协议传输token,建议使用HTTPS协议进行传输 ;5、使用双因素认证,双因素认证可以提高账户的安全性。

6099

2023.09.14

登录token无效怎么办
登录token无效怎么办

登录token无效的解决办法有检查Token是否过期、检查Token是否正确、检查Token是否被篡改、检查Token是否与用户匹配、清除缓存或Cookie、检查网络连接和服务器状态、重新登录或请求新的Token、联系技术支持或开发人员等。本专题为大家提供token相关的文章、下载、课程内容,供大家免费下载体验。

809

2023.09.14

token怎么获取
token怎么获取

获取token值的方法:1、小程序调用“wx.login()”获取 临时登录凭证code,并回传到开发者服务器;2、开发者服务器以code换取,用户唯一标识openid和会话密钥“session_key”。想了解更详细的内容,可以阅读本专题下面的文章。

1062

2023.12.21

token什么意思
token什么意思

token是一种用于表示用户权限、记录交易信息、支付虚拟货币的数字货币。可以用来在特定的网络上进行交易,用来购买或出售特定的虚拟货币,也可以用来支付特定的服务费用。想了解更多token什么意思的相关内容可以访问本专题下面的文章。

1262

2024.03.01

class在c语言中的意思
class在c语言中的意思

在C语言中,"class" 是一个关键字,用于定义一个类。想了解更多class的相关内容,可以阅读本专题下面的文章。

465

2024.01.03

python中class的含义
python中class的含义

本专题整合了python中class的相关内容,阅读专题下面的文章了解更多详细内容。

13

2025.12.06

页面置换算法
页面置换算法

页面置换算法是操作系统中用来决定在内存中哪些页面应该被换出以便为新的页面提供空间的算法。本专题为大家提供页面置换算法的相关文章,大家可以免费体验。

403

2023.08.14

磁盘配额是什么
磁盘配额是什么

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

1349

2023.06.21

Java JVM 原理与性能调优实战
Java JVM 原理与性能调优实战

本专题系统讲解 Java 虚拟机(JVM)的核心工作原理与性能调优方法,包括 JVM 内存结构、对象创建与回收流程、垃圾回收器(Serial、CMS、G1、ZGC)对比分析、常见内存泄漏与性能瓶颈排查,以及 JVM 参数调优与监控工具(jstat、jmap、jvisualvm)的实战使用。通过真实案例,帮助学习者掌握 Java 应用在生产环境中的性能分析与优化能力。

0

2026.01.20

热门下载

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

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
PostgreSQL 教程
PostgreSQL 教程

共48课时 | 7.5万人学习

Git 教程
Git 教程

共21课时 | 2.8万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号