赛迪网 > IT技术 Linux > 系统管理
  IT资讯搜索
 
IT产品搜索
[程序开发][网管世界][网络安全][数据库技术]
[操作系统][嘉宾聊天·在线访谈][活动集锦]
[精彩专题][Symantec专区][订阅IT技术周刊]
[开发论坛][网管论坛][安全论坛][数据库论坛]
[操作系统论坛][Sybase专区][IBM dW技术专区]
[病毒求助][病毒与漏洞播报][文档·源码下载]

TC+IPTables实现下载和上传带宽限制脚本

发布时间:2007.12.06 06:22     来源:赛迪网    作者:sixth

每个IP单独限制,好随时修改。如果是用拨号上网的,请把以下内容加到/etc/ppp/ip-up.local中,否则断线重拨后会没有上传限制,对BT光限制下载是不够的。

#!/bin/bash

#

# zyx@zyx.2288.org

#

# 定义上下带宽

# 注意是 Kbit

DOWNLOAD=800Kbit

UPLOAD=160Kbit

# 定义内网IP段

INET=192.168.0.

# 定义限制的IP范围

IPS=1

IPE=253

# 定义本服务器IP

ServerIP=254

# 定义进出设备

IDEV=eth0

ODEV=ppp0

#

#

#

/sbin/tc qdisc del dev $IDEV root handle 10:

/sbin/tc qdisc del dev $ODEV root handle 20:

#

/sbin/tc qdisc add dev $IDEV root handle 10: cbq bandwidth 100Mbit avpkt 1000

/sbin/tc qdisc add dev $ODEV root handle 20: cbq bandwidth 1Mbit avpkt 1000

#

/sbin/tc class add dev $IDEV parent 10:0 classid 10:1 cbq bandwidth 100Mbit rate 100Mbit allot 1514 weight 1Mbit prio 8 maxburst 20 avpkt 1000

/sbin/tc class add dev $ODEV parent 20:0 classid 20:1 cbq bandwidth 1Mbit rate 1Mbit allot 1514 weight 10Kbit prio 8 maxburst 20 avpkt 1000

#

# 不限制内网从本服务器下载。

# 注意如本服务器上有代理,用户可通过代理绕过带宽限制,

# 可取消以下三句限制从本服务器下载。

/sbin/tc class add dev $IDEV parent 10:1 classid 10:10 cbq bandwidth 100Mbit rate 95Mbit allot 1514 weight 20Kbit prio 5 maxburst 20 avpkt 1000 bounded

/sbin/tc qdisc add dev $IDEV parent 10:10 sfq quantum 1514b perturb 15

/sbin/tc filter add dev $IDEV parent 10:0 protocol ip prio 50 u32 match ip src $INET$ServerIP flowid 10:10

#

#限制下载速度

COUNTER=$IPS

while [ $COUNTER -le $IPE ]

do

# 以下三句限制各IP的下载带宽

/sbin/tc class add dev $IDEV parent 10:1 classid 10:1$COUNTER cbq bandwidth 100Mbit rate $DOWNLOAD allot 1514 weight 20Kbit prio 5 maxburst 20 avpkt 1000 bounded

/sbin/tc qdisc add dev $IDEV parent 10:1$COUNTER sfq quantum 1514b perturb 15

/sbin/tc filter add dev $IDEV parent 10:0 protocol ip prio 100 u32 match ip dst $INET$COUNTER flowid 10:1$COUNTER

COUNTER=` expr $COUNTER + 1 `

done

#

#限制上传速度

COUNTER=$IPS

while [ $COUNTER -le $IPE ]

do

# 以下三句限制各IP的上传带宽

/sbin/tc class add dev $ODEV parent 20:1 classid 20:1$COUNTER cbq bandwidth 1Mbit rate $UPLOAD allot 1514 weight 4Kbit prio 5 maxburst 20 avpkt 1000 bounded

/sbin/tc qdisc add dev $ODEV parent 20:1$COUNTER sfq quantum 1514b perturb 15

/sbin/tc filter add dev $ODEV parent 20:0 protocol ip prio 100 handle $COUNTER fw classid 20:1$COUNTER

COUNTER=` expr $COUNTER + 1 `

done

#特殊照顾的IP在以上范围的用户

NIP=78

#192.168.0.78 这家伙天天BT

ND=200Kbit

NU=50Kbit

/sbin/tc class change dev $IDEV parent 10:1 classid 10:1$NIP bandwidth 100Mbit rate $ND allot 1514 weight 20Kbit prio 5 maxburst 20 avpkt 1000 bounded

/sbin/tc class change dev $ODEV parent 20:1 classid 20:1$NIP cbq bandwidth 1Mbit rate $NU allot 1514 weight 4Kbit prio 5 maxburst 20 avpkt 1000 bounded

#

NIP=1

# 192.168.0.1 增加我自已的带宽

ND=1500Kbit

NU=500Kbit

/sbin/tc class change dev $IDEV parent 10:1 classid 10:1$NIP bandwidth 100Mbit rate $ND allot 1514 weight 20Kbit prio 5 maxburst 20 avpkt 1000 bounded

/sbin/tc class change dev $ODEV parent 20:1 classid 20:1$NIP cbq bandwidth 1Mbit rate $NU allot 1514 weight 4Kbit prio 5 maxburst 20 avpkt 1000 bounded

# ...................

#

#

# 修改防火墙,增加上传限制

COUNTER=$IPS

while [ $COUNTER -lt $IPE ]

do

iptables -t mangle -A PREROUTING -i $IDEV -s $INET$COUNTER -j MARK --set-mark $COUNTER

COUNTER=` expr $COUNTER + 1 `

done

# 这里是NAT

iptables -t nat -A POSTROUTING -o $EXTIF -s 192.168.0.0/24 -j MASQUERADE

(责任编辑:云子)


[ 发表评论 ] 字体[  ] [ 打印 ] [ 进入博客 ] [ 进入论坛 ]  [ 推荐给朋友 ]
  相关文章
· Linux新手的学习日记:用户管理详细解析 (12-05) · 关于Linux为什么最多能分4个扇区的解释 (12-05)
· Ubuntu 7.10 Linux系统安装RealPlayer10 (12-05) · Fedora Linux系统设置Audacious支持Ape (12-05)
· Fedora Linux中给X1250安装ATI 7.11驱动 (12-05) · Linux socket编程实例:echo服务器程序 (12-05)
· 关于Linux操作系统下RPM软件包的使用技巧 (12-05) · 为Linux操作系统下的文件 分配多个权限 (12-05)
· 新手学堂:Linux系统下的格式化分区Mkfs (12-05) · 使用Shell脚本来实现FTP的自动上传下载 (12-04)
  客户需求反馈表
* 姓  名:
更多资料  了解方案  认识厂商
* 单位名称:
* 联系电话:
* 电子邮件:
  赛迪推荐  
  手机·资费 ·新品·导购·评测·手机资费·宽带
手机搜索  诺基亚 N73 MOTO Z6
  IT产品 ·笔记本·台式机·服务器·打印·投影
IT产品搜索 
  IT技术 ·开发·网管·安全·数据库·操作系统
  信息化 ·热点·专题·访谈·周刊·方案案例
· 移动信息化市场方兴未艾 企业呼唤标准出台
· 如何把握企业价值差异 避免CRM与SCM脱节
· 齐看四大厂商的SaaS动态 ERP案例分析
· 通方期货CRM解决方案 方正电子公文系统
  IT博客 ·曾剑秋·项立刚·Java学习·网管
  IT技术论坛 ·开发·网管·安全·数据库·系统