找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
广告投放联系QQ68610888
查看: 27662|回复: 70

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

[复制链接]
发表于 2006-12-12 22:09 | 显示全部楼层 |阅读模式
最新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

[ 本帖最后由 ekinmagic 于 2007-3-9 18:38 编辑 ]

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×
我的恩山、我的无线 The best wifi forum is right here.
发表于 2006-12-13 13:20 | 显示全部楼层
这个脚本我看好像 是对拨号方式用的

之前的版本我没有使用过,看见论坛上有一个脚本生成器,但有些问题,
1、生成脚本太大无法保存在防火墙命令中。
2、好像生成的脚本只能大家共享一个限速带宽,不能没ip一个带宽。

楼主之 0.3用过后效果非常理想,达到所要的目的。谢谢楼主!!!
中间也碰到过一些问题,和楼主同过电话后问题解决!!!!
问题是
楼主中使用之单位kbps(千位)是KB(千字节)的意思,这一点一定注意
例如:你的上行总带宽为512kbps ,在这里要填为up=52kbps
           你的下行总带宽为2048kbps,在这里要填为up=230kbps
后面的类同

[ 本帖最后由 jiuweiljp 于 2007-3-11 11:13 编辑 ]
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

 楼主| 发表于 2006-12-13 21:15 | 显示全部楼层
是的! 只要把ppp0改为eth1就OK了
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

发表于 2006-12-14 13:41 | 显示全部楼层
怎么使用保存在启动命令中吗?
清写一个使用方法的教程,谢谢
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

头像被屏蔽
发表于 2006-12-20 09:17 | 显示全部楼层
好象没啥效果呀!
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

 楼主| 发表于 2006-12-20 18:45 | 显示全部楼层
原帖由 hotwjp 于 2006-12-20 09:17 发表
好象没啥效果呀!


要结合自己的实际情况去修改才能用的!
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

 楼主| 发表于 2006-12-20 22:05 | 显示全部楼层
原帖由 jiuweiljp 于 2006-12-14 13:41 发表
怎么使用保存在启动命令中吗?
清写一个使用方法的教程,谢谢


迟些我再修改一下代码 再发个详细教程吧
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

 楼主| 发表于 2006-12-21 18:52 | 显示全部楼层
0.2版本!  有问题大家提出 我再去修改!新版本增加了参数设置方便修改!
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

发表于 2006-12-21 20:17 | 显示全部楼层
详细说明一下吧。你这样写。可能的问题的
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

 楼主| 发表于 2006-12-21 20:40 | 显示全部楼层
原帖由 88djy 于 2006-12-21 20:17 发表
详细说明一下吧。你这样写。可能的问题的

有什么问题呢?  请指点~~ 谢谢
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

发表于 2006-12-22 09:20 | 显示全部楼层
比上一个版本详细,希望继续努力.顶一下!!!
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

发表于 2006-12-27 23:25 | 显示全部楼层

回复 #11 jiuweiljp 的帖子

好象不成功哦。给个简单点的比如就只限制192.168.1.288 的下行速度为 30Kbits 上行速度为15Kbits 的命令?
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

发表于 2006-12-28 18:59 | 显示全部楼层
好象不成功哦。给个简单点的比如就只限制192.168.1.288 的下行速度为 30Kbits 上行速度为15Kbits 的命令?
请睇iptable说明
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

发表于 2006-12-29 01:36 | 显示全部楼层

回复 #13 88djy 的帖子

笔误,是192.168.1.188
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

发表于 2006-12-29 01:37 | 显示全部楼层

回复 #13 88djy 的帖子

睇过iptable说明,但好象还是不行,自己是没有办法搞定了。
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2024-4-19 21:10

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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

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