首页 | 资讯动态 | linux基础 | 系统管理 | 网络管理 | 编程开发 | linux数据库 | 服务器技术 | linux相关 | linux认证 | 嵌入式 | 下载中心 | 专题 | linux招聘 | 镜像站
OKLinux中文技术站
·设为首页
·加入收藏
·联系我们
系统管理: 中文环境 系统管理 桌面应用 内核技术 | Linux基础: 基础入门 安装配置 常用命令 经验技巧 软件应用 | Linux数据库: Mysql Postgre Oracle DB2 Sybase other
网络管理: 网络安全 网络应用 Linux服务器 环境配置 黑客安全 | 编程开发: PHP CC++ Python Perl Shell 嵌入式开发 java jsp | PHP技术: PHP基础 PHP技巧 PHP应用 PHP文摘
搜索中心 Linux招聘 Linux专题 Apache | Linux相关: 硬件相关 Linux解决方案 Linux认证 企业应用 其它Unix | 相关下载: 资料下载 参考手册 开发工具 服务器类 软路由 其它
 技术搜索:
会员中心 注册会员 高级搜索  
  → 当前位置:首页>linux相关>企业应用>正文

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

http://www.oklinux.cn  2008-05-13  来源: ccidnet sixth  会员收藏  游客收藏  【 】 

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

#!/bin/bash

#

# [email protected]

#

# 定义上下带宽

# 注意是 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

共2页: 上一页 1 [2] 下一页

上一篇:笔记本用户:你是选择Linux还是Vista?   下一篇:Linux系统Rar压缩文件包的使用方法

收藏于收藏夹】 【评论】 【推荐】 【打印】 【关闭
相关文档
·Linux系统Rar压缩文件包的使用方法
·Linux新手的学习日记:用户管理详细解析
·笔记本用户:你是选择Linux还是Vista?
·Fedora Linux中给X1250安装ATI 7.11驱动
·Ubuntu 7.10系统下用Fcitx更换Scim输入法
·Linux系统控制台中文显示与中文输入
·Linux系统上的C/C 编译器gcc/egcs详解
·Linux系统下字符集转换工具:iconv
·虚拟机扩充Linux系统容量
·Linux下安装Realtek 8110SC千兆网卡驱动
·Linux系统禁止Ctrl Alt Delete重新启动
·Vista与Linux系统双启动
·在Linux Wine上运行MS Office 2007教程
·在Linux系统下如何增加一个新的系统用户
·解决在Ubuntu中无法激活中文输入法问题
·Linux下Zend studio汉字显示为方块问题
发表评论
密码: 匿名评论
评论内容:

(不超过250字,需审核后才会公布,请自觉遵守互联网相关政策法规)
 
  最新文档
·Vista与Linux系统双启动
·Linux系统禁止Ctrl Alt Delete重新启动
·Linux下安装Realtek 8110SC千兆网卡驱
·虚拟机扩充Linux系统容量
·Linux系统下字符集转换工具:iconv
·Linux系统上的C/C 编译器gcc/egcs详解
·Linux系统控制台中文显示与中文输入
·Ubuntu 7.10系统下用Fcitx更换Scim输入
·Fedora Linux中给X1250安装ATI 7.11驱
·Linux新手的学习日记:用户管理详细解
·Linux系统Rar压缩文件包的使用方法
·笔记本用户:你是选择Linux还是Vista?
  阅读排行
·Linux世界驰骋四——文件系统和设备管
·在Linux世界驰骋系列之三——结构和算
·邮件系统的选型与架构专题(上篇)
·在Linux世界驰骋系列之二——Shell编程
·
·
深入OpenOffice.org之二应用XML文件格
·Linux世界驰骋五——Linux常用实用工具
·手把手教您配置Liunx目录服务器
·向左走向右走 当邮政业“遇上”Linux
·邮件系统的选型与架构专题(下篇)
·Linux系统可卸载内核模块完全指南(下
·图解红旗Linux 4.0桌面系统的安装(图
·Linux系统可卸载内核模块完全指南(中
·深度分析:Linux正在走出发展低潮
·深入探讨Linux与微软在桌面上的较量
网摘收藏: