本文主要是介绍centos7下iftop监控网络流量使用详解,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
iftop命令用于查看网络上的流量情况,包括实时速率、总流量、平均流量等,是一款实时流量监控工具。 在调试网络通信的程序中可能会用得上。 注意,iftop命令不记录历史数据,无报表,且只能显示从程序启动到现在的总流量。它的运行需要root权限。
2.安装
有两种安装方式
- yum/apt安装
2.源码编译安装
2.1 yum/apt
#Ubuntu
sudo apt install -y iftop/xenial
#Centos
sudo yum install -y iftop.x86_64
2.2 源码编译安装
2.2.1 预装系统包
#Ubuntu
sudo apt-get install flex byacc libpcap0.8 libncurses5
#Centos
sudo yum install -y flex byacc libpcap ncurses-devel libpcap-devel
2.2.2 编译安装iftop
复制代码
#下载iftop的安装包
wget http://www.ex-parrot.com/pdw/iftop/download/iftop-0.17.tar.gz
#解压缩iftop的安装包
tar xzvf iftop-0.17.tar.gz
#进入对应目录
cd iftop-0.17/
#配置
sudo ./configure
#编译
sudo make
#安装
sudo make install
复制代码
3. 运行iftop
3.1 帮助
执行iftop -h
iftop: display bandwidth usage on an interface by hostSynopsis: iftop -h | [-npblNBP] [-i interface] [-f filter code]
[-F net/mask] [-G net6/mask6]-h display this message
-n don't do hostname lookups
-N don't convert port numbers to services
-p run in promiscuous mode (show traffic between other
hosts on the same network segment)
-b don't display a bar graph of traffic
-B display bandwidth in bytes
-a display bandwidth in packets
-i interface listen on named interface
-f filter code use filter code to select packets to count
(default: none, but only IP packets are counted)
-F net/mask show traffic flows in/out of IPv4 network
-G net6/mask6 show traffic flows in/out of IPv6 network
-l display and count link-local IPv6 traffic (default: off)
-P show ports as well as hosts
-m limit sets the upper limit for the bandwidth scale
-c config file specifies an alternative configuration file
-t use text interface without ncursesSorting orders:
-o 2s Sort by first column (2s traffic average)
-o 10s Sort by second column (10s traffic average) [default]
-o 40s Sort by third column (40s traffic average)
-o source Sort by source address
-o destination Sort by destination addressThe following options are only available in combination with -t
-s num print one single text output afer num seconds, then quit
-L num number of lines to print
可以看到有很多选项,这里我分享一些常见用法示例
3.2 例子
其中:
第一行,是带宽,下面带有标尺,用来标示每个连接上的实时流量占用的带宽
中间部分,是所有的连接,默认显示的是主机名,可以通过参数显示ip,箭头表示数据方向
中间右侧三列,分别是该连接2s、10s、40s的平均流量
底部三行,分别表示发送、接收、汇总的流量
底部三行第2列,为iftop启动到现在的流量汇总
底部三行第3列,为峰值速率
第4列,为平均值
注意,流量单位为bit,非Byte
可以看到,通过iftop可以很容易看到各个连接的流量使用情况。
参数介绍
2.iftop -B
以Byte为单位展示而不是Bit为单位展示
3.iftop -n
不展示hosts信息,也可以在iftop后按n进行切换
显示为主机名
显示为ip
4.iftop -N
不展示端口号;默认展示的ip后面会带端口号。可以进入iftop后按N切换
5.iftop -F 网段
例如: iftop -F 192.168.21.0/192.168.21.0
6.iftop -P
展示host信息和端口信息
7.iftop -i eth0
指定只展示eth0网卡的进出流量,默认只展示eth0的网卡信息
8. 排序(最重要的)
iftop -o 2s,按照rate(2秒内平均流量)那列排序,也可以进入iftop按1
iftop -o 10s,按照rate(10秒内平均流量)那列排序,也可以进入iftop按2
iftop -o 40s,按照rate(40秒内平均流量)那列排序,也可以进入iftop按3
iftop -o source,按照源地址排序,也可以进入iftop按<
iftop -o source,按照目的地址排序,也可以进入iftop按>
- 常用快捷键
q:退出
?:帮助模式
P: 停止屏幕信息刷新
S: 切换source端口展示
D:切换dest端口展示
j/k:向前后滚动屏幕信息
在启动iftop时,可以指定监控的网卡,默认为第一块网卡:
iftop -i eth1
其他常用命令:
iftop -n # 直接显示IP, 不进行DNS反解析
iftop -N # 直接显示连接埠编号, 不显示服务名称
iftop -F 192.168.1.0/24 or 192.168.1.0/255.255.255.0 # 显示某个网段进出包流量
一般情况下,使用 iftop -nN启动即可。
在进入iftop界面后,直接输入以下参数进行调节控制:
h:显示帮助开关
n: 显示主机名/主机ip开关
s:显示本机host开关
d:显示远端主机host开关
t:切换显示格式为2行/1行/只显示发送流量/只显示接收流量
N:显示端口号或端口服务名称开关
S:显示本机的端口信息开关
D:显示远端目标主机的端口信息开关
p:显示端口信息开关
P:切换暂停/继续显示
b:显示平均流量图形条开关,以界面第一行带宽为标尺,上图中的白条状图即是
B:切换计算2秒或10秒或40秒内的平均流量
T:显示每个连接的总流量开关
l:打开屏幕过滤功能,输入要过滤的字符,比如ip, 按回车后,屏幕就只显示这个IP相关的流量信息
L:切换显示画面上边的刻度; 刻度不同,流量图形条会有变化
j或k:可以向上或向下滚动屏幕显示的连接记录
1或2或3:可以根据右侧显示的三列流量数据进行排序
<:根据左边的本机名或IP排序
>:根据远端目标主机的主机名或IP排序
o:切换是否固定只显示当前的连接
f:可以编辑过滤代码
!: 可以使用shell命令
q: 退出
我一般都是使用iftop -nN -i eth0启动,然后再辅助各种参数来调整。
扩展
iftop使用比较简单,通过各种参数也能很快找到自己想要的数据。
也有一些其他流量监控工具,如:
ip:查看网卡上的总流量来自 iproute2util 包,在大多数系统上都已经默认安装,也可通过 yum install -y iproute 安装
nload:查看各个网络设备的当前网络速率来自EPEL软件库,安装:yum install -y epel-release && yum install -y nload
iptraf-ng:可以输出网卡的tcp、udp等各种数据,和各个网卡的实时网速默认未安装,可使用 yum install -y iptraf-ng 安装
stat:用来替换vmstat、iostat、netstat、nfsstat和ifstat的全能系统信息统计工具,支持数据实时刷新,输出直观易懂默认没有安装,安装命令为:yum install -y dstat
sar:System Activity Report的缩写,是一款全面的Linux系统运行状态统计和性能分析工具,可从磁盘IO、CPU负载、内存使用等多个维度对系统活动进行报告来自 sysstat 包,安装:yum install -y sysstat
ss 和 netstat:查看活动链接/监听端口的常用命令。ss 是 netstat 的替代,性能更好,建议使用ss 是 iproute2util 包的一部分,netstat 来自 net-tools 包,新版系统上需要自行安装:yum install -y net-tools
nethogs:查看单个进程流量而设计的工具,按照进程进行带宽分组来自EPEL软件库,安装命令是:yum install -y epel-release && yum install -y nethogs
tcpdump:用来抓包,保存的数据可以用wireshark打开和查看
这篇关于centos7下iftop监控网络流量使用详解的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!