IFTOP 指南:显示 Linux 上的网络接口带宽使用情况

使用 iftop 监控您的网络是一项简单的任务,它显示了主机的当前带宽使用情况表。iftop在列表顶部显示负责最多通信量的主机,这使得识别导致网络拥塞的主机更加容易。

Iftop 输出显示过去 2 秒、10 秒和 40 秒内发送和接收的数据的数据传输率。
本文提供了 iftop 的概述、安装说明、示例使用示例和 iftop 的屏幕截图。

IFTOP概述

  • iftop (interface top) 从标准的 unix top 命令派生出这个名字。top 命令显示实时 CPU 使用率。iftop 命令显示实时网络带宽使用情况。
  • iftop 显示主机上特定接口的网络使用情况。
  • 使用 iftop,您可以确定哪个主机导致网络速度变慢。
  • 要找出导致问题的进程,请记下 iftop 中的端口号并使用 netstat -p 来识别进程。
  • iftop 监控您的网络活动,并显示当前带宽表。

下载iftop

iftop 网站下载源代码。

# cd /usr/src
# wget http://www.ex-parrot.com/~pdw/iftop/download/iftop-0.17.tar.gz

安装iftop

# cd /usr/src
# gzip -d iftop-0.17.tar.gz
# tar xvf iftop-0.17.tar
# cd iftop-0.17

# ./configure
# make
# make install


iftop 用法

默认的 iftop 命令显示第一个以太网设备的带宽使用情况。

# iftop


您还可以使用 -i 选项指定特定接口,如下所示。

# iftop -i eth0


在 iftop 运行时,您可以按以下任一键来显示更多输出。

S - display source port
D - display destination port
n - show IP instead of host name
1/2/3 - sort by the specified column
< - sort by source name
> - sort by dest name
P - pause display ( else it will be often updated to show the current status )
j/k - scroll display
? - for help


如果您从非 root 帐户执行 iftop,您将收到以下错误消息。


$ /usr/sbin/iftop -i eth0
interface: eth0
IP address is: 192.168.1.111
MAC address is: 00:44:ab:ab:10:11
pcap_open_live(eth0): socket: Operation not permitted

iftop 配置文件

~/.iftoprc 是 iftop 的默认配置文件。该文件的格式是-名称:值。

如果您将端口显示设置为如下所示,iftop 命令将默认显示端口。

# cat ~/.iftoprc
port-display: on

对 iftop 问题进行故障排除

问题 1:从源代码安装 iftop 时,执行 ./configure 会给出以下 pcap.ph 错误消息。

[root@localhost iftop-0.17]# ./configure
 checking gethostbyaddr_r usability... yes

checking where to find pcap.h... no idea
configure: error: can't find pcap.h
  You're not going to get very far without libpcap.

解决方案 1:确保安装了 libpcap 和 libpcap-devel。如果没有,请按如下所示安装它。

# up2date -i libpcap libpcap-devel
Installing...
   1:libpcap          ######################### [100%]
   2:libpcap-devel  ######################### [100%]

# rpm -qa | grep libpcap
libpcap-devel-0.9.4-12.el5.0.1
libpcap-0.9.4-12.el5.0.1


问题 2:从源代码安装 iftop 时,执行 ./configure 会给出以下 ncurses/mvchgat 错误消息。

[root@localhost iftop-0.17]# ./configure
checking for a curses library containing mvchgat... none found
configure: error: Curses! Foiled again!
  (Can't find a curses library supporting mvchgat.)
  Consider installing ncurses.

解决方案 2:确保安装了 ncurses 和 ncurses-devel。如果没有,请按如下所示安装它。

# up2date -i ncurses ncurses-devel
Installing...
   1:ncurses          ######################### [100%]
   1:ncurses-devel  ######################### [100%]

# rpm -qa | grep ncurses
ncurses-devel-5.5-24.20120715
ncurses-5.5-24.20120715
(完)