linux流量监控

1. 使用 nethogs 查看每个程序的网络使用情况

nethogs 是一个按进程显示网络带宽使用情况的工具。

安装 nethogs

  • 在 Debian/Ubuntu 系统上:

    sudo apt install nethogs
  • 在 CentOS/RHEL 系统上:

    sudo yum install nethogs

使用 nethogs

运行以下命令:

sudo nethogs

你会看到每个进程的网络流量(上传和下载)。


2. 使用 ss 或 netstat 查看网络连接

ss 和 netstat 可以显示当前的网络连接,但需要结合 lsof 或 ps 来查找具体的进程。

使用 ss

sudo ss -tunap
  • -t:显示 TCP 连接。

  • -u:显示 UDP 连接。

  • -n:以数字形式显示地址和端口。

  • -a:显示所有连接。

  • -p:显示进程信息。

你会看到类似以下的输出:

ESTAB      0      0      192.168.1.100:57632   203.0.113.1:443     users:(("chrome",pid=1234,fd=123))

这里会显示进程名称和 PID。

使用 netstat

sudo netstat -tunap

输出与 ss 类似。


3. 使用 lsof 查看打开的网络连接

lsof 可以列出打开的文件和网络连接。

查看所有网络连接:

sudo lsof -i

查看特定端口的连接:

sudo lsof -i :80

这会显示所有使用端口 80 的进程。


4. 使用 bmon 或 bwm-ng 查看实时流量

bmon 和 bwm-ng 是实时带宽监控工具,可以显示每个接口的流量,但不会显示具体进程。

安装 bmon

  • Debian/Ubuntu:

    sudo apt install bmon
  • CentOS/RHEL:

    sudo yum install bmon

使用 bmon

sudo bmon

5. 使用 iptables 记录流量

如果你需要更详细的流量记录,可以使用 iptables 记录流量并配合日志分析。

添加 iptables 规则:

sudo iptables -I OUTPUT -p tcp -j LOG --log-prefix "OUTPUT Traffic: "
sudo iptables -I INPUT -p tcp -j LOG --log-prefix "INPUT Traffic: "

查看日志:

日志通常保存在 /var/log/syslog 或 /var/log/messages 中:

sudo tail -f /var/log/syslog | grep "OUTPUT Traffic:"

总结

  • 如果你想查看具体程序的网络使用情况,推荐使用 nethogs

  • 如果你想查看网络连接和对应的进程,使用 ss 或 netstat

  • 如果你需要更详细的流量分析,可以结合 iptables 和日志工具。

posted @   狂奔的狼  阅读(13)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· 单线程的Redis速度为什么快?
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
点击右上角即可分享
微信分享提示