LINUX中IPTABLES和TC对端口的带宽限制

不管是iptables还是tc(traffic control)功能都很强大,都是与网络相关的工具,那么我们就利用这两个工具来对端口进行带宽的限制. 1.使用命令ifconfig查看服务器上的网卡信息,比如网卡eth0是用来对外的网络,也就是用户通过该网卡连接到系统,那么我们就对这个网卡进行带宽的限制
ifconfig
2.建立eth0队列
tc qdisc add dev eth0 root handle 1: htb default 20
命令解释:将一个htb队列绑定在eth0上,编号为1:0,默认归类是 20 3.建立跟分类
tc class add dev eth0 parent 1:0 calssid 1:1 htb  rate 3Mbit
命令解释:在队列1:0上创建根分类1:1 限速,类别htb,限速3Mbit 4.创建分类
tc class add dev eth0 parent 1:1 classid 1:20 htb rate 2Mbit ceil 3Mbit
以根分类1:1为父类创建分类1:20 ,类别为htb 限速 1Mbit 最大3Mbit(htb可借用其它类带宽) 5.添加公平队列
tc qdisc add dev eth0 parent 1:20 handle 20: sfq perturb 10
命令解释:sfq是公平队列 ,防止一个会话占用全部带宽 6.创建分类过滤器
tc filter add dev eth0 parent 1:20 protocol ip u32 match ip sport 8080 0xffff classid 1:20
命令解释:以分类1:20为父类创建编号为1:20的过滤器 ,加载u32模块,指定端口为8080 到此为止带宽就限制住了,最大带宽为3Mbit,也就是200多k的下载速度。 7.删除tc队列
tc qdisc del dev eth0 root
把建立好的队列删除,带宽不再限制。

版权声明:本文为xinyulou原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。