1.本发明涉及网卡监控技术领域,具体为一种基于linux系统网卡监控方法。
背景技术:
2.伴随着社会信息化进程深入及互联网的迅猛发展,网络病毒感染、木马问题、恶意扫描、网络监听、垃圾邮件等等问题让网络面临各种各样的威胁,如何监视网络的运行情况并及时地保障网络的正常运行,已经显得尤为重要。目前的监视和保障网络运行的方法主要有以下几种:一种方式是进行数据统计,即由服务器记录其自身的运营数据,并由统计服务器统一获取并分析,按照需要采用不同的画图技术将统计结果通过网络表现出来。操作人员可以根据统计结果和经验对网络运行情况进行评估。
3.另一种方式是对网络运行状况进行专门监控,即由专门人员日夜值班直接对服务器的运行数据进行检查,根据经验进行评估,判断当前的网络运行情况是否正常,如果发现有问题,则通知专业人员对网络进行维护。
4.但是,上述的两种方式都是分别独立进行的,不成整体,系统只是简单地进行数据统计或获取运行数据,需要工作人员再次进行分析,才能对网络运行情况进行判断,且对工作人员的要求要高,这种缺陷导致互联网业务的运行维护成本极高,运行维护的效率低下,为此,提出一种基于linux系统网卡监控方法。
技术实现要素:
5.针对现有技术的不足,本发明提供了一种基于linux系统网卡监控方法,具备可以根据网卡流量监控统计出来连接服务器前10的客户端,方便工作人员进行下一步的分析和问题的处理,如果是恶意攻击的用户端,可以通过策略进行阻断,可以根据网卡的连接状态,判断连接状态是否异常和是否存在恶意连接,自主分析问题和解决问题的优点,解决了上述背景技术中提出的问题。
6.本发明提供如下技术方案:一种基于linux系统网卡监控方法,包括以下步骤:
7.步骤一:获取系统的网卡;
8.步骤二:实时监控网卡流量;
9.步骤三:统计监控网卡10秒内的平均流量;
10.步骤四:统计在10s内占用带宽最大的前10的用户端ip地址;
11.步骤五:获取网卡连接状态和获取各端口连接情况。
12.优选的,步骤一中获取系统的网卡的方法为:通过ifconfig命令进行获取网卡信息并做出网卡是否存在判断,存在的话,对系统所有的网卡进行打标,每个网卡对应一个数字供选择,需输入正确的数字获取对应的网卡并赋值给变量。
13.优选的,步骤二中监控网卡流量的步骤为:获取网卡信息、对/proc/net/dev进行发送或接收的数据字节进行获取、计算出发送和接收网卡流量的速率、计算流量峰值和把流量字节单位转换为人类可读单位并打印到屏幕上,通过printf命令做清屏实时打印发送
和接收流量的实时值和峰值,其中/proc/net/dev文件是记录linux系统的网络包量,流量,错包,丢包。
14.优选的,获取网卡信息后设置网卡发送和接收流量变量初始值为0;awk命令通过网卡变量对/proc/net/dev文件分别获取发送,接收的字节数的值,sleep休眠2秒再通过awk命令获取值;计算发送和接收网卡流量速率的方法为:用两次awk获取得到的发送和接收的数据的数据单位相减除以2,分别获得发送和接收流量有多少字节;计算流量峰值的方法为:把发送和接收流量的值和初始值比较,高的设置为峰值并把这一次高的值设置为发送和接收流量变量初始值,供一次比较,循环下去。
15.优选的,步骤三中统计监控网卡10s内的平均流量的方法为:awk命令通过网卡变量对/proc/net/dev文件分别获取发送,接收的当前字节数的值,sleep休眠10秒再通过awk命令获取值;计算出发送和接收网卡流量的速率,用两次awk获取得到的发送和接收的数据的数据单位相减除于10,分别获得10s平均发送和接收流量有多少字节;把流量字节单位转换为人类可读单位并打印到屏幕上,通过printf命令做清屏打印发送和接收的平均流量。
16.优选的,步骤四中统计在10s内占用带宽最大的前10的用户端ip地址的方法为:
17.利用tcpdump抓包命令进行10s网卡数据包的抓取并把数据导入当前目录的临时文件上;
18.通过awk、sed命令对临时文件进行内容的筛选重写;
19.通过awk、sort、head命令对临时文件内容进行筛选并分别通过echo命令进行输出发送和接收10s内占用带宽最大的前10的服务端和用户端ip对应情况、流量情况。
20.优选的,发送top10的格式:服务端ip地址》用户端ip地址流量大小,接收top10的格式:用户端ip地址》服务端ip地址流量大小。
21.优选的,步骤五中获取网卡连接状态和获取各端口连接情况的方法为:通过ss获取网卡的连接状态,grep命令筛选出正在连接、等待连接的信息导入当前目录的临时文件上;
22.打印网卡正在连接和等待连接的数量分别是多少,通过awk进行筛选并统计两个状态的数量,print打印到屏幕上;
23.打印网卡端口正在连接和等待连接的具体情况,通过awk进行筛选,print打印到屏幕上;
24.其中,端口连接的格式:连接状态、端口号和连接的数量。
25.与现有技术对比,本发明具备以下有益效果:
26.1、该基于linux系统网卡监控方法,通过对网卡流量进行监控的设置,该方法可以统计出来连接服务器前10的客户端,工作人员可以快速的进行下一步的分析和问题的处理,节约了工作人员分析数据的时间,提高了工作人员的工作效率。
27.2、该基于linux系统网卡监控方法,通过对网卡连接状态和各端口连接情况进行获取,工作人员可以清晰知道服务器系统的网卡有多少用户端是正在连接的,有多少是等待连接的,具体是哪一个端口是被连接的;工作人员可以通过这些判断出一些连接状态是否异常,是否存在恶意连接,分析问题,解决问题。
具体实施方式
28.下面将对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
29.一种基于linux系统网卡监控方法,包括以下步骤:
30.步骤一:通过ifconfig命令进行获取网卡信息并做出网卡是否存在判断,存在的话,对系统所有的网卡进行打标,每个网卡对应一个数字供选择,需输入正确的数字获取对应的网卡并赋值给变量;
31.步骤二:首先获取网卡信息,获取网卡信息后设置网卡发送和接收流量变量初始值为0,awk命令通过网卡变量对/proc/net/dev文件分别获取发送,接收的字节数的值,sleep休眠2秒再通过awk命令获取值,用两次awk获取得到的发送和接收的数据的数据单位相减除于10,分别获得10s平均发送和接收流量有多少字节,即计算出发送和接收网卡流量的速率,接着把发送和接收流量的值和初始值比较,高的设置为峰值并把这一次高的值设置为发送和接收流量变量初始值,供一次比较,循环下去,计算出流量峰值,最后把流量字节单位转换为人类可读单位并打印到屏幕上,通过printf命令做清屏打印发送和接收的平均流量,其中,/proc/net/dev文件是记录linux系统的网络包量,流量,错包,丢包;而流量字节单位转换为人类可读单位,通过判断流量的值依次和922进行比较,大于就除于1024,从而得到对应人类可读单位的数值,1kb=1024b,1mb=1024kb,1gb=1024mb;
32.步骤三:awk命令通过网卡变量对/proc/net/dev文件分别获取发送,接收的当前字节数的值,sleep休眠10秒再通过awk命令获取值;计算出发送和接收网卡流量的速率,用两次awk获取得到的发送和接收的数据的数据单位相减除于10,分别获得10s平均发送和接收流量有多少字节;把流量字节单位转换为人类可读单位并打印到屏幕上,通过printf命令做清屏打印发送和接收的平均流量,统计监控网卡10秒内的平均流量;
33.步骤四:利用tcpdump抓包命令进行10s网卡数据包的抓取并把数据导入当前目录的临时文件上;通过awk、sed命令对临时文件进行内容的筛选重写;通过awk、sort、head命令对临时文件内容进行筛选并分别通过echo命令进行输出发送和接收10s内占用带宽最大的前10的服务端和用户端ip对应情况、流量情况,统计在10s内占用带宽最大的前10的用户端ip地址,且发送top10的格式:服务端ip地址》用户端ip地址流量大小,接收top10的格式:用户端ip地址》服务端ip地址流量大小;
34.通过步骤一至步骤四的设置,可以实现监控linux系统的网卡流量,网卡流量对linux系统来说,就是代表用户端访问服务端的数据量,但是网卡流量是有阈值的,如果系统网卡的流量居高不下,那就有可能系统被攻击了,而且该方法可以统计出来连接服务器前10的客户端,便于工作人员进行下一步的分析和问题的处理,如果是恶意攻击的用户端,工作人员可以通过策略进行阻断。
35.步骤五:通过ss获取网卡的连接状态,grep命令筛选出正在连接、等待连接的信息导入当前目录的临时文件上;
36.打印网卡正在连接和等待连接的数量分别是多少,通过awk进行筛选并统计两个状态的数量,print打印到屏幕上;
37.打印网卡端口正在连接和等待连接的具体情况,通过awk进行筛选,print打印到屏幕上;
38.其中,端口连接的格式:连接状态、端口号和连接的数量。
39.通过步骤五的设置,工作人员可以清晰知道服务器系统的网卡有多少用户端是正在连接的,有多少是等待连接的,具体是哪一个端口是被连接的;工作人员可以通过这些判断出一些连接状态是否异常,是否存在恶意连接,分析问题,解决问题。
40.工作原理:通过手动或者定时任务的方式调用网卡监控系统,网卡监控系统首先获取系统的网卡、实时监控网卡流量,并把流量字节单位转换为人类可读单位并打印到屏幕上,通过printf命令做清屏实时打印发送和接收流量的实时值和峰值,根据网卡流量监控统计出来连接服务器前10的客户端,进行下一步的分析和问题的处理,如果是恶意攻击的用户端,可以通过策略进行阻断,通过网卡的连接状态,可以清晰知道服务器系统的网卡有多少用户端是正在连接的,有多少是等待连接的,具体是哪一个端口是被连接的;可以通过这些判断出一些连接状态是否异常,是否存在恶意连接,分析问题,解决问题。
41.尽管已经示出和描述了本发明的实施例,对于本领域的普通技术人员而言,可以理解在不脱离本发明的原理和精神的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由所附权利要求及其等同物限定。