手把手教你CentOS 7.x下安装网络流量实时监控工具iftop的两种方法

在类Unix系统中可以使用top查看系统资源,进程,内存占用等信息,查看网络状态可以使用netstat、nmap等工具,若要查看实时的网络流量,监控TCP/IP连接,反向解析IP,显示端口信息等,则可以使用iftop,关于centos上安装iftop有两种方法,一种是直接yum安装,一种是自己编译安装,下面我们一起来看下吧!

yum方式安装比较简单,直接以下命令即可:

yum -y install iftop

一般情况下这样就可以安装好了,但是有的小伙伴会遇到以下问题:

# yum install iftop //用命令直接安装

Loaded plugins: fastestmirror  

Loading mirror speeds from cached hostfile

 * base: mirrors.skyshe.cn  

 * extras: centos.ustc.edu.cn  

 * updates: mirrors.skyshe.cn  

Setting up Install Process  

No package iftop available. //没有可用的安装包  

Error: Nothing to do //什么都没干  

出现这种情况,我们就需要自己下载iftop,然后解压,配置,编译安装了,

我们先去iftop的官网上下载,官网链接:http://www.ex-parrot.com/pdw/iftop/download/,选择最新版本(当前最新版iftop-1.0pre4.tar.gz),

开始之前,我们先安装iftop所需的依赖软件,

# yum install -y flex byacc libpcap ncurses-devel libpcap-devel //先要安装必需的软件  

接下来就可以创建目录并下载、配置、编译安装了,

# mkdir iftop  

# cd iftop/ 

# 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 //编译安装  

OK,安装完成,关于iftop的使用命令,大家自行百度、谷歌一下,一搜一大把,下面以一个示例来简单说明下:

iftop -i netcard -B -n

netcard是网卡名称,可以通过ifconfig命令查看得到,- i netcard是指定网卡,-B是以byte显示网速,默认是以bit显示的,-n是直接显示IP而不是显示主机名。

三款简单而优秀的 Linux 网络监视工具

你可以通过这三个 Linux 命令了解当前网络的大量信息。iftop 通过进程号跟踪网络连接,nethogs 快速告知你哪些进程在占用你的带宽,而 vnstat 以一个良好的轻量级守护进程在后台运行,并实时记录你的网络使用情况。

iftop

令人称赞的 iftop 可以监听您指定的网络接口,并以 top 的样式呈现。

这是一个不错的小工具,可以用于找出网络拥塞,测速和维持网络流量总量。看到自己到底在用多少带宽往往是非常惊人的,尤其是对于我们这些仍然记得电话线路、调制解调器,“高速”到令人惊叫的 kb 和实时波特率的老人们。我们在很久之前就不再使用波特率,转而钟情于比特率。波特率用于衡量信号变化,尽管有时候与比特率相同,但大多数情况下并非如此。

如果你只有一个网络接口,直接运行 iftop 即可。不过 iftop 需要 root 权限:

$ sudo iftop

如果你有多个网络接口,那就指定你要监控的接口:

$ sudo iftop -i wlan0

就像 top 命令一样,你可以在命令运行时更改显示选项:

  • h 切换帮助界面。
  • n 是否解析域名。
  • s 切换源地址的显示,d 则切换目的地址的显示。
  • S 是否显示端口号。
  • N 是否解析端口;若关闭解析则显示端口号。
  • t 切换文本显示界面。默认的显示方式需要 ncurses。我个人认为图 1 的显示方式在组织性和可读性都更加良好。
  • p 暂停显示更新。
  • q 退出程序。

未分类

当你切换显示设置的时候,iftop 并不会中断监测流量。当然你也可以单独监测一台主机。而这需要该主机的 IP 地址和子网掩码。现在,我很好奇 Pandora(LCTT 译注:一家美国的电台公司)能给我贫瘠的带宽带来多大的负载。因此我首先使用 dig 命令找到他们的 IP 地址:

$ dig A pandora.com
[...]
;; ANSWER SECTION:
pandora.com.            267     IN      A       208.85.40.20
pandora.com.            267     IN      A       208.85.40.50

那子网掩码呢?ipcalc 会告诉我们:

$ ipcalc -b 208.85.40.20
Address:   208.85.40.20   
Netmask:   255.255.255.0 = 24
Wildcard:  0.0.0.255  
=>
Network:   208.85.40.0/24 

现在,将 IP 地址和子网掩码提供给 iftop:

$ sudo iftop -F 208.85.40.20/24 -i wlan0

很棒的不是么?而我也很惊奇地发现,Pandora 在我的网络上,每小时大约使用 500kb。并且就像大多数流媒体服务一样,Pandora 的流量在迅速增长,并依靠缓存稳定下来。

你可以使用 -G 选项对 IPv6 地址执行相同的操作。查阅友好的 man 可以帮助你了解 iftop 的其他功能,包括使用个人配置文件自定义你的默认选项,以及使用自定义过滤(请参阅 PCAP-FILTER 来获取过滤指南)。

nethogs

当你想要快速了解是谁在吸取你的带宽的时候,nethogs 是个快速而简单的方法。你需要以 root 身份运行并指定要监听的接口。它会给你显示大量的应用程序及其进程号,所以如果你想的话,你可以借此杀死任一进程。

$ sudo nethogs wlan0
nethogs version 0.8.1
PID USER   PROGRAM              DEV    SENT   RECEIVED       
7690 carla /usr/lib/firefox     wlan0 12.494 556.580 KB/sec
5648 carla .../chromium-browser wlan0  0.052   0.038 KB/sec
TOTAL                                 12.546 556.618 KB/sec 

nethogs 并没有多少选项:在 kb/s、kb、b、mb之间循环,按接收和发送的数据包排序,调整刷新延迟。具体请看man nethogs,或者是运行 nethogs -h。

vnstat

vnstat是最容易使用的网络数据收集工具。它十分轻量并且不需要 root 权限。它以守护进程在后台运行,因此可以实时地记录你的网络数据。单个 vnstat 命令就可以显示所累计的数据。

$ vnstat -i wlan0
Database updated: Tue Oct 17 08:36:38 2017
   wlan0 since 10/17/2017
          rx:  45.27 MiB      tx:  3.77 MiB      total:  49.04 MiB
   monthly
                     rx      |     tx      |    total    |   avg. rate
     ------------------------+-------------+-------------+---------------
       Oct '17     45.27 MiB |    3.77 MiB |   49.04 MiB |    0.28 kbit/s
     ------------------------+-------------+-------------+---------------
     estimated        85 MiB |       5 MiB |      90 MiB |
   daily
                     rx      |     tx      |    total    |   avg. rate
     ------------------------+-------------+-------------+---------------
         today     45.27 MiB |    3.77 MiB |   49.04 MiB |   12.96 kbit/s
     ------------------------+-------------+-------------+---------------
     estimated       125 MiB |       8 MiB |     133 MiB |

默认情况下它会显示所有的网络接口。使用 -i 选项来选择某个接口。也可以像这样合并多个接口的数据:

$ vnstat -i wlan0+eth0+eth1

你可以通过这几种方式过滤数据显示:

  • -h 按小时显示统计信息。
  • -d 按天显示统计信息.
  • -w 和 -m 分别按周和月份来显示统计信息。
  • 使用 -l 选项查看实时更新。

以下这条命令将会删除 wlan1 的数据库并不再监视它:

$ vnstat -i wlan1 --delete

而下面这条命令将会为你的一个网络接口创建一个别名。这个例子使用了 Ubuntu 16.04 的一个有线接口名称:

$ vnstat -u -i enp0s25 --nick eth0

默认情况下,vnstat 会监视 eth0。你可以在 /etc/vnstat.conf 对它进行修改,或者在你的家目录下创建你自己的个人配置文件。请参阅 man vnstat 以获取完整的指南。

你也可以安装 vnstati 来创建简单的彩图(图 2):

$ vnstati -s -i wlx7cdd90a0a1c2 -o vnstat.png

未分类

请参阅 man vnstati 以获取完整的选项。

Iftop-网络流量实时监控工具

iftop介绍

Iftop 主要用来显示本机网络流量情况及各相互通信的流量集合,如单独同那台机器间的流量大小,非常适合于代理服务器和iptables服务器使用。

iftop安装

1、安装依赖

  1. yum install libpcap-devel ncurses-devel

2、开始安装

  1. wget http://www.ex-parrot.com/pdw/iftop/download/iftop-0.17.tar.gz
  2. tar xzf iftop-0.17.tar.gz
  3. cd iftop-0.17
  4. ./configure
  5. make && make install

如何使用

直接执行iftop即可运行查看流量情况。
执行iftop -h得到帮助信息

  1. [root@www ~]#iftop -h
  2. iftop: display bandwidth usage on an interface by host
  3.  
  4. Synopsis: iftop -h | [-npbBP] [-i interface] [-f filter coolcode] [-N net/mask]
  5.  
  6.    -h                  display this message
  7.    -n                  don’t do hostname lookups
  8.    -N                  don’t convert port numbers to services
  9.    -p                  run in promiscuous mode (show traffic between other
  10.                        hosts on the same network segment)
  11.    -b                  don’t display a bar graph of traffic
  12.    -B                  Display bandwidth in bytes
  13.    -i interface        listen on named interface
  14.    -f filter coolcode      use filter coolcode to select packets to count
  15.                        (default: none, but only IP packets are counted)
  16.    -F net/mask         show traffic flows in/out of network
  17.    -P                  show ports as well as hosts
  18.    -m limit            sets the upper limit for the bandwidth scale
  19.    -c config file      specifies an alternative configuration file

官方网站:http://www.ex-parrot.com/pdw/iftop/