终端下的网络流量监控工具。

补充说明

有很多适用于 Linux 系统的开源网络监视工具。比如说,你可以用命令 iftop 来检查带宽使用情况。netstat 用来查看接口统计报告,还有 top 监控系统当前运行进程。但是如果你想要找一个能够按进程实时统计网络带宽利用率的工具,那么 NetHogs 值得一看。

NetHogs 是一个开源的命令行工具(类似于 Linux 的 top 命令),用来按进程或程序实时统计网络带宽使用率。

来自 NetHogs 项目网站:

NetHogs 是一个小型的 net top 工具,不像大多数工具那样拖慢每个协议或者是每个子网的速度而是按照进程进行带宽分组。NetHogs 不需要依赖载入某个特殊的内核模块。如果发生了网络阻塞你可以启动 NetHogs 立即看到哪个 PID 造成的这种状况。这样就很容易找出哪个程序跑飞了然后突然占用你的带宽。
本文为你介绍如何在 Unix/Linux 操作系统下如何安装和使用 NetHogs 按进程监控网络带宽使用率。

语法

nethogs(选项)(参数)

选项

usage: nethogs [-V] [-h] [-b] [-d seconds] [-v mode] [-c count] [-t] [-p] [-s] [device [device [device ...]]]
  -V : 打印版本。
  -h : 打印此帮助。
  -b : bughunt 模式 - 暗示 tracemode。
  -d : 延迟更新刷新率(以秒为单位)。 默认值为 1。
  -v : 视图模式(0 = KB / s,1 =总 KB,2 =总 B,3 =总 MB)。 默认值为 0。
  -c : 更新次数。 默认为 0(无限制)。
  -t : tracemode.
  -p : 煽动混乱模式(不推荐)。
  -s : 按发送列排序输出。
  -a : 监控所有设备,甚至环回/停止。
  device : 要监控的设备。 默认是所有接口启动和运行,不包括环回

当 nethogs 运行时,按:
  q:退出
  s:按 SENT 流量排序
  r:按 RECEIVE 流量排序
  m:在总(KB,B,MB)和 KB / s 模式之间切换

其他参数和用法

-d : 刷新间隔
-h : 帮助
-p : promiscious 模式
-t : trace 模式
-V : 版本

交互命令

以下是 NetHogs 的一些交互命令(键盘快捷键)

  • m : 修改单位
  • r : 按流量排序
  • s : 按发送流量排序
  • q : 退出命令提示符

安装

在 RHEL、CentOS 和 Fedora 下安装 NetHogs

要安装 NetHogs,你必须要启用你所用 Linux 下的 EPEL 源。然后运行下面的 yum 命令下载安装 NetHogs 包。

yum install nethogs

在 Ubuntu、Linux mint 和 Debian 下安装 NetHogs

键入 apt-get 命令安装 NetHogs 包:

$ sudo apt-get install nethogs

NetHogs 用法

在基于 RedHat 系统下键入如下命令启动 NetHogs 工具。

nethogs

在 Debian/Ubuntu/Linux Mint 下要执行 NetHogs 你必须拥有 root 权限:

$ sudo nethogs

!nethogs

Ubuntu 12.10 下的 NetHogs 预览

正如上图所示,send 列和 received 列显示的是按照每个进程的流量统计。总的收发数据带宽在最下方,而且可以用交互命令控制排序,下面将要讨论这些交互命令。

NetHogs 命令行参数

以下就是 NetHogs 命令行的参数,用-d 来添加刷新频率参数,device name 用来检测给定的某个或者某些设备的带宽(默认是 eth0)。例如:设置 5 秒钟的刷新频率,键入如下命令即可:

nethogs -d 5
$ sudo nethogs -d 5

如果只用来监视设备(eth0)的网络带宽可以使用如下命令:

nethogs eth0
$ sudo nethogs eth0

如果要同时监视 eth0 和 eth1 接口,使用以下命令即可:

nethogs eth0 eth1
$ sudo nethogs eth0 eth1

关于 NetHogs 命令行工具的完整参数列表,可以参考 NetHogs 的手册,使用方法是在终端里输入man nethogs或者sudo man nethogs,更多信息请参考 NetHogs 项目主页。