vlambda博客
学习文章列表

centos 本机网络流量监控方法总结

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

先介绍iftop

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

安装

yum install iftop

或者源码安装从其官网(http://www.ex-parrot.com/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  


  centos 本机网络流量监控方法总结

界面说明:

界面上面显示的是类似刻度尺的刻度范围,为显示流量图形的长条作标尺用的。
前面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

centos 本机网络流量监控方法总结

centos 本机网络流量监控方法总结

想查某个端口占用的进程: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:每秒钟接收的多播数据包

centos 本机网络流量监控方法总结

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

    centos 本机网络流量监控方法总结
   

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

centos 本机网络流量监控方法总结

centos 本机网络流量监控方法总结
 

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

centos 本机网络流量监控方法总结

网卡流量
nload em1
nload -m            

centos 本机网络流量监控方法总结    # 左右键可以在多个网卡之间切换

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 ]

输出选项:
-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