linux网卡流量限速wondershaper

### 使用 `tc` 命令实现 Linux 系统中的网卡流量控制和限速 #### 清除现有 QDisc 配置 为了确保新设置不会受到已有配置的影响,在应用新的流量控制策略之前,建议清除现有的队列纪律 (QDisc) 设置: ```bash sudo tc qdisc del dev eth0 root ``` 这条命令会删除指定网络接口(这里是 `eth0`)上的根队列纪律[^3]。 #### 添加 HTB 根队列纪律 HTB 是一种常用的排队机制,适合用于实施带宽限制。下面的例子展示了如何创建一个基于 HTB 的根队列纪律,并设定默认类: ```bash sudo tc qdisc add dev eth0 root handle 1: htb default 10 ``` 此操作会在设备 `eth0` 上安装一个新的 HTB 类型的 QDisc 实例,其句柄编号为 `1:`,并将所有未分类的数据包分配给类 ID 为 `1:10` 的子类[^1]。 #### 定义速率限制的类 接下来定义具体的速率限制条件。这里以最大速率为 1Mbps 和突发量为 15Kbps 来举例说明: ```bash sudo tc class add dev eth0 parent 1: classid 1:1 htb rate 1mbit burst 15k ``` 上述指令设置了父节点为 `1:` 的 HTB 类,该类具有唯一标识符 `1:1`,并规定了数据传输的最大速度不超过每秒 1Mb,允许短时间内的瞬时峰值达到最高 15kbps。 #### 应用过滤器来匹配特定流量 为了让某些类型的流量遵循刚才建立的速度规则,可以利用 u32 过滤器来进行精确匹配。例如,如果希望所有的 TCP 流量都受限于上面提到的 1Mbps,则可执行如下命令: ```bash sudo tc filter add dev eth0 protocol ip parent 1: prio 1 u32 match ip dst 0.0.0.0/0 flowid 1:1 ``` 这段脚本指定了目标 IP 地址范围 (`dst`) 可以为任何地址 `/0`,意味着所有传出方向的目标都将被纳入到这个速率管理之下;而 `flowid 1:1` 表明这些符合条件的数据流应该按照前面所设的 `classid 1:1` 下的标准处理。 通过以上步骤就可以成功地在 Linux 中使用 `tc` 工具完成对选定网卡流量管理和限速工作。需要注意的是实际部署过程中可能还需要考虑更多细节因素,比如不同的协议支持、更复杂的多级层次结构设计等。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值