ifconfig仅显示接口累计收发字节数和数据包数,不支持实时速率监控;需配合watch、手动计算差值或改用iftop、nload等专用工具获取KB/s级实时流量。

在 Linux 中,ifconfig 命令本身**不支持实时监控或统计网络接口的流量速率(如 MB/s、KB/s)**,它只能显示自接口启用以来的**累计收发字节数和数据包数**。想看“当前流量”需配合其他工具或手动计算差值。
用 ifconfig 查看累计流量数据
ifconfig 输出中,RX bytes 和 TX bytes 分别表示该接口接收和发送的总字节数;RX packets/TX packets 是对应的数据包总数。这些是累加值,重启网络或接口后会重置(取决于驱动和内核行为)。
运行命令:
ifconfig eth0输出示例片段:
RX bytes: 124892345 (119.1 MiB) TX bytes: 87654321 (83.6 MiB)注意:ifconfig 在较新发行版(如 Ubuntu 22.04+、CentOS/RHEL 8+)中可能默认未安装,需先安装 net-tools 包:
sudo yum install net-tools # CentOS/RHEL 7
sudo dnf install net-tools # CentOS/RHEL 8+/Fedora
估算实时流量:手动计算字节差值
若坚持用 ifconfig 看“动态流量”,可间隔固定时间(如 2 秒)两次执行,用前后 RX/TX 字节数相减再除以时间,得到平均速率。
- 记录第一次字节数:ifconfig eth0 | grep "RX bytes" | awk '{print $2}' | cut -d: -f2
- 等待 2 秒:sleep 2
- 记录第二次字节数,做差并换算为 KB/s 或 MB/s
一行脚本示例(每 2 秒刷新一次 eth0 接收速率):
watch -n 2 'echo -n "RX: "; expr $(ifconfig eth0 | grep "RX bytes" | awk "{print $2}" | cut -d: -f2) - $(cat /tmp/last_rx 2>/dev/null || echo 0) | awk "{printf "%.1f KB/s\n", $/1024}"; ifconfig eth0 | grep "RX bytes" | awk "{print $2}" | cut -d: -f2 > /tmp/last_rx'更实用的替代方案(推荐)
查看实时流量,以下工具比 ifconfig 更直观高效:
- ip -s link show dev eth0:现代标准命令,输出含 RX/TX 字节数,语义清晰,无需额外安装
-
iftop:类似 top 的实时带宽监控工具,按连接显示流量(需
sudo iftop) - nload:图形化终端界面,分 RX/TX 显示实时速率和历史图
- vnstat:轻量级流量统计守护进程,支持按小时/天/月汇总,适合长期记录
小结:ifconfig 的定位
ifconfig 是传统网络配置与状态查看工具,适合快速确认 IP、MAC、UP/DOWN 状态及历史总流量。但它不是流量监控器。需要实时速率、峰值分析或按进程/端口拆分时,应转向 iftop、iptraf-ng 或 ss + awk 等专用工具。理解它的能力边界,才能高效排障。


















