在Linux系统中,网络流量监控是一个非常重要的任务,它可以帮助我们了解哪些进程正在使用网络资源,以及它们的使用情况。nethogs
是一个简单而强大的命令行工具,可以按进程实时显示网络流量。
sudo apt-get update
sudo apt-get install nethogs
sudo yum install epel-release
sudo yum install nethogs
sudo dnf install 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
根据你的Linux发行版选择合适的安装方式。
运行以下命令来查看当前系统的网络流量:
sudo nethogs
运行后,你会看到类似如下的输出:
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、用户、程序名称、设备、发送和接收的数据量。
要退出 nethogs
,只需按 q
键即可。
除了 nethogs
,还有其他一些常用的网络监控工具:
你可以结合 cron
或 systemd
定时任务来定期记录网络流量数据,或者通过脚本自动分析和报警。
例如,创建一个简单的 Bash 脚本来记录流量:
#!/bin/bash
sudo nethogs -t > /var/log/nethogs.log
然后使用 cron
每小时运行一次:
crontab -e
添加以下内容:
0 * * * * /path/to/your/script.sh