在linux系统的运维排查、性能调优过程中,查看具体网络流量统计是定位带宽占用、异常连接、进程偷跑等问题的核心步骤。不同场景下可以选择不同的工具,从快速无依赖查询到精准按进程统计,多维度满足不同需求。
系统内置工具:无依赖快速获取基础统计
当服务器没有额外安装软件的权限时,利用系统自带工具就能拿到准确的基础流量数据。最原生的方式是读取内核导出的信息:执行`cat /proc/net/dev`就能输出所有网络接口的累计统计,包括接收、发送的字节数、数据包数、错误包等信息,若要计算实时速率,只需间隔固定时间两次读取,计算差值即可得到当前带宽占用。除此之外,执行`ip -s link show`可以输出格式更清晰的接口级流量统计,而`ss -ti`则可以查看单个tcp连接的累计流量收发,适合快速定位异常连接的流量情况,不需要安装任何额外组件。
第三方命令行工具:更直观的实时与历史统计
如果需要更直观的展示,安装轻量第三方工具就能大幅提升分析效率。常见工具中,nload适合查看单接口的实时带宽,它会以动态进度条的形式展示实时上行、下行速率,整体占用一目了然;iftop可以基于连接粒度展示流量,能清晰看到每个远程ip占用的带宽大小,适合定位对外连接的流量大头;vnstat则侧重历史流量统计,它会后台自动记录流量数据,支持查询当日、当月、任意单个自然日的总流量统计,适合做长期的带宽消耗统计,不需要一直挂着监控进程。

按进程维度统计:精准定位流量消耗主体
前面两类工具大多基于接口或连接统计,很多场景下我们需要找到具体哪个进程占用了带宽,这时就需要按进程分组的统计工具。最常用的是nethogs,它可以直接输出当前每个进程的上行、下行实时流量,进程名、pid一目了然,哪怕遇到不明流量偷跑,也能快速定位到具体应用。除此之外,iptraf-ng支持更丰富的维度统计,可以按tcp/udp协议、端口范围分组统计流量,适合需要精细化分析网络流量的场景。
总的来说,linux下查看网络流量没有统一的最优方案,临时排查用系统内置工具足够,快速分析选轻量第三方命令行工具,定位进程问题选择按进程统计的工具,根据场景灵活选择就能高效拿到需要的流量统计数据。全文约725字。































