Nethogs是一个小型的net top工具,用于按进程实时监控网络带宽使用率。以下是关于Nethogs命令的详细介绍:
一、命令简介
Nethogs可以直观地显示每个进程占用的带宽,不像大多数工具那样拖慢每个协议或者是每个子网的速度。如果网络出现阻塞,用户可以启动Nethogs,立即查看是哪个进程标识符(PID)导致了这种情况,从而找出并终止异常占用带宽的程序。Nethogs不需要依赖载入某个特殊的内核模块,且是一个开源的命令行工具,类似于Linux的top命令。
二、安装方法
在Linux系统中,可以通过以下命令安装Nethogs:
在Ubuntu/Debian系统上,使用
sudo apt-get update
和sudo 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
:按发送流量进行排序。
四、使用示例
监控所有网络接口:直接运行
nethogs
命令,无需任何参数,即可监控所有网络接口的流量信息。监控特定网络接口:使用
-i
参数指定要监控的网络接口,例如nethogs -i eth0
。设置刷新频率:使用
-d
参数设置刷新频率,例如nethogs -d 0.5
表示每0.5秒更新一次流量信息。显示流量单位:使用
-v
参数设置流量显示单位,例如nethogs -v 3
表示以MB为单位显示流量。启用追踪模式:使用
-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.
参与讨论
(Participate in the discussion)
参与讨论