如何找出哪个进程占用了我的带宽?

我想我是这里的一个bug的受害者。 有时在我工作的时候(我仍然不知道为什么),我的网络流量上升到200 KB / s并保持这种状态,即使很难,我也没有做任何与互联网相关的事情。

这有时会发生在CPU使用率上。 当它发生时,我只是运行一个top命令来找出哪个进程负责然后kill它。 问题是:我无法知道哪个进程对我的高网络使用负责。 资源监视器和top命令都只告诉我我的总网络使用情况,它们都没有告诉我特定于进程的网络信息。

我在这里发现了关于监控总带宽使用的问题,但正如我所提到的那样,这不是我需要的。 是否有另一个命令我可以用来找出哪个过程失控?

iftop命令给出的结果完全iftop系统监视器报告的信息。 虽然后者声称网络流量很高,但前者声称只有1 KB / s。

我已经尝试杀死所有明显的(Firefox,更新管理器,Pidgin等)而没有运气。 到目前为止,重新启动机器是我找到解决问题的唯一方法。

我在nethogs上取得了很大的成功。 它必须以root身份运行,但您可以通过不同的方式对统计信息进行排序(例如,自nethogs启动以来监控的KB / s或总带宽)。

此外,如果您使用无线,则需要将设备传递给它。

使用命令安装它: sudo apt-get install nethogs

示例: sudo nethogs wlan0

使用iftop查找计算机上接收最多流量的TCP端口。 然后使用sudo netstat -tup找到“拥有”该端口的进程。

那是你正在寻找的过程。

PS:也应该为UDP工作。

您可能希望查看ntop – 它应该监视进程级别的网络活动。 您可以在软件中心或sudo apt-get install ntop

有关安装说明,请访问他们的页面http://packages.ntop.org/

另一种选择是iptraf。 它不会告诉你进程的PID,但会告诉你哪个连接使用了多少带宽。

迟到的答案,但我遇到了同样的问题。 原来是Ubuntuone。 通过运行tcpdump发现。 我在过程识别方面经历了相同的学习曲线。 我的笔记在这里 。