作者:lishicun 1、下载linux 2.4.31内核,解开 2、从http://ebtables.sourceforge.net/ 下载ebtables-brnf内核补丁,用diff命令为内核打上补丁 3、下载iptables最新的内核版本和用户端版本,安装好 4、从www.ipp2p.org 下载ipp2p软件包,编译,安装 5、编译linux内核,注意要把iptables, QoS的相关选项打开,最好把所有的相关项都编译成模块。 6、编写如下的脚本 #!/bin/sh # the modules used here are: cls_fw sch_htb ipt_ipp2p ipt_MARK ipt_mark ipt_CONNMARK iptable_mangle iptable_filter ip_tables iptables -F -t mangle iptables -A PREROUTING -t mangle -p tcp -j CONNMARK --restore-mark iptables -A PREROUTING -t mangle -p tcp -m mark ! --mark 0 -j ACCEPT iptables -A PREROUTING -t mangle -p tcp -m ipp2p --ipp2p -j MARK --set-mark 1 iptables -A PREROUTING -t mangle -p tcp -m mark --mark 1 -j CONNMARK --save-mark tc class del dev eth0 classid 1:12 tc class del dev eth0 classid 1:10 tc class del dev eth0 classid 1:1 tc qdisc del dev eth0 root tc qdisc add dev eth0 root handle 1: htb default 12 tc class add dev eth0 parent 1: classid 1:1 htb rate 1000mbit ceil 1000mbit tc class add dev eth0 parent 1:1 classid 1:10 htb rate 100kbit # ceil 100kbps # tc class add dev eth0 parent 1:1 classid 1:11 htb rate 10kbps ceil 100kbps tc class add dev eth0 parent 1:1 classid 1:12 htb rate 1000mbit ceil 1000mbit tc qdisc add dev eth0 parent 1:10 handle 20: sfq perturb 10 # pfifo limit 5 # tc qdisc add dev eth0 parent 1:11 handle 30: pfifo limit 5 tc qdisc add dev eth0 parent 1:12 handle 40: sfq perturb 10 tc filter add dev eth0 parent 1:0 protocol ip prio 4 handle 1 fw classid 1:10 #tc filter add dev eth1 parent 2:0 protocol ip prio 4 handle 1 fw classid 2:11 在这个脚本中,tc class add dev eth0 parent 1:1 classid 1:10 htb rate 100kbit 这一句最为重要,其中的100kbit表示把流速限制在100kbit。 |
转载于:https://blog.51cto.com/enchen/179424