iptables 流量配额控制设置

当所用的服务器是按量付费时,就需要限制流量使用量以避免大额的流量费。

如下两行命令,即可启动流量配额上限设置:

$ iptables -A OUTPUT -p tcp -m quota --quota 1024000 -j ACCEPT
$ iptables -A OUTPUT -p tcp -j DROP

iptables 结构解释

以上面的流量配额限制的命令为例做解释:

$ iptables -A OUTPUT -p tcp -m quota --quota 1024000 -j ACCEPT
$ iptables -A OUTPUT -p tcp -j DROP
  • -A OUTPUT 代表在OUTPUT链中添加一条规则,OUTPUT是iptables规则中的一个链(Chain),代表流出的流量包,总共有三个(INPUT, FORWARD, OUTPUT),区分不同场景的规则
  • -p tcp 是iptables的协议参数(`--protocol``)。匹配规则的一部分
  • -m quota --quota 1024000 是该条规则的另一匹配规则(match),匹配通过则执行后面指定的操作(target)。这里用quota做匹配,限制1M流量(1024000 Bytes)
  • -j ACCEPT 指定匹配成功后的执行操作,ACCEPT代表接受,DROP代表丢弃包

这两条规则合起来:

  • 第一条指定:对于流出的tcp协议包,如果流量没有超过限制,则允许通过。
  • 当第一条规则匹配失败,即流量超过后,顺序第二条规则生效。第二条规则指定:拒绝所有的tcp协议流出包。

两者合起来,流量限制内通过,流量超出后拒绝,达到控制流量的目的。

另,针对tcp端口匹配有两种:--sport, --dport,其区别是包的连接两段的方向

  • --sport,source port,指定连接的来源段
  • --dport,destination port,指定链接的目的端

标签: iptables, 流量统计, 流量限制

添加新评论