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

21 gnome command-line networking monitoring software-recommendation

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

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

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

s3l*_*lph 34

我认为 Nethogs 程序非常适合您的要求。从描述来看:

NetHogs 是一个小型的“网络顶部”工具。它不像大多数工具那样按协议或每个子网分解流量,而是按进程分组带宽。

你可以在包中找到这个工具nethogs,所以安装它

sudo apt-get install nethogs
Run Code Online (Sandbox Code Playgroud)

该工具使用以下命令启动:

sudo nethogs <if>
# e.g. sudo nethogs eth0
Run Code Online (Sandbox Code Playgroud)

输出如下所示:

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

可以使用该-d选项设置更新间隔,如联机帮助页 nethogs(8) 中所述。