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

我有时会因CPU使用率而发生这种情况。这样做时,我只需运行top命令来找出哪个进程负责,然后对其进行kill。问题是:我无法知道哪个进程是造成我网络使用率高的原因。资源监视器和top命令都只能告诉我我的总网络使用情况,而它们都不能告诉我特定的网络信息。

我在这里发现了有关监视总带宽使用情况的问题,但是,由于我提到的,那不是我所需要的。我还有其他命令可以用来找出哪个进程失控吗?

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

我已经尝试杀死所有明显的流量(Firefox,update-manager,Pidgin等),而没有运气。到目前为止,重新启动计算机是我摆脱该问题的唯一方法。

#1 楼

nethogs取得了很多成功。它必须以root用户身份运行,但是您可以使用不同的方式对统计数据进行排序(例如,自从nethogs启动以来监视的KB / s或总带宽)。

此外,如果您使用无线网络,则需要传递设备

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

示例:sudo nethogs wlan0

评论


仔细检查后,假设终端总是80个字符宽并截断命令,这真是令人讨厌。

– Li Lo
2010年8月18日在22:46

已经有一段时间了,但是这个答案确实要简单得多。

–马拉巴尔巴
2010年12月2日于17:05

nethogs很好,但是在计算机上它似乎比iftop使用更多的cpu

–aidan
15年7月29日在6:14

被警告存在使某些版本的nethog无法使用的错误:askubuntu.com/questions/726601/…

–罗马诺
16-3-12在22:20

如果您使用的是无线设备,则无需通过设备。 sudo nethogs工作正常。

–Ads20000
17年4月29日在15:15

#2 楼

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

这就是您要寻找的过程。

PS:也应适用于UDP。

评论


谢谢,该命令似乎可以正常工作,但结果却很奇怪。系统监视器要求的总速度约为180KB / s,而iftop要求的速度仅为每秒1 KB。

–马拉巴尔巴
10年8月16日在20:20

我接受了答案,因为它确实回答了原始问题。但是如果我能弄清楚这里发生了什么,我会很好。

–马拉巴尔巴
10年8月16日在20:25

iptop显示单个界面的统计信息。我不确定系统监视器是仅查看一个接口还是全部查看。如果是这种情况,那么系统监视器将显示流量,而iftop将不会显示流量,这是可以的,因为无论如何您只想查看Internet接口(而不是lo)。我只是在系统上测试了iftop,它显示了我期望的结果。请注意,尽管iftop的平均显示时间分别超过2s,10s,40s。我像'sudo iftop -i eth0 -nPB'一样运行iftop,您是如何运行它的?

– Li Lo
10年8月16日在20:36



我以sudo iftop -B -i eth0的身份运行它,这意味着它只是在查看我的互联网流量,对吗?在我看来,系统监视器也可能正在检查其他接口。具有讽刺意味的是,该问题在10分钟前(数小时后)消失了,所以我暂时无法再次检查iftop。 lo接口代表什么?

–马拉巴尔巴
10年8月16日在20:45

由于iftop屏幕上有很多数字,所以我创建了一个屏幕快照,在其中高亮显示了您感兴趣的数字。将其与系统监视器进行比较。屏幕快照位于imgur.com/2iuiI上。 “ lo”代表本地主机,它是一个接口,本地程序可以通过该接口相互通信。

– Li Lo
10年8月16日在21:09

#3 楼

您可能需要研究ntop-它应该在进程级别监视网络活动。您可以在软件中心或ntop中找到sudo apt-get install ntop

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

评论


不适用于ubuntu 17.04(zesty)

– shadi
17年11月25日在8:41

请参阅packages.ntop.org/apt-stable,以获取更高版本的ubuntu的存储库。也是apt-get install ntopng

– dw1
18/12/2在10:58



它有自己的本地服务器,令人困惑...

–rogerdpack
20-4-24的3:20

#4 楼

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

#5 楼

答案较晚,但我遇到了同样的问题。原来是Ubuntuone。通过运行tcpdump发现。我在过程识别上经历了相同的学习过程。

从我的笔记中:


Ubuntu盒连接信息

今天早上启动我的Ubuntu 10.04桌面,发现几秒钟后分钟,Internet连接正在爬网。我以前在Windows机器上已经看到过这种情况,而且有99%的时间是间谍软件。因此,我需要研究...命令行样式。

tcpdump。显示Ubuntuone变得疯狂。

System> Preferences> Ubuntu One。关闭所有同步。做到了。

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

netstat -cW(以宽格式连续列出网络连接,以免外来地址被截断)

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

有一些需要注意的地方:


需要了解有关Ubuntu日志进行故障排除的信息。
需要了解有关tcpdump的更多信息,所以我将从Daniel Miessler的本教程开始。





编者注:该答案是针对tinker的blogspot文章,仅适用于受邀用户。由于此答案具有明显的意义,因此很有价值。我在Wayback Machine上找到了文章的副本。并包括在这里。

#6 楼

我喜欢的一个是,它告诉您从网络中读取的内容最多(无论如何,“向网络写入”似乎不起作用,所以……您得到一半)。

$ sudo apt install dstat
then
$ dstat --net --top-io-adv
-net/total- -------most-expensive-i/o-process-------
 recv  send|process              pid  read write cpu
   0     0 |chrome               1885   19k  17k0.4%
 504B  734B|chrome               1923    0   66k0.2%
 651k   18k|chrome               1923  597k 593k2.0%
  19k   26k|gnome-terminal-      25834 429B  59k0.8%