终于搞定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
|
|