在Linux系统中,tc(TrafficControl)QoS常用命令简介
- 开源代码
- 2025-09-09 01:36:01

在 Linux 系统中,tc(Traffic Control)命令是一个强大的工具,用于配置和管理网络流量控制。以下是 tc 命令的常用功能和基本用法:
1. 查看当前队列规则使用以下命令查看指定网络接口上的队列规则:
tc qdisc show dev eth0这里的 eth0 是网络接口名称,可以替换为实际的接口名称[1][2]。
2. 添加队列规则
添加队列规则以管理流量,例如使用 HTB(Hierarchical Token Bucket):
tc qdisc add dev eth0 root handle 1: htb default 11 root 表示这是根队列。handle 1: 定义了队列的句柄。htb 指定调度算法为 HTB。default 11 表示未匹配流量的默认分类[1][2][3]。3. 删除队列规则
删除某个网络接口上的根队列规则:
tc qdisc del dev eth0 root这将清除所有与该接口相关的流量控制规则[1][3]。
4. 创建类
为队列创建分类规则,并设置带宽限制:
tc class add dev eth0 parent 1: classid 1:1 htb rate 10mbps parent 1: 指定父级队列(如根队列)。classid 1:1 定义类的 ID。rate 10mbps 设置带宽限制为 10 Mbps[1][2][4]。5. 添加过滤器
过滤器用于将数据包分配到特定的类。例如,将目标端口为 80 的流量分配到类 1:1:
tc filter add dev eth0 protocol ip parent 1:0 prio 1 u32 \ match ip dport 80 0xffff flowid 1:1 protocol ip 指定协议类型。match ip dport 80 匹配目标端口为 80 的数据包。flowid 1:1 将匹配的数据包分配到类 1:1[1][2].6. 模拟网络延迟和丢包 设置延迟: tc qdisc add dev eth0 root netem delay 100ms 为所有流量添加 100 毫秒延迟。 设置丢包率: tc qdisc add dev eth0 root netem loss 10% 模拟丢包率为 10%[3][6].
7. 列出和监控策略 列出已有策略: tc -s qdisc ls dev eth0 实时监控流量和状态: tc -s monitor
这些命令可以帮助管理员查看当前配置和实时流量信息[3][4].
8. 示例:限制带宽
以下是一个完整的带宽限制示例,限制网卡 eth0 的带宽为 500 Kbps:
# 添加根队列规则 tc qdisc add dev eth0 root handle 1: tbf rate 500Kbit latency 50ms burst 15kb # 查看配置 tc -s qdisc ls dev eth0 # 删除规则(解除限制) tc qdisc del dev eth0 root这里使用了 TBF(Token Bucket Filter)算法,适合简单的速率控制[3].
通过以上命令,您可以灵活地使用 tc 来实现带宽限制、流量分类、延迟模拟等功能,以满足不同的网络管理需求。
Citations: [1] my.oschina.net/emacs_8759915/blog/17197682 [2] blogs /lushichao/p/17477558.html [3] blog.csdn.net/wsuyixing/article/details/125812823 [4] blog.csdn.net/mimiduck/article/details/111184980 [5] catbro666.github.io/posts/357ad3ec/ [6] blogs /sunsky303/p/14250452.html [7] .strickland.cloud/post/2 [8] arthurchiao.github.io/blog/lartc-qdisc-zh/
在Linux系统中,tc(TrafficControl)QoS常用命令简介由讯客互联开源代码栏目发布,感谢您对讯客互联的认可,以及对我们原创作品以及文章的青睐,非常欢迎各位朋友分享到个人网站或者朋友圈,但转载请说明文章出处“在Linux系统中,tc(TrafficControl)QoS常用命令简介”