当前位置:首页 > Centos > 正文

CentOS nethogs命令详解(实时监控进程网络流量的利器)

在日常运维工作中,我们经常会遇到服务器网络异常、带宽被占满等问题。这时,如何快速定位是哪个进程在大量使用网络就显得尤为重要。在 CentOS 系统中,nethogs 是一个非常实用的工具,它可以按进程实时显示网络流量,帮助你精准找出“罪魁祸首”。

CentOS nethogs命令详解(实时监控进程网络流量的利器) nethogs命令 进程网络流量监控 nethogs安装使用 实时查看Linux网络使用 第1张

什么是 nethogs?

nethogs(Net top for Hogs)是一个小型的进程级网络监控工具,它不像 iftop 或 netstat 那样只显示连接或端口的流量,而是直接将网络使用情况归因到具体的 PID 和程序名上。这对于排查异常流量特别有用。

例如,当你发现服务器出口带宽跑满,但不知道是哪个服务导致的,只需运行 nethogs,就能立刻看到是 nginxpython 还是某个未知脚本在疯狂上传或下载数据。

在 CentOS 上安装 nethogs

nethogs 并不是 CentOS 默认安装的工具,需要通过 EPEL 仓库来安装。以下是详细步骤:

1. 安装 EPEL 仓库

# CentOS 7sudo yum install -y epel-release# CentOS 8 / Streamsudo dnf install -y epel-release

2. 安装 nethogs

sudo yum install -y nethogs# 或者在 CentOS 8/Stream 中:sudo dnf install -y nethogs

基本使用方法

安装完成后,只需以 root 权限运行 nethogs 即可:

sudo nethogs

默认情况下,nethogs 会监控所有网络接口,并按进程显示实时的上传(KB/s)和下载(KB/s)速度

指定网络接口

如果你有多个网卡(如 eth0、ens33、wlan0),可以指定只监控某个接口:

sudo nethogs eth0# 或sudo nethogs ens33

常用交互快捷键

  • m:切换显示单位(KB/s ↔ MB/s)
  • r:按流量排序(默认就是按流量从高到低)
  • s:按发送(上传)流量排序
  • q:退出程序

实际应用场景示例

假设你的 CentOS 服务器突然变慢,怀疑是某个进程在后台大量上传数据。你可以这样做:

# 以 root 身份运行 nethogs,监控主网卡sudo nethogs ens33

运行后,你会看到类似以下的输出:

  PID USER     PROGRAM                    DEV        SENT      RECEIVED 1234 root     /usr/bin/python3           ens33     120.5 KB/s   0.2 KB/s 5678 nginx    nginx: worker process      ens33       2.1 KB/s  45.3 KB/s    ? root     unknown TCP                ens33       0.0 KB/s   0.0 KB/s  TOTAL                                                122.6 KB/s  45.5 KB/s 

从上面可以看出,PID 为 1234 的 Python 进程正在以 120KB/s 的速度上传数据,这很可能是问题源头。你可以进一步用 ps -p 1234 查看该进程详情,或直接 kill 1234 终止它(谨慎操作!)。

注意事项

  • nethogs 需要 root 权限才能读取所有进程的网络信息,普通用户只能看到自己启动的进程。
  • 对于使用 raw socket 或某些加密隧道(如 WireGuard)的流量,nethogs 可能无法准确归类,会显示为 “unknown TCP”。
  • nethogs 不支持历史流量统计,仅提供实时监控。如需长期记录,请配合其他工具如 vnstat 或日志系统。

总结

通过本文,你应该已经掌握了在 CentOS 系统中使用 nethogs 命令监控进程网络流量 的基本方法。无论是排查异常带宽占用,还是日常性能分析,nethogs 都是一个简单高效的选择。

记住几个核心关键词:CentOS nethogs命令进程网络流量监控nethogs安装使用实时查看Linux网络使用——这些正是运维工程师日常必备的技能点。

赶快在你的服务器上试试吧!