找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
广告投放联系QQ68610888
查看: 6102|回复: 15

试用单IP限制上下行防火墙规则,欢迎讨论

[复制链接]
发表于 2008-5-24 00:55 | 显示全部楼层 |阅读模式
最新修改的单IP限制上下行防火墙规则0.3版本!(不用特别版也可以按IP限制流量)


最新0.3版本 简化了代码! 其中使用之单位kbps(千位)是KB(千字节)的意思
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
只谈技术、莫论政事!(点击见详情) | 恩山无线论坛欢迎您的来访,请互相尊重、友善交流,建议保持一颗平常心看待网友的评论,切勿过度反应。
 楼主| 发表于 2008-5-24 00:57 | 显示全部楼层
上面规则还不错,谢谢作者!

不过我用的时候发现我自己的IP 192。168。1。2也被限速了!
只谈技术、莫论政事!(点击见详情) | 恩山无线论坛欢迎您的来访,请互相尊重、友善交流,建议保持一颗平常心看待网友的评论,切勿过度反应。
 楼主| 发表于 2008-5-24 01:06 | 显示全部楼层
终于搞定了!因为我自己的IP不在定义IP范围内(我的是100-110),所以是未定义的,当然被限速了!


建议:主要限上传,ADSL上传带宽少。


另:我只针对100-110定义就觉得进入路由明显慢了,不知整段限速是什么后果?
只谈技术、莫论政事!(点击见详情) | 恩山无线论坛欢迎您的来访,请互相尊重、友善交流,建议保持一颗平常心看待网友的评论,切勿过度反应。
发表于 2008-5-24 08:13 | 显示全部楼层
对无线有效果吗????
只谈技术、莫论政事!(点击见详情) | 恩山无线论坛欢迎您的来访,请互相尊重、友善交流,建议保持一颗平常心看待网友的评论,切勿过度反应。
 楼主| 发表于 2008-5-25 00:57 | 显示全部楼层
现在没开无线,我主要应用在网吧,估计一样有的,因为我是对IP限速!
只谈技术、莫论政事!(点击见详情) | 恩山无线论坛欢迎您的来访,请互相尊重、友善交流,建议保持一颗平常心看待网友的评论,切勿过度反应。
发表于 2008-5-29 01:38 | 显示全部楼层
如何使用?把里面的代码全部复制吗?我很菜。请教我!
我使用的是DD-WRT V24
我想把192.168.1.80 192.168.1.90 192.168.1.100 192.168.1.101 分别限制上传,下载和连接数。请问应该如何打命令呢?
只谈技术、莫论政事!(点击见详情) | 恩山无线论坛欢迎您的来访,请互相尊重、友善交流,建议保持一颗平常心看待网友的评论,切勿过度反应。
 楼主| 发表于 2008-5-29 22:27 | 显示全部楼层
#  定义限制的IP范围(把你想限制的加入到下列IP段。
IPS="2"
IPE="110"

#定义特殊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.80设置下行50k  上行8k  如果不需要可以删除下面五行
NIP="80"
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
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
只谈技术、莫论政事!(点击见详情) | 恩山无线论坛欢迎您的来访,请互相尊重、友善交流,建议保持一颗平常心看待网友的评论,切勿过度反应。
发表于 2008-5-29 23:02 | 显示全部楼层
我想问下,如果我的路由器是无线客户端模式ppp0应该改成什么?
似乎对迅雷有没什么用啊,当然,我也只是用迅雷进行了检查

[ 本帖最后由 nowings 于 2008-5-30 08:36 编辑 ]
只谈技术、莫论政事!(点击见详情) | 恩山无线论坛欢迎您的来访,请互相尊重、友善交流,建议保持一颗平常心看待网友的评论,切勿过度反应。
发表于 2008-6-10 12:36 | 显示全部楼层

在我的路由器运行上出现问题

Linksys wrt 54g V2.2 刷DD-WRT v24 RC-5 (11/22/07) mini - build 8420

2M ADSL,客户端开启DHCP,Mac与IP静态帮定,IP地址:192.168.1.100~192.168.1.119,关闭QoS,TCP超时120秒,UDP超时120秒。

运行下述防火墙规则:

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

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

#  定义总的上下带宽
UP="52kbps"
DOWN="210kbps"

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

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

#  定义限制的IP范围
IPS="100"
IPE="119"

#  定义限制的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.100 设置为下行设置为200k上行20k,还可以按实际增加或删除下面五行

NIP="100"
NIPDOWN="100kbps"
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.110设置下行25k  上行8k  如果不需要可以删除下面五行
NIP="110"
NIPDOWN="25kbps"
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

问题如下:打开网页响应很慢,連打开192.168.1.1也非常慢,而且路由器上Internet指示灯狂闪,还导致路由器死机。

请教问题出在什么地方?

[ 本帖最后由 4go 于 2008-6-10 14:10 编辑 ]
只谈技术、莫论政事!(点击见详情) | 恩山无线论坛欢迎您的来访,请互相尊重、友善交流,建议保持一颗平常心看待网友的评论,切勿过度反应。
发表于 2008-6-10 13:40 | 显示全部楼层
我用了这个之后,路由都挂掉了,后面是靠TTL线搞好的
只谈技术、莫论政事!(点击见详情) | 恩山无线论坛欢迎您的来访,请互相尊重、友善交流,建议保持一颗平常心看待网友的评论,切勿过度反应。
发表于 2008-7-10 23:07 | 显示全部楼层
有人研究这个限速么?
只谈技术、莫论政事!(点击见详情) | 恩山无线论坛欢迎您的来访,请互相尊重、友善交流,建议保持一颗平常心看待网友的评论,切勿过度反应。
发表于 2008-7-11 23:13 | 显示全部楼层
这样会不会很麻烦,重启之后是不是就没用了?
只谈技术、莫论政事!(点击见详情) | 恩山无线论坛欢迎您的来访,请互相尊重、友善交流,建议保持一颗平常心看待网友的评论,切勿过度反应。
发表于 2008-8-13 07:11 | 显示全部楼层
使用了上面的代码 打开网页都好慢了

楼主 我想限制192.168.1.2,5上传在5k内下载不限制 2和149是无线的5是连lan口的
192.168.1.149无限制
其他网段ip限制UP2K DOWN2K
要怎么改啊  


#!/bin/sh

ODEV="ppp0"
IDEV="eth0"
   
UP="52kbps"
DOWN="230kbps"

UPLOAD="12kbps"
DOWNLOAD="230kbps"
  
INET="192.168.1."

IPS="2"
IPE="7"

outdown="2kbps"
outup="2kbps"

tc qdisc del dev $ODEV root 2>/dev/null
tc qdisc del dev $IDEV root 2>/dev/null
tc qdisc add dev $ODEV root handle 10: htb default 2254
tc qdisc add dev $IDEV root handle 10: htb default 2254
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

NIP="149"
NIPDOWN="230kbps"
NIPUP="52kbps"
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

NIP="2"
NIPDOWN="230kbps"
NIPUP="5kbps"
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
NIP="5"
NIPDOWN="230kbps"
NIPUP="5kbps"
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

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

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
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
只谈技术、莫论政事!(点击见详情) | 恩山无线论坛欢迎您的来访,请互相尊重、友善交流,建议保持一颗平常心看待网友的评论,切勿过度反应。
发表于 2008-8-14 01:54 | 显示全部楼层
?
只谈技术、莫论政事!(点击见详情) | 恩山无线论坛欢迎您的来访,请互相尊重、友善交流,建议保持一颗平常心看待网友的评论,切勿过度反应。
发表于 2008-8-15 07:35 | 显示全部楼层
?     
只谈技术、莫论政事!(点击见详情) | 恩山无线论坛欢迎您的来访,请互相尊重、友善交流,建议保持一颗平常心看待网友的评论,切勿过度反应。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

欢迎大家光临恩山无线论坛上一条 /1 下一条

有疑问请添加管理员QQ86788181|手机版|小黑屋|Archiver|恩山无线论坛(常州市恩山计算机开发有限公司版权所有) ( 苏ICP备05084872号 )

GMT+8, 2024-9-28 15:18

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

| 江苏省互联网有害信息举报中心 举报信箱:js12377 | @jischina.com.cn 举报电话:025-88802724 本站不良内容举报信箱:68610888@qq.com

快速回复 返回顶部 返回列表