使用TC工具针对端口的限速

假设对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

 

你可能感兴趣的:(端口)