【限速】limit_download.sh

使用iptables 做简单的限速策略。

#!/bin/bash
#
# limit port 80 download speed.

ACTION=$1
n_port=80
# n_limit * 15/100 KB, 100Mbit/s = 10MB/s = 10 * 1000 KB/s
n_limit=$2
[ ! -z $n_limit ] || n_limit=3000
n_limit_burst=$3
[ ! -z $n_limit_burst ] || n_limit_burst=3000

function add(){
    iptables -A OUTPUT -p tcp -m tcp --sport $n_port -m limit --limit $n_limit/sec --limit-burst $n_limit_burst -j ACCEPT 
    iptables -A OUTPUT -p tcp -m tcp --sport $n_port -j DROP    
    service iptables save
}

function del(){
    iptables -D OUTPUT -p tcp -m tcp --sport $n_port -m limit --limit $n_limit/sec --limit-burst $n_limit_burst -j ACCEPT 
    iptables -D OUTPUT -p tcp -m tcp --sport $n_port -j DROP    
    service iptables save
}

function cls() {
    iptables -F OUTPUT  
    service iptables save
}

function stat() {
    iptables -L -n |sed -n ‘/OUTPUT/,$p‘
}

ACTION=$1

case ${ACTION} in
    add)
        add
        stat
        ;;
    del)
        del
        stat
        ;;
    clear)
        cls
        stat
        ;;
    new)
        cls
        add
        stat
        ;;
    status)
        stat
        ;;
    *)
        cat <<_START
Usage: 
    $0 [add|del|new|clear|status] limit limit_burst 
    [default setting: limit=$n_limit, limit_burst=$n_limit_burst]
eg:
    $0 add              add a rule to OUTPUT Chain. [default]
    $0 del              delete a rule from OUTPUT Chain. [default]
    $0 new              clear->add.
    $0 clear            delete all rules in OUTPUT Chain.
    $0 status           show iptables OUTPUT Chain.
    $0 add 2500 3000    add a rule to OUTPUT Chain.

_START
        ;;
esac
时间: 2024-10-05 23:57:19

【限速】limit_download.sh的相关文章

【利用tc做简单的限速策略】tcqdisc.sh

#!/bin/sh # # tcqdisc.sh [a|c|d|s] interface [delay|loss]  N[ms|%] #  # action=$1 eth=$2 option=$3 value=$4 case $action in     a)         tc qdisc add dev $eth root netem $option $value         ;;     c)         tc qdisc change dev $eth root netem $

tc命令——Linux基于IP进行流量限速

主要参考(所有权利归原文作者所有): *http://www.cnblogs.com/endsock/archive/2011/12/09/2281519.html *http://blog.163.com/ninja_wk/blog/static/989155620084280154811/ *http://www.chinaunix.net/jh/4/16110.html 一.TC原理 Linux操作系统中的流量控制器TC(Traffic Control)用于Linux内核的流量控制,主要是

CISCO路由利用policy-map进行限速

限速主要是在带宽不足情况下,为保证特定业务的带宽需求而采取的一些必要措施,下面主要以policy-map实施限速为例子说明 1.生成流控ip的acl列表(主要匹配需要进行限速管理的数据流) access-list 110 permit ip host 192.100.49  any access-list 110 permit ip any host 192.100.49 2.定义class -map class-map match-all test110(名字,设计成为方便识别的名字)  还可

如何用iptables限速?

公司使用linux服务器来当网关,配置iptables NAT上网,虽然公司光纤带宽30MB,但只要有一个人使用迅雷等P2P软件下载资料时,会把带宽跑满,如何使用iptables来对每个用户进行带宽限速呢,参见如下脚本即可: cat limit.sh #!/bin/shfor ((i=2; i<254; i++))doiptables -I FORWARD -d 192.168.1.$i -j DROPiptables -I FORWARD -d 192.168.1.$i -m limit --

linux上传限速脚本

以下脚本可用于对服务器进行上传限速,当业务使用处于高峰期时,为不影响业务的正常使用,限制上传速度,保证能正常提供服务. 原理是使用linux中的TC(流量控制模块)实现限速功能. 脚本的使用如下: 启动:sh limit.sh start 200  (限制上传速度为200kb/s) 停止:sh limit.sh stop #!/bin/bash #a simple example for "tc" #set the param DELAY=20 SPEED=$2 FLOW=0 #出口网

1、CISCO交换机QOS限速配置

CISCO交换机QOS限速配置步骤: 1.启用全局qos 2.设置ACL匹配的流量 3.设置一个class-map,来匹配第二步设置的ACL 4.设置一个policy-map匹配class-map,然后再在这里面定义一系列策略,限制的带宽按位(bit)为计算,突发量按字节(byte)计算 5.将policy-map应用到相应的接口上 mls qos ip access-list extended list83 permit ip host 192.168.120.83 any class-map

23.dubbo脚本之stop.sh

#!/bin/bash cd `dirname $0` BIN_DIR=`pwd` cd .. DEPLOY_DIR=`pwd` CONF_DIR=$DEPLOY_DIR/conf SERVER_NAME=`sed '/dubbo.application.name/!d;s/.*=//' conf/dubbo.properties | tr -d '\r'` if [ -z "$SERVER_NAME" ]; then     SERVER_NAME=`hostname` fi PID

24.dubbo脚本之server.sh

#!/bin/bash cd `dirname $0` if [ "$1" = "start" ]; then ./start.sh else if [ "$1" = "stop" ]; then ./stop.sh else if [ "$1" = "debug" ]; then ./start.sh debug else if [ "$1" = "res

25.dubbo脚本之restart.sh

#!/bin/bash cd `dirname $0` ./stop.sh ./start.sh