一种基于IPtables的自定义IP流量统计方法及系统转让专利

申请号 : CN202111070184.5

文献号 : CN113709005B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 徐开泰范渊吴永越郑学新刘韬

申请人 : 成都安恒信息技术有限公司

摘要 :

本发明涉及流量控制技术领域,公开了一种基于IPtables的自定义IP流量统计方法,包括以下步骤:步骤S1.对IPtables进行编译,并进入操作系统;步骤S2.用户下发用户自定义IP,根据自定义IP生成用户配置文件;步骤S3.预设流量统计规则,根据流量统计规则读取用户配置文件,获取用户自定义IP的总流量和瞬时流量;步骤S4.对所述总流量和瞬时流量进行统计,并将流量统计结果存入数据库;步骤S5.显示所述流量统计结果。本发明还公开了一种基于IPtables的自定义IP流量统计系统。用于解决现有路由器不能根据用户自定义统计IP流量,也不能显示瞬时流量的问题,使用IPtables工具并自定义一套IP流量的统计方法能够更加简单化的实现流量显示以及统计。

权利要求 :

1.一种基于IPtables的自定义IP流量统计方法,其特征在于,所述统计方法包括以下步骤:

步骤S1.对IPtables进行编译,并进入操作系统,先需要编译IPtables进Openwrt,进入源码目录,通过源码驱动make menuconfig进入配置界面,在Openwrt编译配置界面里选择IPtables;

步骤S2.用户下发用户自定义IP,根据自定义IP生成用户配置文件;

判断IP地址是否为单个地址,如果是,不进行处理,直接生成配置文件;如果否,对IP地址进行拆分,并判断是否有重复的IP地址;如果是,对重复的IP地址进行处理并生成配置文件,如果否,将不重复的IP地址生成配置文件;步骤S3.预设流量统计规则,根据流量统计规则读取用户配置文件,获取用户自定义IP的总流量和瞬时流量;

流量统计规则包括:读取配置文件,获取IP地址;将IP地址循环添加进IPtables,获取并记录目的IP的流量和源IP的流量;将目的IP的流量定义为接收流量,将源IP的流量定义为发送流量;使用IPtables统计命令统计发送和接收的总流量;步骤S4.对所述总流量和瞬时流量进行统计,并将流量统计结果存入数据库;

步骤S4.1.通过shell脚本将获取到的总流量取出,并以时间、接收流量、发送流量和IP地址的格式存储到数据库中;步骤S4.2.计算发送流量和接收流量的瞬时流量,将下一秒的发送流量和接收流量的瞬时流量减去上一秒发送流量和接收流量的瞬时流量,获取单位为Byte/S的流量统计结果;步骤S4.3.根据流量统计结果生成显示接口;

步骤S5.显示所述流量统计结果。

2.根据权利要求1所述的一种基于IPtables的自定义IP流量统计方法,其特征在于,所述步骤S1包括:步骤S1.1.下载操作系统的源码,根据源码进入源码目录,获取IPtables的配置界面;步骤S1.2.进入IPtables配置界面,选择支持IPtables命令的模块进行编译。

3.根据权利要求1所述的一种基于IPtables的自定义IP流量统计方法,其特征在于,所述步骤S2中的用户自定义IP包括用户配置下发的IP地址和IP段地址。

4.根据权利要求1所述的一种基于IPtables的自定义IP流量统计方法,其特征在于,所述步骤S4.1包括:以时间为索引进行流量的查询;在流量统计的过程中设置存储有效时间。

5.根据权利要求1‑4任一项所述的一种基于IPtables的自定义IP流量统计方法,其特征在于,所述步骤S5包括:通过步骤S4.3提供的显示接口,将流量统计结果以时间、接收流量、发送流量和IP地址的格式发送至前端或者用户界面,显示IP地址的日流量数据。

6.一种基于IPtables的自定义IP流量统计系统,其特征在于,所述系统包括路由器设置模块(10)、用户配置模块(11)、IPtables过滤模块(12)、数据库存储模块(13)和显示模块(14),其中:路由器设置模块(10),用于初始化路由器的参数,加载网络驱动,加载IPtables过滤模块(12),用于配置IP地址;用户配置模块(11),用于用户下发用户自定义IP,根据自定义IP生成用户配置文件;用于将用户配置的IP地址生成IPtables流量统计规则链,统计出需要存储的每日、每月流量;

IPtables过滤模块(12),用于使用IPtables对网络包进行编译、过滤和统计,判断是否匹配当前的IPtables流量统计规则链,根据流量统计规则读取用户配置文件,获取用户自定义IP的总流量和瞬时流量;

数据库存储模块(13),用于存储每日、每月的使用流量;

显示模块(14),用于显示流量统计结果,将生成的总流量和瞬间流量实时显示在前端或者用户界面。

说明书 :

一种基于IPtables的自定义IP流量统计方法及系统

技术领域

[0001] 本发明涉及流量控制技术领域,具体地说,是一种基于IPtables的自定义IP流量统计方法及系统,用于解决现有路由器不能根据用户自定义统计IP流量,也不能显示瞬时流量的问题,使用IPtables工具并自定义一套IP流量的统计方法能够更加简单化的实现流量显示以及统计。

背景技术

[0002] 随着物联网技术的不断发展,各种嵌入式设备接入互联网的情况越来越普及。这些嵌入式设备都有固定IP,或者由路由器分配IP,流量监控成了路由器的很重要的一部分。但现有的路由器无法显示自定义IP地址的瞬时流量和统计自定义IP地址的流量,在使用过程中无法判断哪些IP地址使用了过量流量。在一些限制流量的环境下,无法及时、实事的统计显示流量,给管理带来不便,也给用户造成了额外的开销。因此,亟需一种方法,能够解决现有路由器不能根据用户自定义统计IP流量,显示瞬时流量的问题,同时能够更加简单化的实现流量的显示以及统计。

发明内容

[0003] 本发明的目的在于提供一种基于IPtables的自定义IP流量统计方法及系统,实现有效的检测IP流量的变化,具有直观的看出流量使用情况的效果。
[0004] 本发明通过下述技术方案实现:一种基于IPtables的自定义IP流量统计方法,包括以下步骤:
[0005] 步骤S1.对IPtables进行编译,并进入操作系统;
[0006] 步骤S2.用户下发用户自定义IP,根据自定义IP生成用户配置文件;
[0007] 步骤S3.预设流量统计规则,根据流量统计规则读取用户配置文件,获取用户自定义IP的总流量和瞬时流量;
[0008] 步骤S4.对所述总流量和瞬时流量进行统计,并将流量统计结果存入数据库;
[0009] 步骤S5.显示所述流量统计结果。
[0010] 在本技术方案中,先需要编译IPtables进Openwrt,在Openwrt编译配置界面里选择IPtables,IP6tables以支持IPtables命令的使用。如果没有编译,则无法进行流量统计。编译并安装Openwrt系统,基于X86虚拟机进行编译和安装。
[0011] 为了更好地实现本发明,进一步地,步骤S1包括:
[0012] 步骤S1.1.下载操作系统的源码,根据源码进入源码目录,获取IPtables的配置界面;
[0013] 步骤S1.2.进入IPtables配置界面,选择支持IPtables命令的模块进行编译。
[0014] 在本技术方案中,通过用户下发配置,将用户配置下发的IP地址、IP段地址。单个IP地址不进行处理,写入配置文件对IP段地址,拆分成IP地址和掩码的形式。对重复的IP地址进行处理,生成我们需要的配置文件。
[0015] 为了更好地实现本发明,进一步地,步骤S2中的用户自定义IP包括用户配置下发的IP地址和IP段地址。
[0016] 为了更好地实现本发明,进一步地,步骤S2还包括:
[0017] 判断IP地址是否为单个地址,如果是,不进行处理,直接生成配置文件;如果否,对IP地址进行拆分,并判断是否有重复的IP地址;如果是,对重复的IP地址进行处理并生成配置文件,如果否,将不重复的IP地址生成配置文件。
[0018] 在本技术方案中,单个IP地址不进行处理,写入配置文件对IP段地址。
[0019] 为了更好地实现本发明,进一步地,步骤S3中的流量统计规则包括:
[0020] 读取配置文件,获取IP地址;
[0021] 将IP地址循环添加进IPtables,获取并记录目的IP的流量和源IP的流量;
[0022] 将目的IP的流量定义为接收流量,将源IP的流量定义为发送流量;
[0023] 使用IPtables统计命令统计流量统计发送和接收的总流量。
[0024] 在本技术方案中,读取用户配置文件,生成总流量和瞬时流量,读取配置文件IPtables,将IP循环添加到IPtables,主要命令如下:
[0025] IPtables ‑I FORWARD ‑d ${IP} ‑j ACCEPT 记录目的IP的流量;
[0026] IPtables ‑I FORWARD ‑s ${IP} ‑j ACCEPT 记录源IP的流量;
[0027] 此处我们将源IP的流量定义为发送流量,IPtables将目的IP的流量定义为接收流量,统计流量主要使用命令:IPtables–nvL。
[0028] 为了更好地实现本发明,进一步地,步骤S4包括:
[0029] 步骤S4.1.通过shell脚本将获取到的总流量取出,并以时间、接收流量、发送流量和IP地址的格式存储到数据库中;
[0030] 步骤S4.2.计算发送流量和接收流量的瞬时流量,将下一秒的发送流量和接收流量的瞬时流量减去上一秒发送流量和接收流量的瞬时流量,获取单位为Byte/S的流量统计结果;
[0031] 步骤S4.3.根据流量统计结果生成显示接口。
[0032] 在本技术方案中,统计发送/接收总流量,根据收集的流量,通过shell IPtables脚本将第一列的总流量取出,统计发送/接收总流量存储到数据库。如果需要查询流量,以时间为索引,进行数据库查询。提供查询接收/发送流量接口,计算发送/接收瞬时流量,将下一秒的发送/接收流量减去上一秒发送/接收流量。单位Byte/S,并提供接口给用户界面,使用户能够实时观测到接收/发送流量速率。
[0033] 为了更好地实现本发明,进一步地,步骤S4.1包括:
[0034] 以时间为索引进行流量的查询;
[0035] 在流量统计的过程中设置存储有效时间。
[0036] 在本技术方案中,用户可设置存储有效时间,例如180天和360天。
[0037] 为了更好地实现本发明,进一步地,步骤S5包括:
[0038] 通过步骤S4.3提供的显示接口,将流量统计结果以时间、接收流量、发送流量和IP地址的格式发送至前端或者用户界面,显示IP地址的日流量数据。
[0039] 在本技术方案中,调用提供的接口,将统计数据以表格的形式展示在浏览器页面,记录每一个IP日流量数据。此外,接口也对外开发,方便对接各种用户界面。
[0040] 为了更好地实现本发明,进一步地,本发明还提供了一种基于IPtables的自定义IP流量统计系统,系统包括路由器设置模块、用户配置模块、IPtables过滤模块、数据库存储模块和显示模块,其中:
[0041] 路由器设置模块,用于初始化路由器的参数,加载网络驱动,加载IPtables过滤模块,用于配置IP地址;
[0042] 用户配置模块,用于用户下发用户自定义IP,根据自定义IP生成用户配置文件;用于将用户配置的IP地址生成IPtables流量统计规则链,使流量统计出需要存的储每日每月流量;
[0043] IPtables过滤模块,用于使用IPtables对网络包进行编译、过滤和统计,判断是否匹配当前的IPtables流量统计规则链,根据流量统计规则读取用户配置文件,获取用户自定义IP的总流量和瞬时流量;
[0044] 数据库存储模块,用于存储每日、月的使用流量;
[0045] 显示模块,用于显示流量统计结果,将生成的总流量和瞬间流量实时显示在前端或者用户界面。
[0046] 在本技术方案中,用户配置模块由用户下发配置参数,生成管理用户配置文件;IPtables过滤模块使用IPtables工具对网络包进行过滤和统计,判断是否匹配当前的规则链;数据库存储模块可根据需要存储每日和每月使用流量;显示模块,显示IP和IPtables速率(Byte/S)流量统计。
[0047] 本发明与现有技术相比,具有以下优点及有益效果:
[0048] (1)本发明不再局限于对某一设备,某一模块进行流量统计;
[0049] (2)本发明不再更改内核代码,重新编译内核,直接再应用层进行网络包过滤;
[0050] (3)本发明提供了一种简单易用且免费的基于IPtables的IP流量计算和统计方法。

附图说明

[0051] 本发明结合下面附图和实施例做进一步说明,本发明所有构思创新应视为所公开内容和本发明保护范围。
[0052] 图1为本发明所提供的一种基于IPtables的自定义IP流量统计方法的流程图。
[0053] 图2为本发明所提供的一种基于IPtables的自定义IP流量统计系统的结构示意图。
[0054] 其中:10、路由器设置模块;11、用户配置模块;12、IPtables过滤模块;13、数据库存储模块;14、显示模块。

具体实施方式

[0055] 实施例1:
[0056] 本实施例的一种基于IPtables的自定义IP流量统计方法,如图1所示,在本实施例中,先需要编译IPtables进Openwrt,进入源码目录,通过源码驱动make menuconfig进入配置界面,在Openwrt编译配置界面里选择IPtables,IP6tables以支持IPtables命令的使用,如果没有编译,则无法进行流量统计,编译并安装Openwrt系统,Openwrt操作系统可以替代,主流路由器固件有 Dd‑wrt,Tomato,Openwrt,Padavan四类,对比一个单一的、静态的系统,主流路由器固件的包管理系统提供了一个完全可写的文件系统,从应用程序供应商提供的选择和配置,并允许自定义的设备,以适应任何应用程序,同时,Openwrt可以选择先编译再安装,使用现有的Openwrt系统也可以,使用已有的Openwrt系统相当于默认带IPtables模块,可以基于X86虚拟机进行编译和安装。本发明为路由器提供一种免费且能代替商业昂贵的防火墙方案,完成IP包过滤、统计和计算。本发明通过使用开源的工具IPtables,在openwrt系统上配置IPtables规则的配置文件;检测自定义IP地址发送或者接收流量,并根据所述IPtables规则统计所述IP地址经过主机发送和接收的数据量,将所述IP地址的发送和接收的数据量显示为瞬时流量,将所述IP地址的发送和接收的数据量相加得到对应的流量数据;将所述IP地址的发送和接收的数据量的每日,月流量数据冻结存入数据库,以方便查询历史流量数据。
[0057] 实施例2:
[0058] 本实施例在实施例1的基础上做进一步优化,在本实施例中,通过用户下发配置,将用户配置下发的IP地址、IP段地址。单个IP地址不进行处理,写入配置文件对IP段地址,拆分成IP地址和掩码的形式。对重复的IP地址进行处理,生成我们需要的配置文件。配置文件是生成在文件系统里面的。
[0059] 本实施例的其他部分与实施例1相同,故不再赘述。
[0060] 实施例3:
[0061] 本实施例在上述实施例1的基础上做进一步优化,在本实施例中,单个IP地址不进行处理,写入配置文件对IP段地址。
[0062] 本实施例的其他部分与上述实施例1相同,故不再赘述。
[0063] 实施例4:
[0064] 本实施例在上述实施例1‑3任一项的基础上做进一步优化,在本实施例中,判断IP地址是否为单个地址,如果是,不进行处理,直接生成配置文件;如果否,对IP地址进行拆分,并判断是否有重复的IP地址;如果是,对重复的IP地址进行处理并生成配置文件,如果否,将不重复的IP地址生成配置文件。
[0065] 本实施例的其他部分与上述实施例1‑3任一项相同,故不再赘述。
[0066] 实施例5:
[0067] 本实施例在上述实施例4的基础上做进一步优化,在本实施例中,读取用户配置文件,生成总流量和瞬时流量,读取配置文件IPtables,将IP循环添加到IPtables,主要命令如下:
[0068] IPtables ‑I FORWARD ‑d ${IP} ‑j ACCEPT 记录目的IP的流量;
[0069] IPtables ‑I FORWARD ‑s ${IP} ‑j ACCEPT 记录源IP的流量;
[0070] 此处我们将源IP的流量定义为发送流量,IPtables将目的IP的流量定义为接收流量,统计流量主要使用命令:IPtables–nvL。
[0071] 本实施例的其他部分与上述实施例4相同,故不再赘述。
[0072] 实施例6:
[0073] 本实施例在上述实施例1‑5任一项的基础上做进一步优化,在本实施例中,统计发送/接收总流量,根据收集的流量,通过shell IPtables脚本将第一列的总流量取出,统计发送/接收总流量存储到数据库。如果需要查询流量,以时间为索引,进行数据库查询。提供查询接收/发送流量接口,计算发送/接收瞬时流量,将下一秒的发送/接收流量减去上一秒发送/接收流量。单位Byte/S,并提供接口给用户界面,使用户能够实时观测到接收/发送流量速率。
[0074] 本实施例的其他部分与上述实施例1‑5任一项相同,故不再赘述。
[0075] 实施例7:
[0076] 本实施例在上述实施例6的基础上做进一步优化,在本实施例中,用户可设置存储有效时间,例如180天和360天。
[0077] 本实施例的其他部分与上述实施例6相同,故不再赘述。
[0078] 实施例8:
[0079] 本实施例在上述实施例1‑7任一项的基础上做进一步优化,在本实施例中,调用提供的接口,将统计数据以表格的形式展示在浏览器页面,记录每一个IP日流量数据。此外,接口也对外开发,方便对接各种用户界面。
[0080] 本实施例的其他部分与上述实施例1‑7任一项相同,故不再赘述。
[0081] 实施例9:
[0082] 本实施例还提供了一种基于IPtables的自定义IP流量统计系统,如图2所示,本发明能够有效的检测IP流量的变化,能够直观的看出流量使用情况,本发明能够查看历史累积流量使用情况,方便对于局域网网络IP进行管理。本实施例中路由器设置模块10使能路由器网口,配置IP地址,在路由器用户层配置用户要监控,即用户自定义的IP地址,用户配置模块11由用户下发配置参数,生成管理用户配置文件,用户配置模块11将用户配置的IP地址生成IPtables规则链,使能IPtables,同时判断是否需要存储每月每日的流量;IPtables过滤模块12使用IPtables工具对网络包进行过滤和统计,判断是否匹配当前的规则链,同时记录收发流量,将接收流量和发送流量相加,得到总的流量,将前一秒的接收的流量、发送的流量和现在的流量相减,得到瞬间流量,单位为Byte/S;数据库存储模块13可根据需要存储每日和每月使用流量;显示模块14,显示IP和IPtables速率(Byte/S)流量统计,将生成的总流量和瞬间流量实时显示在前端或者用户界面。
[0083] 以上所述,仅是本发明的较佳实施例,并非对本发明做任何形式上的限制,凡是依据本发明的技术实质对以上实施例所做的任何简单修改、等同变化,均落入本发明的保护范围之内。