Linux 系统中的网络流量通过网络接口进出,比如常见的 eth0(以太网接口)或 wlan0(无线接口)。

想知道你的系统有哪些接口?试试下面这两个命令:
- 查看网络接口列表:
ip link show
这个命令会列出所有网络接口的状态,比如是否启用(UP)。输出可能长这样:

- 经典方法:
ifconfig -a
如果你的系统安装了 net-tools,这个命令会显示更详细的信息,包括 IP 地址和基本流量统计:

这些接口是你监控流量的“入口”和“出口”,记住它们的名称(如 eth0),后续操作会用到。
Linux 内核默默地为每个网络接口记录着流量数据,这些信息藏在 /proc/net/dev 文件中。运行以下命令查看:
cat /proc/net/dev
输出示例:

这里展示了接收(Receive)和发送(Transmit)的字节数和数据包数。虽然这个文件提供的是静态快照,但它是你理解流量基础的起点。
实时监控工具大揭秘
有了基础知识,我们进入正题:如何用命令行工具实时监控网络流量?以下是七款神器,每一款都有独特的魅力和适用场景。
iftop
iftop 就像一个实时“流量雷达”,能显示每个连接的源 IP、目标 IP 和流量速率,特别适合排查谁在占用带宽。
- 安装:
sudo apt-get install iftop # Debian/Ubuntu
sudo yum install iftop # CentOS/RHEL

- 基本使用:
sudo iftop

默认监控第一个活动接口,界面一目了然:
- 上部:总流量速率。
- 中部:每个连接的流量详情。
- 下部:累计统计。
- 指定接口:
sudo iftop -i eth0

- 高级玩法:
- 按 h 查看帮助。
- 按 n 切换 IP/主机名显示。
- 按 p 显示端口号。
- 用 -f 过滤流量,比如只看 HTTP:
sudo iftop -i eth0 -f "port 80"

场景: 当你怀疑某个应用偷偷上传数据,用 iftop 能迅速锁定“嫌疑人”。
nload
nload 以直观的图表展示流量速率,适合快速查看接口的总体使用情况。
- 安装:
sudo apt-get install nload
sudo yum install nload

- 基本使用:
nload

显示所有接口的实时流量,图表清晰可见。
- 指定接口:
nload eth0

- 操作技巧:
- 按 > 或 < 切换接口。
- 按 q 退出。
场景: 想快速了解带宽是否超载?nload 是你的最佳助手。
vnstat
vnstat 不仅能实时监控,还能记录历史数据,适合需要统计分析的场景。
- 安装:
sudo apt-get install vnstat
sudo yum install vnstat

- 初始化:
sudo systemctl start vnstatsudo systemctl enable vnstat

- 查看统计:
vnstat -i eth0
显示日、月、总流量统计。
- 实时监控:
vnstat -l -i eth0
每秒更新流量速率。
场景: 需要长期追踪带宽使用趋势时,vnstat 是理想选择。
bmon
bmon 提供多种显示模式,既能看总体流量,也能深入细节。
- 安装:
sudo apt-get install bmon
sudo yum install bmon
- 基本使用:
bmon

- 指定接口:
bmon -p eth0

- 操作技巧:
- 按 d 查看详细统计。

- 按 g 切换图形模式。
- 按 q 退出。
场景: 想要个性化监控体验?bmon 的灵活性不会让你失望。
iptraf
iptraf 提供交互式界面,能按协议、连接等分类展示流量。
- 安装:
sudo apt-get install iptraf
sudo yum install iptraf

- 使用:
iptraf-ng

进入菜单,选择“IP traffic monitor”,挑选接口开始监控。


- 功能亮点:
- 查看协议分布。
- 分析活跃连接。
场景: 需要深入分析流量类型时,iptraf 是你的得力助手。
tcpdump
tcpdump 是一个抓包神器,虽然不是专为流量监控设计,但通过分析数据包能间接了解流量。
- 安装:
sudo apt-get install tcpdump
sudo yum install tcpdump

- 基本使用:
sudo tcpdump -i eth0

- 过滤流量:
- 只抓 HTTP:
sudo tcpdump -i eth0 port 80

- 保存到文件:
sudo tcpdump -i eth0 -w capture.pcap

- 实时分析:
结合管道工具:
sudo tcpdump -i eth0 | grep "80"

场景: 想深入研究数据包内容?tcpdump 是必备工具。
sar
sar(System Activity Reporter)来自 sysstat 包,能监控网络流量和其他系统指标。
- 安装:
sudo apt-get install sysstat
sudo yum install sysstat

- 实时监控:
sar -n DEV 1

每秒显示接口流量。
- 历史数据:
sar -n DEV -f /var/log/sysstat/sa$(date +%d)
场景: 需要同时监控流量和系统性能时,sar 是全能选手。
推荐搭建使用堡塔面板,里面就有可视化监控,可以设置天数来进行监控。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至2705686032@qq.com 举报,一经查实,本站将立刻删除。原文转载: 原文出处: