linux如何限流
linux如何限流详细介绍
在 Linux 系统中,可通过不同工具来实现限流,以下为你介绍几种常见方法:
1. 使用
tc(Traffic Control)工具
tc是 Linux 内核自带的强大流量控制工具,能对网络接口的入站和出站流量进行精细控制。
步骤
- 添加根队列规则:给网络接口添加根队列规则,一般选用
htb(Hierarchical Token Bucket)队列规则。
bash
tc qdisc dev eth0 root handle : htb default
此命令是给eth0网络接口添加htb根队列规则,默认类为 10。
- 创建类:创建一个或多个类,每个类可设置不同的带宽限制。
bash
tc class dev eth0 parent : classid :1 htb rate 10mbit ceil 10mbit
该命令创建了一个 ID 为 1:1 的类,其带宽限制为 10Mbit/s。
- 添加过滤器:将特定的流量导向到对应的类。
bash
tc filter dev eth0 protocol parent : prio u32 match dst .1.100 flowid :1
此命令会把目标 IP 为192.168.1.100的流量导向到类 1:1。
2. 使用
wondershaper工具
wondershaper是一个简化tc操作的脚本,能更方便地进行带宽限制。
步骤
- 安装
wondershaper:
bash
wondershaper
- 设置带宽限制:
bash
wondershaper eth0
此命令将eth0接口的上传和下载带宽都限制为 10000Kbit/s。
- 移除带宽限制:
bash
wondershaper eth0
3. 使用
trickle工具
trickle主要用于限制单个进程的网络带宽。
步骤
- 安装
trickle:
bash
trickle
- 限制进程带宽:
bash
trickle http://example.com/file.zip
912trickle http://example.com/file.zip
该命令对wget进程进行限制,上传带宽为 100Kbit/s,下载带宽为 200Kbit/s。