假设对80和8080端口限速
1、建立eth0队列(根据自己环境定)
tc qdisc add dev eth0 root handle 1: htb default 20
命令解释:将一个htb队列绑定在eth0上,编号为1:0,默认归类是 20
2、建立根分类
tc class add dev eth0 parent 1:0 calssid 1:1 htb rate 3Mbit
命令解释:在队列1:0上创建根分类1:1 限速,类别htb,限速3Mbit
3、创建分类
tc class add dev eth0 parent 1:1 classid 1:10 htb rate 1Mbit ceil 3Mbit
tc class add dev eth0 parent 1:1 classid 1:20 htb rate 2Mbit ceil 3Mbit
命令解释:第一条 以根分类1:1为父类创建分类1:20 ,类别为htb 限速 1Mbit 最大3Mbit(htb可借用其它类带宽)
第二条参考第一条解释
4、添加公平队列
tc qdisc add dev eth0 parent 1:10 handle 10: sfq perturb 10
tc qdisc add dev eth0 parent 1:20 handle 20: sfq perturb 10
命令解释:sfq是公平队列 ,防止一个会话占用全部带宽
5、创建分类过滤器
Tc filter add dev eth0 parent 1:10 protocol ip u32 match ip sport 80 0xffff classid 1:10
Tc filter add dev eth0 parent 1:20 protocol ip u32 match ip sport 8080 0xffff classid 1:20
命令解释: 第一条 以分类1:10为父类创建编号为1:10的过滤器 ,加载u32模块,指定端口为80
关于u32模块参考:
http://tldp.org/HOWTO/Adv-Routing-HOWTO/lartc.adv-filter.u32.html
http://linux.chinaunix.net/techdoc/net/2008/01/22/977219.shtml
6、删除tc队列
tc qdisc del dev eth0 root