资源预览内容
第1页 / 共3页
第2页 / 共3页
第3页 / 共3页
亲,该文档总共3页全部预览完了,如果喜欢就下载吧!
资源描述
一个用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/tcqdiscdeldev$IDEVroothandle10: /sbin/tcqdiscdeldev$ODEVroothandle20: # /sbin/tcqdiscadddev$IDEVroothandle10:cbqbandwidth100Mbitavpkt1000 /sbin/tcqdiscadddev$ODEVroothandle20:cbqbandwidth1Mbitavpkt1000 # /sbin/tcclassadddev$IDEVparent10:0classid10:1cbqbandwidth100Mbitrate100Mbitallot1514weight1Mbitprio8maxburst20avpkt1000 /sbin/tcclassadddev$ODEVparent20:0classid20:1cbqbandwidth1Mbitrate1Mbitallot1514weight10Kbitprio8maxburst20avpkt1000 # #不限制内网从本服务器下载。 #注意如本服务器上有代理,用户可通过代理绕过带宽限制, #可取消以下三句限制从本服务器下载。 /sbin/tcclassadddev$IDEVparent10:1classid10:10cbqbandwidth100Mbitrate95Mbitallot1514weight20Kbitprio5maxburst20avpkt1000bounded /sbin/tcqdiscadddev$IDEVparent10:10sfqquantum1514bperturb15 /sbin/tcfilteradddev$IDEVparent10:0protocolipprio50u32matchipsrc$INET$ServerIPflowid10:10 # #限制下载速度 COUNTER=$IPS while$COUNTER-le$IPE do #以下三句限制各IP的下载带宽 /sbin/tcclassadddev$IDEVparent10:1classid10:1$COUNTERcbqbandwidth100Mbitrate$DOWNLOADallot1514weight20Kbitprio5maxburst20avpkt1000bounded /sbin/tcqdiscadddev$IDEVparent10:1$COUNTERsfqquantum1514bperturb15 /sbin/tcfilteradddev$IDEVparent10:0protocolipprio100u32matchipdst$INET$COUNTERflowid10:1$COUNTER COUNTER=expr$COUNTER+1 done # #限制上传速度 COUNTER=$IPS while$COUNTER-le$IPE do #以下三句限制各IP的上传带宽 /sbin/tcclassadddev$ODEVparent20:1classid20:1$COUNTERcbqbandwidth1Mbitrate$UPLOADallot1514weight4Kbitprio5maxburst20avpkt1000bounded /sbin/tcqdiscadddev$ODEVparent20:1$COUNTERsfqquantum1514bperturb15 /sbin/tcfilteradddev$ODEVparent20:0protocolipprio100handle$COUNTERfwclassid20:1$COUNTER COUNTER=expr$COUNTER+1 done #特殊照顾的IP在以上范围的用户 NIP=78 #192.168.0.78这家伙天天BT ND=200Kbit NU=50Kbit /sbin/tcclasschangedev$IDEVparent10:1classid10:1$NIPbandwidth100Mbitrate$NDallot1514weight20Kbitprio5maxburst20avpkt1000bounded /sbin/tcclasschangedev$ODEVparent20:1classid20:1$NIPcbqbandwidth1Mbitrate$NUallot1514weight4Kbitprio5maxburst20avpkt1000bounded # NIP=1 #192.168.0.1增加我自已的带宽 ND=1500Kbit NU=500Kbit /sbin/tcclasschangedev$IDEVparent10:1classid10:1$NIPbandwidth100Mbitrate$NDallot1514weight20Kbitprio5maxburst20avpkt1000bounded /sbin/tcclasschangedev$ODEVparent20:1classid20:1$NIPcbqbandwidth1Mbitrate$NUallot1514weight4Kbitprio5maxburst20avpkt1000bounded #. # # #修改防火墙,增加上传限制 COUNTER=$IPS while$COUNTER-lt$IPE do iptables-tmangle-APREROUTING-i$IDEV-s$INET$COUNTER-jMARK-set-mark$COUNTER COUNTER=expr$COUNTER+1 done #这里是NAT iptables-tnat-APOSTROUTING-o$EXTIF-s192.168.0.0/24-jMASQUERADE
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号