引言
互联网上为 Linux 系统提供了许多开源的网络监控工具。例如,你可以利用 iftop 命令来监测网络带宽的消耗,使用 netstat 或 ss 命令来获取网络接口的统计信息,或者通过 top 命令来查看系统中正在运行的进程。
然而,如果你真正需要一个能够实时显示每个进程网络带宽使用情况的工具,那么 NetHogs 就是你应该寻找的唯一选择。
NetHogs 是什么?
NetHogs 是一个开源的命令行工具,功能类似于 Linux 系统中的 top 命令,它专门用来监控每个进程或应用程序在 Linux 系统中实时使用的网络带宽。
NetHogs 是一个小巧的网络流量监控工具。它不按照大多数工具那样按协议或子网来划分流量,而是将带宽按照进程进行分组。NetHogs 无需加载特殊的内核模块。如果网络流量突然激增,你可以快速启动 NetHogs,立即查看是哪个进程 ID(PID)导致了流量的增加。这让你能够轻松识别那些失控并突然占用大量带宽的程序。
在本文中,你将了解到如何在 Unix/Linux 系统上安装 NetHogs 工具,并利用它来实时监控每个进程的网络带宽使用情况。
安装 NetHogs
NetHogs 这一网络带宽监控工具适用于多种 Linux 操作系统。根据你所使用的 Linux 发行版,你可以通过以下任一方法来安装 nethogs:
在 RHEL、CentOS、Rocky Linux 和 AlmaLinux 上安装 NetHogs 为了安装 nethogs,你需要先在基于 RedHat 的 Linux 发行版中启用 EPEL 源,随后执行以下 yum 命令来下载并安装 nethogs 软件包,具体步骤如下。
# yum install epel-release
# yum install nethogs
在 Fedora Linux 上,使用 dnf 命令,如图所示。
# dnf install nethogs
在 Ubuntu、Linux Mint 和 Debian 中安装 NetHogs,请键入以下 apt 命令来安装 nethogs 软件包。
$ sudo apt install nethogs
按进程监控带宽
要运行 nethogs 实用程序,请在基于 red-hat 的系统下键入以下命令。
# nethogs
在基于 Debian 的 Linux 上,您必须具有 root 权限,因此请使用 sudo 命令运行,如图所示。
$ sudo nethogs
从上面的内容可以看出,发送和接收列展示了每个进程正在使用的流量大小。带宽的总发送和接收用量在界面底部进行了汇总。您可以通过使用下文提到的交互式控件来对数据进行排序和调整顺序。
NetHogs 命令行参数
以下是 nethogs 的一些常用命令行参数。您可以使用 '-d' 参数来设置刷新频率,并通过指定 '设备名称' 来监控特定设备的带宽(默认设备是 eth0)。
例如,如果您想将刷新频率设置为 5 秒,您可以按照如下方式输入命令。
$ sudo nethogs -d 5
要仅监控特定设备 (eth0) 网络带宽,请使用命令 as。
$ sudo nethogs eth0
要监控 eth0 和 eth1 接口的网络带宽,请键入以下命令。
$ sudo nethogs eth0 eth1
NetHogs 的选项和使用方法
- -d 参数用于设置刷新率的延迟时间。
- -h 参数用于列出所有可用命令的使用方法。
- -p 参数用于开启混杂模式进行嗅探(不推荐使用)。
- -t 参数用于开启追踪模式。
- -V 参数用于显示软件的版本信息。
NetHogs 的交互式控制 以下是 nethogs 工具的一些实用交互式控制(键盘快捷键)
- -m 参数用于更改带宽显示的单位,比如从 KB/sec 切换到 KB、B 或 MB。
- -r 参数用于按相应流量的大小进行排序。
- -s 参数用于按发送流量的大小进行排序。
- -q 参数用于退出程序并返回到命令行提示符。
要获取 nethogs 工具命令行选项的完整列表,你可以在终端中输入 ‘man nethogs‘ 或 ‘sudo man nethogs‘ 来查看其手册页。