/proc/net 是 linux 内核通过 proc 文件系统动态生成的实时网络状态视图,包含 /proc/net/dev(网卡流量累加值,需差分计算速率)、/proc/net/snmp 与 /proc/net/netstat(协议层诊断指标)、/proc/net/route 与 /proc/net/arp(路由与地址解析快照),推荐优先使用 /proc/net/dev 进行轻量、低开销的流量监控。

/proc/net 是 Linux 内核通过 proc 文件系统 向用户空间暴露的实时网络状态窗口。它不是磁盘上的真实目录,而是内存中动态生成的视图,每次读取都触发内核即时汇总当前网络子系统的运行数据。
/proc/net/dev:网卡流量的核心计数器
这是最常用、最轻量的实时带宽来源。它按接口列出收发统计,关键字段只有两列需要关注:
- Receive bytes:该网卡自启动以来累计接收的总字节数(单位:Byte)
- Transmit bytes:该网卡自启动以来累计发送的总字节数(单位:Byte)
注意:这些是累加值,要算实时速率(如 MB/s),必须在两个时间点采样,用差值除以时间间隔。例如,1 秒后接收字节增加了 1250000,则实时下载速率为 1 MB/s(因为 1250000 Byte ≈ 106 bit = 1 Mbps,换算为 1 MB/s 需再 ×8,实际更推荐统一用字节/秒或 bit/秒避免混淆)。
/proc/net/snmp 与 /proc/net/netstat:协议层诊断依据
这两个文件提供 TCP、UDP、ICMP 等协议栈的统计信息,适合排查连接异常:
Linux系统管理专家,覆盖12大模块:用户权限、SSH、存储、网络、systemd、防火墙、日志监控、备份恢复、TLS证书、Ansible、容器、IaC。提供配置、验证、加固、监控、备份、自动化、故障排查、回滚闭环。关键词:useradd、sudo、sshd_config、chmod、SEL...
-
/proc/net/snmp:结构化输出各协议的关键指标,如 TCP 的
ActiveOpens(主动建连数)、PassiveOpens(被动建连数)、EstabResets(异常断连数) -
/proc/net/netstat:补充更细粒度的内部行为,如 TCP 的
SynRetrans(SYN 重传次数),对定位丢包、超时、握手失败非常直接
它们不反映瞬时带宽,但能告诉你“为什么带宽上不去”——比如大量重传或连接重置,往往比流量数字本身更有诊断价值。
/proc/net/route 与 /proc/net/arp:路由与地址解析快照
这两个文件是静态快照,非持续更新,但对理解当前网络通路至关重要:
-
/proc/net/route:以十六进制显示内核路由表,可解析出默认网关、子网掩码、出口接口等。常配合
route -n使用,后者就是它的可读封装 - /proc/net/arp:记录本机已学习到的 IPv4 → MAC 地址映射,用于判断局域网通信是否正常。若某 IP 对应的 MAC 为空或失效,说明 ARP 请求未响应,可能链路中断或防火墙拦截
使用建议:轻量监控优先读 /proc/net/dev
不需要安装额外工具就能获得可靠流量数据:
- 快速查看:
cat /proc/net/dev | awk '/eth|ens|wlan/{print $1,$2,$10}'(提取接口名、接收字节、发送字节) - 每秒刷新观察变化:
watch -n 1 'cat /proc/net/dev | grep -E "(eth|ens|wlan)"' - 集成到脚本或程序中:直接 fopen + sscanf 解析,稳定、低开销、无依赖
相比 iftop 或 nload 这类基于抓包的工具,/proc/net/dev 不引入额外性能开销,也不受防火墙或混杂模式限制,是嵌入式、容器、运维自动化场景下的首选数据源。










