Nethogs是一个小型的net top工具,用于按进程实时监控网络带宽使用率。以下是关于Nethogs命令的详细介绍:

一、命令简介

Nethogs可以直观地显示每个进程占用的带宽,不像大多数工具那样拖慢每个协议或者是每个子网的速度。如果网络出现阻塞,用户可以启动Nethogs,立即查看是哪个进程标识符(PID)导致了这种情况,从而找出并终止异常占用带宽的程序。Nethogs不需要依赖载入某个特殊的内核模块,且是一个开源的命令行工具,类似于Linux的top命令。

二、安装方法

在Linux系统中,可以通过以下命令安装Nethogs:

  • 在Ubuntu/Debian系统上,使用sudo apt-get updatesudo apt-get install nethogs命令。

  • 在CentOS/RHEL系统上,使用sudo yum install nethogs命令。

  • 在Fedora系统上,使用sudo dnf install nethogs命令。

三、使用语法及参数

Nethogs的基本使用语法为:nethogs [参数] [device]。其中,[参数]为可选参数,用于设置Nethogs的显示模式、刷新频率等;[device]为要监控的网络设备名称,默认为eth0。以下是一些常用的参数:

  • -V:打印版本信息。

  • -h:显示帮助信息。

  • -d:指定刷新间隔的秒数,默认为1秒。

  • -v:设置流量显示模式(0=KB/s,1=total KB,2=total B,3=total MB),默认为0。

  • -c:限制刷新次数,默认为0(无限制)。

  • -a:显示所有进程,包括僵尸进程。

  • -t:启用追踪模式,记录每一次刷新的流量信息。

  • -p:在混杂模式下监听流量(不推荐)。

  • -s:按发送流量进行排序。

四、使用示例

  1. 监控所有网络接口:直接运行nethogs命令,无需任何参数,即可监控所有网络接口的流量信息。

  2. 监控特定网络接口:使用-i参数指定要监控的网络接口,例如nethogs -i eth0

  3. 设置刷新频率:使用-d参数设置刷新频率,例如nethogs -d 0.5表示每0.5秒更新一次流量信息。

  4. 显示流量单位:使用-v参数设置流量显示单位,例如nethogs -v 3表示以MB为单位显示流量。

  5. 启用追踪模式:使用-t参数启用追踪模式,记录每一次刷新的流量信息。

五、运行模式下按键说明

在Nethogs运行模式下,用户可以通过键盘快捷键进行交互:

  • m:在kb/s、kb、b、mb几种显示模式之间循环切换。

  • r:按接收流量排序。

  • s:按发送流量排序。

  • q:退出Nethogs。

六、输出解读

Nethogs的输出信息包括:

  • PID:进程标识符。

  • PROGRAM:进程的命令行。

  • SENT:发送流量(Bytes/Second)。

  • RECEIVED:接收流量(Bytes/Second)。

这些信息可以帮助用户识别哪些进程消耗了大量的网络带宽。

总的来说,Nethogs是一个轻量级的、用户友好的Linux命令行工具,适用于监视和管理网络流量。在网络问题排查和监控时,它是一个非常实用的工具。

例子

wget https://github.com/raboof/nethogs/archive/v0.8.1.tar.gz
yum install libpcap-devel
tar zxvf v0.8.1.tar.gz
cd nethogs-0.8.1/
make && make install
nethogs eno1

以下是NetHogs的一些很有用的交互控制(键盘快捷键)

​
    -m: Change the units displayed forthe bandwidth inunits like KB/sec->KB->B->MB.
    -r: Sort by magnitude of respectively traffic.
    -s: Sort by magnitude of sent traffic.
    -q: Hit quit tothe shell prompt.
​