Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1370577
  • 博文数量: 244
  • 博客积分: 10311
  • 博客等级: 上将
  • 技术积分: 3341
  • 用 户 组: 普通用户
  • 注册时间: 2008-10-14 21:50
文章分类

全部博文(244)

文章存档

2013年(6)

2012年(5)

2011年(16)

2010年(11)

2009年(172)

2008年(34)

分类: 网络与安全

2012-01-13 15:18:41

TC+iptables限速脚本

tc qdisc del dev eth0 root
tc qdisc add dev eth0 root handle 100: cbq bandwidth 5Mbit avpkt 1000
tc class add dev eth0 parent 100:0 classid 100:1 cbq bandwidth 5Mbit rate 5Mbit allot 1514 weight 2Kbit prio 8 maxburst 8 avpkt 1000 bounded
tc class add dev eth0 parent 100:1 classid 100:2 cbq bandwidth 5Mbit rate 512Kbit allot 1513 weight 1Mbit prio 5 maxburst 8 avpkt 1000 bounded
tc qdisc add dev eth0 parent 100:2 sfq quantum 1514b perturb 15
tc filter add dev eth0 parent 100:0 protocol ip prio 25 u32 match ip dst 10.0.0.0/24 flowid 100:2

WRT54G_V2破解32M内存从DD-WRT升级到Tomato路由器上下行限速脚本

适用于DD-WRT、TOMATO(没测试过),具体情况自行修改。
DD-WRT使用方法:管理——>诊断——>复制到命令框——>保存防火墙命令。删除方法为命令框不要填入任务东西,直接保存防火墙命令即可。
PS:脚本里面的kbps非服务提供商所说的kbps。这里的kbps=kb。另外,只能对网线接入的用户起作用,无线接入无效。

#!/bin/sh
# Coyote local command init script

# 定义进出设备(如果不是ADSL拨号用户可以把ppp0改为eth1)
ODEV="ppp0"
IDEV="eth0"

# 定义总的上下带宽
UP="60kbps"
DOWN="256kbps"

# 定义每个受限制的IP上下带宽
UPLOAD="10kbps"
DOWNLOAD="100kbps"

# 定义内网IP段
INET="192.168.1."

# 定义限制的IP范围
IPS="4"
IPE="5"

# 定义限制的IP范围以外的共享速度outdown为下行outup为上行
outdown="10kbps"
outup="10kbps"

#以下部分无须修改 ~~~~~~~~~~~~~~~~~~
# 清除 ppp0 eth0 所有队列规则
tc qdisc del dev $ODEV root 2>/dev/null
tc qdisc del dev $IDEV root 2>/dev/null

# 定义最顶层(根)队列规则,并指定 default 类别编号
tc qdisc add dev $ODEV root handle 10: htb default 2254
tc qdisc add dev $IDEV root handle 10: htb default 2254

# 定义第一层的 10:1 类别 (上行/下行 总频宽)
tc class add dev $ODEV parent 10: classid 10:1 htb rate $UP ceil $UP
tc class add dev $IDEV parent 10: classid 10:1 htb rate $DOWN ceil $DOWN
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

#定义特殊IP按实际添加和修改(如使用经常BT的的用户或自己)
#例如 这里把自己用的192.168.1.2 设置为下行200k上行20k,还可以按实际增加或删除下面五行
NIP="2"
NIPDOWN="200kbps"
NIPUP="20kbps"
tc class add dev $ODEV parent 10:1 classid 10:2$NIP htb rate $NIPUP ceil $NIPUP prio 1
tc class add dev $IDEV parent 10:1 classid 10:2$NIP htb rate $NIPDOWN ceil $NIPDOWN prio 1

#经常BT 的192.168.1.4设置下行50k 上行8k 如果不需要可以删除下面五行
NIP="4"
NIPDOWN="50kbps"
NIPUP="8kbps"
tc class add dev $ODEV parent 10:1 classid 10:2$NIP htb rate $NIPUP ceil $NIPUP prio 1
tc class add dev $IDEV parent 10:1 classid 10:2$NIP htb rate $NIPDOWN ceil $NIPDOWN prio 1
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

#以下部分无须修改 ~~~~~~~~~~~~~~~~~~~~
# rate 保证频宽,ceil 最大频宽,prio 优先权
i=$IPS;
while [ $i -le $IPE ]
do
tc class add dev $ODEV parent 10:1 classid 10:2$i htb rate $UPLOAD ceil $UPLOAD prio 1
tc qdisc add dev $ODEV parent 10:2$i handle 100$i: pfifo
tc filter add dev $ODEV parent 10: protocol ip prio 100 handle 2$i fw classid 10:2$i
tc class add dev $IDEV parent 10:1 classid 10:2$i htb rate $DOWNLOAD ceil $DOWNLOAD prio 1
tc qdisc add dev $IDEV parent 10:2$i handle 100$i: pfifo
tc filter add dev $IDEV parent 10: protocol ip prio 100 handle 2$i fw classid 10:2$i
iptables -t mangle -A PREROUTING -s $INET$i -j MARK --set-mark 2$i
iptables -t mangle -A POSTROUTING -d $INET$i -j MARK --set-mark 2$i
i=`expr $i + 1`
done

#定义default 类别编的上行 (上面没定义带宽的IP上行速度)
tc class add dev $ODEV parent 10:1 classid 10:2254 htb rate $outup ceil $outup prio 1
tc qdisc add dev $ODEV parent 10:2254 handle 100254: pfifo
tc filter add dev $ODEV parent 10: protocol ip prio 100 handle 2254 fw classid 10:2254

#定义default 类别编的下行 (上面没定义带宽的IP下行速度)
tc class add dev $IDEV parent 10:1 classid 10:2254 htb rate $outdown ceil $outdown prio 1
tc qdisc add dev $IDEV parent 10:2254 handle 100254: pfifo
tc filter add dev $IDEV parent 10: protocol ip prio 100 handle 2254 fw classid 10:2254

 

阅读(5647) | 评论(2) | 转发(0) |
给主人留下些什么吧!~~

qianguozheng2014-08-14 14:42:51

最后定义上行下行的地方怎么一样啊?

qianguozheng2014-08-14 14:42:45

最后定义上行下行的地方怎么一样啊?