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