iptables IP流量统计

最后是使用ipset进行流量统计,iptaccount资料太少而且还跟网上说明的操作情况不相符,继续看源码分析组长老大都不高兴。ipset使用帮助

1. 创建ipset集合:ipset create test hash:ip counters                    //counters,一定要加,不然不会计数,hash:ip见使用帮助

2. 往ipset中增加ip:ipset add test 192.168.25.24

3. 设置规则链:iptables -I INPUT -m set --match-set test src,dst  //src源地址,dst目的地址

4. 查看流量统计:ipset list test                                                     //会显示set中每个ip的流量统计,如果设置了多条规则链结果会相加。但是不用担心设置了相同规则链时只统计其中一条规则链数据流的情况

其他参考资料

1. https://blog.csdn.net/u014015972/article/details/50647039 使用iptables做的IP流量统计。问题:怎么统计所有IP的?是否可以使用ipset

2. linux下使用iptables统计网络流量(这个对iptables的计数器做了分析):

  2.1. 核心所内建的传输量统计机制, 主要是依靠计量器 (counter) 来进行统计的工作。每一个 iptables 规则都伴随着一组计量器, 当封包符合 iptables 内的某一个规则时, 核心便会将封包大小与数量累加于该规则所属的计量器。

    从这条说明上看iptaccount也必须对每个IP设置一条规则链才能进行统计,相当于仅仅封装了一下使输出更友好。(待确认)

  2.2. 如果有多条规则链都满足条件,只在其中一条链上计数。

    晚上尝试增加链后确实新链没有计数。也解释了为什么最初尝试时ipaccount没有生效,而删掉其他规则链后iptaccount能生效的原因了,因为iptables链也没有计数啊。

3.iptables连接跟踪

  state 这个模块能够跟踪分组的连接状态 (什么是分组的连接状态)

  UDP和TCP连接的状态表由/proc/net/ip_conntrack进行维护

4.ipaccount 带给iptables的扩展是PSD,见doc文件。有四个选项。http://bbs.chinaunix.net/thread-1951579-1-1.htm

5.https://wenku.baidu.com/view/cdaab5f4aeaad1f346933f96.html Iptables工作原理使用详解

6. ipset操作示例  更多参考

 

原文地址:https://www.cnblogs.com/laymond/p/10756851.html