tc+iptables实现的下载和上传带宽限制的脚本
-
资源ID:432604961
资源大小:14.42KB
全文页数:3页
- 资源格式: DOCX
下载积分:10金贝
快捷下载
账号登录下载
微信登录下载
微信扫一扫登录
1、金锄头文库是“C2C”交易模式,即卖家上传的文档直接由买家下载,本站只是中间服务平台,本站所有文档下载所得的收益全部归上传人(卖家)所有,作为网络服务商,若您的权利被侵害请及时联系右侧客服;
2、如你看到网页展示的文档有jinchutou.com水印,是因预览和防盗链等技术需要对部份页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有jinchutou.com水印标识,下载后原文更清晰;
3、所有的PPT和DOC文档都被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;下载前须认真查看,确认无误后再购买;
4、文档大部份都是可以预览的,金锄头文库作为内容存储提供商,无法对各卖家所售文档的真实性、完整性、准确性以及专业性等问题提供审核和保证,请慎重购买;
5、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据;
6、如果您还有什么不清楚的或需要我们协助,可以点击右侧栏的客服。
|
下载须知 | 常见问题汇总
|
tc+iptables实现的下载和上传带宽限制的脚本
一个用tc+iptables实现的下载和上传带宽限制的脚本 这是我用的,新年献给大家。每个IP单独限制,好随时修改。如果是用拨号上网的,请把以下内容加到/etc/ppp/ip-up.local中,否则断线重拨后会没有上传限制,对BT光限制下载是不够的。 #!/bin/bash # # zyxzyx.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