【限速】limit_download.sh

【限速】limit_download.sh

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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
#!/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



本文转自 pcnk 51CTO博客,原文链接:http://blog.51cto.com/nosmoking/1594650,如需转载请自行联系原作者
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值