在 Linux 系统中,可以使用以下方法查看什么进程占用了网络带宽:
该方式比较好
一、使用 nethogs 工具
-
安装 nethogs:
- 如果是基于 Debian 或 Ubuntu 的系统,可以使用以下命令安装:
sudo apt-get install nethogs
。 - 对于 CentOS 或 Fedora 等系统,可以使用:
sudo yum install nethogs
。
- 如果是基于 Debian 或 Ubuntu 的系统,可以使用以下命令安装:
-
使用方法:
- 直接运行
nethogs
命令,它会实时显示每个进程的网络使用情况,包括上传和下载速度。按q
键退出。
- 直接运行
二、使用 iftop 工具
-
安装 iftop:
- 类似地,在 Debian/Ubuntu 系统中使用:
sudo apt-get install iftop
。 - CentOS/Fedora 系统中使用:
sudo yum install iftop
。
- 类似地,在 Debian/Ubuntu 系统中使用:
-
使用方法:
- 运行
iftop
命令,界面上会显示网络连接的实时流量情况,以及连接的源 IP、目标 IP 和对应的进程名等信息。通过P
键可以切换显示端口号或进程名。按q
键退出。
- 运行
三、使用 top 命令结合 netstat 或 ss
-
使用
top
命令查看整体系统资源使用情况,包括 CPU 和内存占用等。在top
界面中按P
键可以按照 CPU 使用率排序,按M
键可以按照内存使用率排序。但top
命令本身不能直接显示网络带宽占用情况。 -
结合
netstat
或ss
命令找到占用网络资源的进程对应的连接信息:netstat -anp
可以列出所有网络连接和对应的进程信息,通过观察连接状态和端口信息,可以大致判断哪些进程可能在进行大量网络通信。ss -anp
与netstat
类似,但通常效率更高。
然后根据找到的进程 PID(进程 ID),在top
命令的输出中查找对应的进程,查看其资源使用情况。
这些方法可以帮助你确定 Linux 系统中哪些进程正在占用网络带宽。