![我如何知道哪些进程正在使用网络?](https://linux22.com/image/543091/%E6%88%91%E5%A6%82%E4%BD%95%E7%9F%A5%E9%81%93%E5%93%AA%E4%BA%9B%E8%BF%9B%E7%A8%8B%E6%AD%A3%E5%9C%A8%E4%BD%BF%E7%94%A8%E7%BD%91%E7%BB%9C%EF%BC%9F.png)
有时我可以在 Gnome 系统监视器中看到网络使用率很高。我想知道哪个进程正在下载/上传数据。是否有任何工具可以向我显示:
- 哪些进程正在使用互联网
- 动态实时查看这些过程的下载/上传速度
- 连接的详细信息(例如远程 IP、端口号等)
我的系统是 Ubuntu 10.10。
我试过了lsof
,但输出看起来非常不友好。也许有一些技巧可以使用它?或者有更好的替代方案?
答案1
netstat --inet -ap
将显示哪些进程正在使用互联网以及每个进程正在使用的主机/端口。如果您想要 IP 地址而不是主机名,请使用-n
。(--inet
仅显示互联网套接字,-a
显示侦听和连接套接字,-p
显示进程名称/ID 信息)。您可能希望使用 来运行它,sudo
以便它可以为您提供有关所有进程的信息。
nethogs
将显示每个进程正在使用的带宽量,但它不会告诉您每个进程正在连接到哪个主机。
ntop有点沉重,但可以让您大致了解网络流量。
(netstat 是默认安装的,而 nethogs 和 ntop 可在 Ubuntu 的 repos 中找到)
据我所知,没有任何单一实用程序可以将 1、2 和 3 结合在一起。
答案2
答案3
答案4
查看网络状态-p,但我不知道您是否会发现输出比 lsof 更友好。它也无法满足您的第二个要求。