centos的流量检测

Linux中查看网卡流量工具有iptraf、iftop、nmap以及nethogs等,iftop可以用来监控网卡的实时流量(可以指定网段)、反向解析IP、显示端口信息等。

先介绍iftop

iftop能实现实时的网络流量,监控TCP/IP连接,反向解析IP,显示端口信息等

安装

yum install iftop

或者源码安装从其官网(Index of /pdw/iftop/download)上,选择一个最新版本(iftop-1.0pre4.tar.gz)

安装相关依赖库: yum install -y flex byacc libpcap ncurses-devel libpcap-devel 

下载wget http://www.ex-parrot.com/pdw/iftop/download/iftop-1.0pre4.tar.gz 

解压缩:tar -zxvf iftop-1.0pre4.tar.gz 

cd iftop-1.0pre4 

编译:./configure

安装:make && make install

语法:

语法: iftop -h | [-npblNBP] [-i interface] [-f filter code] [-F net/mask] [-G net6/mask6]

   -i interface        监控的网卡接口(interface)  iftop -i em1

 -P                  显示端口(Port) , iftop -P

 -n                  不进行主机名(hostName)查找  
 -N                  不将端口号(port Number)转换成对应的服务 to services  
 -p                  混合(Promiscuous)模式(显示网络相关的其他主机信息)  
 -b                  不显示流量图形条(Bar)  
 -B                  以字节(Byte)为单位,显示带宽(Bandwidth);默认以比特(bit)显示的  

 -F net/mask         显示特定IPv4网段的进出流量(Flow);如# iftop  -B -F 10.10.1.0/24  


  

界面说明:

界面上面显示的是类似刻度尺的刻度范围,为显示流量图形的长条作标尺用的。
前面IP是本机的(Source),后面IP远程主机的(Dest);
中间的<= =>这两个左右箭头,表示的是流量的方向。
右侧的三列数值:
第一列是:在此次刷新之前2s或10s或40s的平均流量(按B设置秒数); 
第二列是:在此次刷新之前10秒钟的总流量的一半; 
第三列是:在此次刷新之前40秒钟的总流量的1/5;
TX:发送(Transmit)流量;RX:接收(Receive)流量;TOTAL:总流量;
cum:运行iftop到目前时间的总和(Cum);peak:流量峰(Peak)值;
rates:分别表示过去 2s 10s 40s 的平均流量;

  

iptraf是一个基于ncurses开发的IP局域网监控工具,它可以实时地监视网卡流量,可以生成各种网络统计数据,包括TCP信息、UDP统计、ICMP和OSPF信息、以太网负载信息、节点统计、IP校验和错误和其它一些信息。

安装:yum -y install iptraf

使用: iptraf-ng

想查某个端口占用的进程:netstat -tunp | grep 端口号,也可以用lsof -i:端口号

 sar(System ActivityReporter系统活动情况报告)可以从多方面对系统的活动进行报告,包括:文件的读写情况、系统调用的使用情况、磁盘I/O、CPU效率、内存使用状况、进程活动及IPC有关的活动等

sar 通过它能够查看各个网口的IP报文流量统计

  1.10.5:sar -n 使用总结

-n DEV : 网络接口统计信息。
-n EDEV : 网络接口错误。
-n IP : IP数据报统计信息。
-n EIP : IP错误统计信息。
-n TCP : TCP统计信息。
-n ETCP : TCP错误统计信息。
-n SOCK : 套接字使用。

sar -n DEV 1 100

IFACE:LAN接口
rxpck/s:每秒钟接收的数据包
txpck/s:每秒钟发送的数据包
rxbyt/s:每秒钟接收的字节数
txbyt/s:每秒钟发送的字节数
rxcmp/s:每秒钟接收的压缩数据包
txcmp/s:每秒钟发送的压缩数据包
rxmcst/s:每秒钟接收的多播数据包

只查看某个网卡:sar -n DEV 1 200|grep em1

    
   

Nethogs

Nethogs 是一个终端下的网络流量监控工具,它的特别之处在于可以显示每个进程的带宽占用情况,这样可以更直观获取网络使用情况。它支持 IPv4 和 IPv6 协议、支持本地网卡及 PPP 链接。NetHogs是一个开源的命令行工具(类似于Linux的top命令),用来按进程或程序实时统计网络带宽使用率

安装:
安装之前需要先

yum install ncurses*
yum install libpcap-dev libncurses5-dev

yum install nethogs

或者从SourceForge上下载nethogs-0.8.0.tar.gz

使用wget下载:

wget http://sourceforge.net/projects/nethogs/files/nethogs/0.8/nethogs-0.8.0.tar.gz/download

解压文件:

tar -zxvf nethogs-0.8.0.tar.gz

切换目录:

cd nethogs

编译安装:

make && make install

应和:nethogs

查看帮助:-h


 

nload

nload是一个很小巧的工具,用来监控当前系统的网速

安装:yum install nload

或者源码安装:
wget http://www.roland-riegel.de/nload/nload-0.7.4.tar.gz
   图形查看
nload -t 200 -i 1024 -o 128 -U M

网卡流量
nload em1
nload -m            

    # 左右键可以在多个网卡之间切换

tcpdump采用命令行方式对接口的数据包进行筛选抓取,其丰富特性表现在灵活的表达式上。

 tcpdump -nn -i em1 icmp

tcpdump -i em1 'tcp port 80'

tcpdump udp port 123

(1)想要截获所有210.27.48.1 的主机收到的和发出的所有的数据包:
#tcpdump host 210.27.48.1
(2) 想要截获主机10.7.48.1 和主机210.27.48.2 或210.27.48.3的通信,使用命令:(在命令行中适用   括号时,一定要
#tcpdump host 10.7.48.1 and \ (210.27.48.2 or 210.27.48.3 \)
(3) 如果想要获取主机10.7.48.1除了和主机10.7.48.2之外所有主机通信的ip包
,使用命令:
#tcpdump ip host 10.7.48.1 and ! 10.7.48.2
(4)如果想要获取主机10.7.48.1接收或发出的telnet包,使用如下命令:
 #tcpdump tcp port 23 host 10.7.48.1

tcpdump选项

tcpdump [ -DenNqvX ] [ -c count ] [ -F file ] [ -i interface ] [ -r file ]
        [ -s snaplen ] [ -w file ] [ expression ]

抓包选项:
-c:指定要抓取的包数量。注意,是最终要获取这么多个包。例如,指定"-c 10"将获取10个包,但可能已经处理了100个包,只不过只有10个包是满足条件的包。
-i interface:指定tcpdump需要监听的接口。若未指定该选项,将从系统接口列表中搜寻编号最小的已配置好的接口(不包括loopback接口,要抓取loopback接口使用tcpdump -i lo),
            :一旦找到第一个符合条件的接口,搜寻马上结束。可以使用'any'关键字表示所有网络接口。
-n:对地址以数字方式显式,否则显式为主机名,也就是说-n选项不做主机名解析。
-nn:除了-n的作用外,还把端口显示为数值,否则显示端口服务名。
-N:不打印出host的域名部分。例如tcpdump将会打印'nic'而不是'nic.ddn.mil'。
-P:指定要抓取的包是流入还是流出的包。可以给定的值为"in"、"out"和"inout",默认为"inout"。
-s len:设置tcpdump的数据包抓取长度为len,如果不设置默认将会是65535字节。对于要抓取的数据包较大时,长度设置不够可能会产生包截断,若出现包截断,
      :输出行中会出现"[|proto]"的标志(proto实际会显示为协议名)。但是抓取len越长,包的处理时间越长,并且会减少tcpdump可缓存的数据包的数量,
      :从而会导致数据包的丢失,所以在能抓取我们想要的包的前提下,抓取长度越小越好。

输出选项:
-e:输出的每行中都将包括数据链路层头部信息,例如源MAC和目标MAC。
-q:快速打印输出。即打印很少的协议相关信息,从而输出行都比较简短。
-X:输出包的头部数据,会以16进制和ASCII两种方式同时输出。
-XX:输出包的头部数据,会以16进制和ASCII两种方式同时输出,更详细。
-v:当分析和打印的时候,产生详细的输出。
-vv:产生比-v更详细的输出。
-vvv:产生比-vv更详细的输出。

其他功能性选项:
-D:列出可用于抓包的接口。将会列出接口的数值编号和接口名,它们都可以用于"-i"后。
-F:从文件中读取抓包的表达式。若使用该选项,则命令行中给定的其他表达式都将失效。
-w:将抓包数据输出到文件中而不是标准输出。可以同时配合"-G time"选项使得输出文件每time秒就自动切换到另一个文件。可通过"-r"选项载入这些文件以进行分析和打印。
-r:从给定的数据包文件中读取数据。使用"-"表示从标准输入中读取。
网卡信息查看: dmesg | grep -i em

  • 25
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值