如何确定 Linux 中某个进程使用了​​多少带宽

如何确定 Linux 中某个进程使用了​​多少带宽

有时我会看到我的带宽使用gnome 系统监视器速度达到 300kbit/s。我就是搞不清楚是什么原因造成的。我想知道是什么进程或程序以这样的方式使用我的网络?

我会通过 ssh 连接到不同的机器和服务器,我非常希望能够监控带宽使用情况。知道人们使用哪些实用程序来查看带宽使用情况将非常有用带宽正在被哪些应用程序/程序/进程/或线程使用。我甚至不知道从哪里开始查找。

我发现的两个小程序都存在不足。贝蒙bwm-ng 还有类似的工具wireshark数据包嗅探器) 是多余的。我想要一个介于两者之间的版本,最好是基于文本控制台的版本。

答案1

您可以使用

iptraf

或者

iftop -P

识别消耗大量带宽的连接。连接由一对 (localip:port, remoteip:port) 标识。然后您可以使用

netstat -tunp

查找哪个进程使用了​​该连接。不过,大多数情况下,您只能通过查看端口来判断哪个服务负责,例如,如果连接localip:80在本地使用,则可能是您的网络服务器 ;-)

答案2

嗯,有,iftop但是那只显示源和目的地,而不是导致流量的程序。

编辑:

刚刚发现nethogs。它完全符合您的要求。

答案3

伊夫托普

它能很好地显示哪些 IP / 主机正在使用带宽。它可以将信息隔离到单个程序或端口。

命令Iftop

一旦运行,您就可以使用 H 或 ? 访问帮助菜单。它有许多有用的选项

Host display:                          General:
 n - toggle DNS host resolution         P - pause display
 s - toggle show source host            h - toggle this help display
 d - toggle show destination host       b - toggle bar graph display
 t - cycle line display mode            B - cycle bar graph average
                                        T - toggle cummulative line totals
Port display:                           j/k - scroll display
 N - toggle service resolution          f - edit filter code
 S - toggle show source port            l - set screen filter
 D - toggle show destination port       L - lin/log scales
 p - toggle port display                ! - shell command
                                        q - quit
Sorting:
 1/2/3 - sort by 1st/2nd/3rd column
 < - sort by source name
 > - sort by dest name
 o - freeze current order

iftop, version 0.17

答案4

SSH 系统管理工具具有带宽监控设施。

相关内容