nethogs按进程查看网络流量

2025-04发布15次浏览

nethogs按进程查看网络流量

在Linux系统中,网络流量监控是一个非常重要的任务,它可以帮助我们了解哪些进程正在使用网络资源,以及它们的使用情况。nethogs 是一个简单而强大的命令行工具,可以按进程实时显示网络流量。

安装 nethogs

在Ubuntu/Debian上安装

sudo apt-get update
sudo apt-get install nethogs

在CentOS/RHEL上安装

sudo yum install epel-release
sudo yum install nethogs

在Fedora上安装

sudo dnf install nethogs

使用 nethogs 查看网络流量

安装完成后,可以通过以下命令启动 nethogs

sudo nethogs

这将默认监控所有网络接口的流量。如果你想只监控特定的网络接口(例如 eth0),可以使用以下命令:

sudo nethogs eth0

常用选项

  • -d <seconds>:设置刷新间隔时间,默认为1秒。
  • -v <mode>:设置显示模式,可选值为 0(KB/s)、1(总KB)、2(总B)。
  • -t:启用跟踪模式,输出到标准输出。

例如,每2秒刷新一次,并以KB/s为单位显示:

sudo nethogs -d 2 -v 0

实践步骤

步骤1:安装 nethogs

根据你的Linux发行版选择合适的安装方式。

步骤2:运行 nethogs

运行以下命令来查看当前系统的网络流量:

sudo nethogs

步骤3:分析结果

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

NetHogs version 0.8.1

  PID USER     PROGRAM                      DEV        SENT      RECEIVED       
3456 user     /usr/bin/python3            wlan0       1.23 KB   4.56 KB        
7890 root     /usr/sbin/sshd              eth0        0.00 KB   0.00 KB        

从上面可以看到每个进程的PID、用户、程序名称、设备、发送和接收的数据量。

步骤4:停止 nethogs

要退出 nethogs,只需按 q 键即可。

扩展知识

其他网络监控工具

除了 nethogs,还有其他一些常用的网络监控工具:

  • iftop:显示每个连接的实时带宽使用情况。
  • tcpdump:抓取并分析网络数据包。
  • Wireshark:图形化网络协议分析工具。
  • vnstat:统计网络流量的历史记录。

自动化监控

你可以结合 cronsystemd 定时任务来定期记录网络流量数据,或者通过脚本自动分析和报警。

例如,创建一个简单的 Bash 脚本来记录流量:

#!/bin/bash
sudo nethogs -t > /var/log/nethogs.log

然后使用 cron 每小时运行一次:

crontab -e

添加以下内容:

0 * * * * /path/to/your/script.sh