当前位置: 首页 > news >正文

在 Linux 系统中,tc(Traffic Control) QoS 常用命令简介

在 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] https://my.oschina.net/emacs_8759915/blog/17197682
[2] https://www.cnblogs.com/lushichao/p/17477558.html
[3] https://blog.csdn.net/wsuyixing/article/details/125812823
[4] https://blog.csdn.net/mimiduck/article/details/111184980
[5] https://catbro666.github.io/posts/357ad3ec/
[6] https://www.cnblogs.com/sunsky303/p/14250452.html
[7] https://www.strickland.cloud/post/2
[8] https://arthurchiao.github.io/blog/lartc-qdisc-zh/

相关文章:

  • 总线-AXI
  • 二分之一车辆模型研究不同参数下车辆对地面的动载荷和动载系数
  • 每日一题——兑换零钱(一)
  • 【Linux】【进程】epoll内核实现总结+ET和LT模式内核实现方式
  • axios
  • AF3​​​​​​​ get_atom_coords函数解读
  • 火语言RPA--字符串内插入字符串
  • 适配器模式详解(Java)
  • . Unable to find a @SpringBootConfiguration(默认软件包中的 Spring Boot 应用程序)
  • 三、Unity基础(主要框架)
  • 撕碎QT面具(1):Tab Widget转到某个Tab页
  • 数据结构——顺序表与链表
  • 华为昇腾920b服务器部署DeepSeek翻车现场
  • ESP32鼠标驱动(ble hid device_demo)【ESP32指向鼠标】
  • 外贸订货系统的核心功能模块解析
  • 基于fastadmin快速搭建导航站和API接口站点系统源码
  • 深入剖析GC问题:如何有效判断与排查
  • DeepSeek专题:DeepSeek-V1核心知识点速览
  • 国内情智机器人:从“通情达理”到温暖陪伴的跨越
  • UDP通信开发
  • 国际奥委会举办研讨会,聚焦如何杜绝操纵比赛
  • 腾讯一季度营收增长13%,马化腾:战略性的AI投入将带来长期回报
  • 日本航空自卫队一架练习机在爱知县坠毁
  • 沧州制造展现硬核实力:管道装备支撑大国基建,核电锚栓实现国产
  • 四部门:强化汛期农业防灾减灾,奋力夺取粮食和农业丰收
  • 法治日报整版聚焦:儿童能否成为短视频主角?该如何监管?