分享

搞定DD-WRT 控制网速问题

 coolbee 2009-08-25

终于搞定DD-WRT 控制网速问题。。

我这网速虽然是2M的,别人一下东西,打开网页就慢的要命。没办法在网上找封bt,迅雷的设置。试了,都不好使。靠,一看,原来别人用的是超级旋风。用了QoS也不定要。网速照样慢。。

再用。iptables -I FORWARD -p tcp -s 192.168.1.X -m connlimit --connlimit-above 50 -j REJECT;

iptables -I INPUT -p tcp -s 192.168.1.X -m connlimit --connlimit-above 50 -j REJECT;

这个命令。现在怎么竟然不好用。用了IP链接还是原来那样。限制不了在50内。。

没办法只能用TC+iptables。搞定了。

我把192.168.1.200,201两个地址开放,其他地址全部限制在下载速度60K/S左右.

自己用其他的IP地址试了一下。只能维持个上网的速度。

那两个IP地址就爽了。干什么就很快。哈哈。

下面是命令行:

#!/bin/sh

# Download

tc qdisc del dev br0 root 2>/dev/null

tc qdisc add dev br0 root handle 2:0 htb default 100

tc class add dev br0 parent 2:0 classid 2:1 htb rate 10000kbit burst 1000k

tc class add dev br0 parent 2:1 classid 2:2 htb rate 720kbit ceil 1200kbit burst 8k prio 1

tc class add dev br0 parent 2:2 classid 2:20 htb rate 10000kbit ceil 10000kbit burst 6k prio 2

tc class add dev br0 parent 2:2 classid 2:25 htb rate 500kbit ceil 500kbit burst 6k prio 5

tc qdisc add dev br0 parent 2:20 handle 20: sfq perturb 10

tc qdisc add dev br0 parent 2:25 handle 25: sfq perturb 10

tc filter add dev br0 parent 2:0 protocol ip prio 1 handle 25 fw classid 2:25

tc filter add dev br0 parent 2:0 protocol ip prio 9 handle 20 fw classid 2:20

# Mark

iptables -t mangle -A POSTROUTING -d 192.168.1.2/31 -j MARK --set-mark 25

iptables -t mangle -A POSTROUTING -d 192.168.1.4/30 -j MARK --set-mark 25

iptables -t mangle -A POSTROUTING -d 192.168.1.8/29 -j MARK --set-mark 25

iptables -t mangle -A POSTROUTING -d 192.168.1.16/28 -j MARK --set-mark 25

iptables -t mangle -A POSTROUTING -d 192.168.1.32/27 -j MARK --set-mark 25

iptables -t mangle -A POSTROUTING -d 192.168.1.64/26 -j MARK --set-mark 25

iptables -t mangle -A POSTROUTING -d 192.168.1.128/26 -j MARK --set-mark 25

iptables -t mangle -A POSTROUTING -d 192.168.1.192/29 -j MARK --set-mark 25

iptables -t mangle -A POSTROUTING -d 192.168.1.200/32 -j MARK --set-mark 20

iptables -t mangle -A POSTROUTING -d 192.168.1.201/32 -j MARK --set-mark 20

iptables -t mangle -A POSTROUTING -d 192.168.1.205/32 -j MARK --set-mark 25

iptables -t mangle -A POSTROUTING -d 192.168.1.206/31 -j MARK --set-mark 25

iptables -t mangle -A POSTROUTING -d 192.168.1.208/28 -j MARK --set-mark 25

iptables -t mangle -A POSTROUTING -d 192.168.1.224/28 -j MARK --set-mark 25

iptables -t mangle -A POSTROUTING -d 192.168.1.240/29 -j MARK --set-mark 25

iptables -t mangle -A POSTROUTING -d 192.168.1.248/31 -j MARK --set-mark 25

 

最新修改的单IP限制上下行防火墙规则0.3版本!(不用特别版也可以按IP限制流量)

最新0.3版本 简化了代码!  
1.增加了定义限制的IP范围以外的共享速度 例如你路由分配了192.168.1.2~192.168.1.5 一共4个IP地址  但如果你有其他用户私自更改IP 或增加电脑 是192.168.1.6 ~192.168.1.254  这就属于定义限制的IP范围以外 的IP了 就可以利用这个去定义他们的共享速度!注意这个速度是共享的!
2.增加定义特殊IP 速度功能!   例如 你定义了192.168.1.2~192.168.1.5的每个IP速度下行100k  上行10k ! 但其中 192.168.1.2是我自己的! 谁还会那么傻限自己速呢! 呵呵 这就速度特殊IP了!  又或者某个IP 是BT狂人 需要把速度再降低一点! 这也属于特殊IP!


特殊IP可以按自己实际去增加 减少 或 完全不定义!
例如: 这是五行原始代码NIP 为IP号  NIPDOWN为下载速度 NIPUP为上行速度   最后两行无须修改  如果不需要定义特殊IP可以直接这五行代码删除!   
          如果需要增加可以复制这五行代码 粘贴到 前段代码的后面 ! 在按实际去修改 NIP  NIPDOWN  NIPUP这三个参数!
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

以下为0.3版本代码从#开始复制到结尾
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~





#!/bin/sh
# BY MAGIC 0.3 070213
# Coyote local command init script

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

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

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

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

#  定义限制的IP范围
IPS="2"
IPE="36"

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



#以下部分无须修改 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# 清除 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













































~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
以下为0.2版本



#!/bin/sh
# BY MAGIC 0.2
# Coyote local command init script

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

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

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

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

#  定义限制的IP范围
IPS="2"
IPE="30"

# 清除 ppp0 所有队列规则
tc qdisc del dev $ODEV root 2>/dev/null

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

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

# 定义192.168.1.2~192.168.1.29ip的上行速度
# 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
i=`expr $i + 1`
done

#定义default 类别编的上行 (上面没定义带宽的IP上行速度)
tc class add dev $ODEV parent 10:1 classid 10:2254 htb rate 5kbps ceil 5kbps 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




# QoS eth0 下载方面

# 清除 eth0所有队列规则
tc qdisc del dev $IDEV root 2>/dev/null

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

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

#定义192.168.1.2~192.168.1.2.29 IP的下行速度
# rate 保证频宽,ceil 最大频宽,prio 优先权
i=$IPS;
while [ $i -le $IPE ]
do
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
i=`expr $i + 1`
done

#定义default 类别编的下行 (上面没有定义带宽IP的下行速度)
tc class add dev $IDEV parent 10:1 classid 10:2254 htb rate 50kbps ceil 50kbps 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

#按IP 控制up 和 dwon
i=$IPS;
while [ $i -le $IPE ]
do
iptables -t mangle -A PREROUTING -s $INET$i -j MARK --set-mark 2$i
# downloads
iptables -t mangle -A POSTROUTING -d $INET$i -j MARK --set-mark 2$i
i=`expr $i + 1`
done

 

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多