Linux网络监控工具 - nethogs

nethogs 是一个基于命令行的网络监控工具,用于实时监视每个进程的网络流量。它可以显示每个进程使用的带宽、连接数和数据包数量等信息。

安装

在大多数Linux发行版中,您可以使用包管理器来安装 nethogs。例如,在Ubuntu/Debian上,可以使用以下命令安装:

  sudo apt-get install nethogs

启动

在终端中输入 nethogs 命令即可启动 nethogs。默认情况下,它会显示所有正在进行的网络连接的信息。

界面说明

Linux网络监控工具 - nethogs_第1张图片
nethogs的界面以表格的形式呈现,可以通过上下方向键来滚动页面。界面中的每一行都对应着一个进程及其对应的网络流量信息

  • 进程ID(PID):显示了正在使用流量的进程的ID。
  • 进程名称(Program):显示的是正在使用网络带宽的进程的名称或命令行参数。它用于标识每个进程的身份。例如:“172.18.219.63:56805-172.19.0.2:17017”,代表这是由IP地址为172.18.219.63的主机发起到172.19.0.2的连接。
  • 上传速度(Sent):显示了该进程的上传速度,单位是字节/秒。
  • 下载速度(Received):显示了该进程的下载速度,单位是字节/秒。
  • 总流量(Total):显示了该进程已经使用的总流量,单位是字节。

用法

语法
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 = total KB, 2 = total B, 3 = total MB). 默认 0
  • -c: 更新次数。默认值为0(无限制)
  • -t: 跟踪模式,以文本模式显示结果,记录下每一次刷新的流量信息
  • -p: 在混杂模式下监听流量(不推荐)
  • -s:按发送流量进行排序
运行时命令

在nethogs运行时还支持以下相关操作:

  • q: 退出
  • s: 按发送流量进行排序
  • r: 按接收流量进行排序
  • m: 切换流量显示模式;total (KB, B, MB) 和 KB/s

工作原理

  1. NetHogs通过读取/proc文件系统中的网络相关信息来获取进程的网络连接信息。它遍历/proc目录下的所有进程,并读取每个进程的网络连接信息。

  2. 对于每个网络连接,NetHogs会读取/proc//fd目录下的文件描述符信息,以确定与网络连接相关的文件描述符。

  3. NetHogs通过读取/proc//net/tcp/proc//net/udp文件来获取与网络连接相关的TCP和UDP连接的详细信息,包括源和目标IP地址、端口号等。

  4. NetHogs还会读取/proc//cmdline文件来获取进程的命令行参数,以确定进程的名称。

  5. NetHogs根据捕获到的网络数据包的源和目标IP地址、端口号以及数据包大小,计算出每个进程的网络带宽使用情况。

  6. NetHogs将收集到的数据按照进程ID、进程名称、源和目标IP地址、端口号等进行统计和显示,以提供实时的网络带宽使用情况。

你可能感兴趣的:(杂项,运维,linux,网络,nethogs,net)