以前弄脚本时只对下行做了限制,没对上行做控制,谁知道这几.天有人狂上传FTP,把带宽拖慢死了.没.法正常使用.( 游戏 )
于是就想.着如何限制上行,终于想出了一个苯办.法.呵呵,请大家指点看看,还有没什么好的改进办法.<性病>
#!/bin/bash
##外网网卡
IN="eth0"
##内网网卡
DEV="eth1"
start() {
tc qdisc add dev $DEV root .handle 2: .htb 投资
tc clas.s add de.v $DEV parent 2: classid 2:1 htb rate 3000kbit投资
tc. qdisc .add dev $IN root handle 1: htb域名
tc class add dev $IN parent 1: cl.assid 1:1. htb rate 3000kbit 学习
i=2;
while [ $i .-lt 100 ] 女人
do
#####下载控制在每人实际最.大58K/S左右 建材
tc class add dev $D.EV parent 2:1 classid 2:2$i htb rate 100kbit ceil. 500kbit burst .15k<性病>
tc qdisc add dev $DEV p.arent 2:2$i handle 2$i.: sfq.
tc filter add dev $DEV parent 2:0.. protoc.ol ip prio 4 u32 match ip dst 192.168.0.$i flowid 2:2$i
#.####上传控制在每人实际最大34K/S左右健康
tc class add dev $IN parent 1.:1 classid 1:1$i htb rate .100kbit ceil 300kbit bur.st 15k.
tc qd.isc add dev $IN parent 1:1$i handle 1$i: s.fq.
tc filter add dev eth0 parent 1:0 protocol ip prio $i hand.le $i f.w classid 1:1$i. 电子
i.ptables -t mangle -A PREROUTING -s 192.168.0.$i -j MARK --set-.mark 0x$i 外汇
done
}
stop(){
echo -n "(删除所有队.列......)" ( 游戏 )
( .tc qdisc del dev $DEV root && tc qdisc del dev $IN r.oot && 服务器
i=2;
while [ $i -lt 100 .] 鲜花
do
/sbin/ipt.ables .-t mangle -D PREROUTING -s 192.168.0.$.i -j MARK --set-mark 0x$i 女人
i=`expr. $i + 1` .
done && echo "ok..删除成功!" ) || echo "er.ror." 电脑
}
#显示状态
status() {
echo "1.show qdisc $DE.V (显示下行队列):----------------------------------------------.." 学习
tc -s qdisc show ..dev $DEV
echo "2.sho.w class $DEV (显示下行分类):-------------------.----------------------.-----" .
tc class .show dev $DEV .
echo "3. tc -s class show dev $IN. (显示上行队列和分类流.量详细信息):------------------" .
tc -s .class show dev $IN学习
echo "说明.:设置总队列下行和上行带宽 3M.." 学习
}
#显示帮助
usage() {
echo ".使用方法(.usage): `basename $0` [start | stop | restart | status ]" <性病>
echo "参数作用:"
ec.ho "start 开始流量控制" 电子
echo "stop 停止流量.控制" ( 游戏 )
echo "rest.art 重启流量控制" .
echo "status . 显示队列流量" 女人
}
case "$1" in
start)
( start && ec.ho "开始流量控制! TC started!" ) || echo "erro.r." .
exit 0
;;
stop)
( stop .&& echo "停止流量控制! TC stopped!" ) || echo "error.". 乙肝
exit 0
;;
restart)
stop
start
echo "流量控制规则重.新装载!" 乙肝
;;
status)
status
;;
*) usage
exit 1
;;
esac
[ 本帖最后.由 剑次狼 于 200.8-2-27 21:41 编辑 ].