我如何找出哪个进程正在消耗我的带宽?

我如何找出哪个进程正在消耗我的带宽?

我觉得我被某个 bug 感染了。有时候我在工作时(我仍然不知道为什么),我的网络流量会达到 200 KB/s 并且一直保持这个速度,即使我没有做任何与互联网相关的事。

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

我在这里找到了有关监控总带宽使用情况的问题,但正如我提到的,这不是我需要的。是否有其他命令可以用来找出哪个进程失控了?

该命令iftop给出的结果与系统监视器报告的信息完全不一致。后者声称网络流量很大,而前者声称网络流量仅为 1 KB/s。

我已经尝试过关闭所有明显的程序(Firefox、update-manager、Pidgin 等),但都没有成功。到目前为止,我发现重启机器是解决问题的唯一方法。

答案1

我有很多成功的经验网猪。它必须以 root 身份运行,但您可以使用不同的方式对统计信息进行排序(例如,自 nethogs 启动以来监控的 KB/s 或总带宽)。

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

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

赶紧跑

sudo nethogs

如果您想检查自打开以来所消耗的带宽累计总量nethogs,请执行此操作(查看哪些程序在长期内消耗更多带宽很有用)

sudo nethogs -v 3

答案2

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

这就是您正在寻找的过程。

PS: 也适用于UDP。

答案3

您可能需要查看ntop- 它应该在进程级别监控网络活动。您可以ntop在软件中心或使用sudo apt-get install ntop

有关安装说明,请关注其页面http://packages.ntop.org/

答案4

回答晚了,但我遇到了同样的问题。原来是 Ubuntuone。通过运行 tcpdump 发现了这一点。我在进程识别方面经历了同样的学习曲线。

我的笔记

Ubuntu 盒子连接信息

今天早上启动我的 Ubuntu 10.04 桌面,发现几分钟后互联网连接就开始变慢。我以前在 Windows 机器上见过这种情况,99% 的时间都是间谍软件。所以,我需要调查一下...命令行风格。

tcpdump. 说明 Ubuntuone 正在疯狂发展。

系统>首选项>Ubuntu One。关闭所有同步。就完成了。

所以,我想看看所有网络连接以及它们正在做什么。我可以

netstat -cW(以宽格式连续列出网络连接,以便外部地址不会被截断)

lsof -i |grep -v‘localhost’(列出与任何 Internet 地址匹配的打开的文件,grep 删除与 localhost 相关的任何打开的文件——我的想法是我不想看到本地服务,因为它们可能不会影响网络利用率)。

需要记住的事情有:

  1. 需要了解 Ubuntu 日志以进行故障排除。
  2. 需要了解有关 tcpdump 的更多信息,因此我将从本教程由 Daniel Miessler 提供

编者注:这个答案指的是tinker 的 blogspot 文章仅限受邀用户。由于这个答案有相当多的赞成票,所以它很有价值。我在回溯机器. 并将其包含在这里。

相关内容