nicstat用于监控网络接口吞吐详情,可获取每秒收发字节数(rKb/s、wKb/s)、包数(rPk/s、wPk/s)、平均包长(rAvs、wAvs)、利用率(%util)及饱和度(Sat)等关键指标,比netstat -i更贴近真实带宽使用,适合识别网卡是否接近饱和。

Linux 中使用 nicstat 监控网络接口吞吐详情,核心在于获取每秒收发字节数、包数、平均包长及接口利用率等关键指标。它比 netstat -i 或 ifconfig 更贴近真实带宽使用情况,尤其适合识别网卡是否接近饱和。
安装 nicstat(主流发行版通用步骤)
nicstat 不是系统默认工具,需手动编译安装:
- 安装基础编译环境:
sudo apt-get install build-essential(Debian/Ubuntu)或sudo yum groupinstall "Development Tools"(CentOS/RHEL) - 下载源码(如 1.92 版):
wget https://downloads.sourceforge.net/project/nicstat/nicstat-1.92.tar.gz - 解压并进入目录:
tar -zxvf nicstat-1.92.tar.gz && cd nicstat-1.92 - 适配系统架构:查看
uname -m,若为 x86_64,需编辑Makefile,注释或删除含-m32的行(避免 32 位编译错误) - 编译并安装:
make && sudo make install;若提示 man 手册路径缺失,先创建:sudo mkdir -p /usr/local/share/man/man1
基础监控命令与字段解读
运行 nicstat 1(每秒刷新一次)可查看所有活跃接口的实时吞吐:
Linux 安全审计工具,检查 SSH 配置、开放/监听端口、防火墙规则(ufw/iptables/nftables)、失败登录尝试、sudoers 权限...
-
Int:接口名(如 eth0、ens33、enp0s3) -
rKb/s和wKb/s:每秒接收/发送千字节数(KB/s),是衡量吞吐的核心指标 -
rPk/s和wPk/s:每秒收/发包数,反映连接密集度 -
rAvs和wAvs:每次收/发的平均字节数,偏低可能表示小包风暴(如 DNS 查询泛滥) -
%util:接口估算利用率,计算逻辑为(rKb/s + wKb/s) / (带宽 MB/s × 1024);例如千兆网卡理论峰值约 125 MB/s(即 125000 KB/s),若显示%util = 32.5,说明已用满约 1/3 带宽 -
Sat:饱和度,值越接近 1.0 表示缓冲区排队越严重,常伴随丢包或延迟上升
常用实用技巧
按需聚焦,提升排查效率:
- 只看指定接口:
nicstat -i ens33 2(每 2 秒刷新 ens33 的数据) - 以 Mbps 显示更直观:
nicstat -M -i eth0 1(避免单位换算,直接看到 12.4 Mbps 这类数值) - 跳过空闲接口节省输出:
nicstat -z 1(不显示当前无流量的网卡) - 叠加 TCP/UDP 协议统计:
nicstat -t -u 1(分别列出 TCP 和 UDP 流量占比) - 导出一段时间数据供分析:
nicstat 1 10 > nicstat.log(采集 10 次样本)
对比其他工具的定位差异
nicstat 不替代 netstat 或 ss,而是补足其短板:
-
netstat -i只给累计收发包数,无法看出瞬时速率;nicstat提供归一化后的每秒速率 -
ifconfig或ip -s link显示的是驱动层计数器,不含利用率和饱和度估算 -
sar -n DEV可记录历史,但实时性不如nicstat;两者可配合使用(sar 查趋势,nicstat 定位尖峰) - 当
%util持续高于 40%(局域网)或 70%(WAN 链路),应结合tcpdump或ss -i进一步分析重传、RTT 等细节

















