如何判断哪些进程正在上传和下载数据(以及有多少)?

如何判断哪些进程正在上传和下载数据(以及有多少)?

我可以在系统监视器中看到数据正在上传和下载,我可以在 Etherape 中看到它连接到哪些站点以及正在使用哪种协议。但是,如果不查看 WireShark 中的实际数据包,然后找到端口以及哪个进程正在侦听该端口,我就无法判断哪些进程正在上传和下载数据。所以我想知道是否有一种更简单的方法,可以使用 WireShark(或其他工具)手动查找端口,然后查看哪个进程正在侦听该端口?理想情况下,此应用程序将:

  • 给我一个进程列表
  • 显示正在上传和下载的数据量(以 KiB/s 为单位)(在不同的列中)
  • 显示进程的 PID
  • 显示进程正在监听的端口
  • 在表格中显示所有这些信息
  • 是一个 CLI 程序(理想情况下,但不一定在 CLI 中)
  • 能够改变数据的更新间隔

我正在运行带有 GNOME 3.18 的 Ubuntu GNOME 15.10,是否有可以满足我的需求的软件?

答案1

我认为 Nethogs 程序完全符合您的要求。描述如下:

NetHogs 是一款小型“网络流量”工具。它不像大多数工具那样按协议或子网细分流量,而是按进程对带宽进行分组。

您可以在软件包中找到此工具nethogs,因此请使用以下命令安装它:

sudo apt-get install nethogs

该工具通过以下命令启动:

sudo nethogs <if>
# e.g. sudo nethogs eth0

输出看起来像这样:

您可以使用 循环切换各种显示模式M;这将在不同的测量单位和带宽使用情况与数据量之间切换。

可以使用选项设置更新间隔-d,如手册页 nethogs(8) 中所述。

相关内容