上一篇
linux如何查看监控流量
- Linux
- 2025-07-26
- 5
nux查看监控流量可用工具包括iftop、nethogs、iptraf、vnstat、nload等,部分需sudo权限运行
是Linux系统中常用的查看和监控网络流量的方法及工具详解:
基础命令行工具
-
ifconfig/ip命令
- 功能:获取网络接口的基础统计信息(如收发数据包数量、字节数),执行
ip link show
可列出所有网卡及其状态,但此类命令仅提供静态快照,无法实现动态监控,若需定期刷新结果,可结合watch
使用:watch -n 1 "ip -s link"
(每秒更新一次)。
- 功能:获取网络接口的基础统计信息(如收发数据包数量、字节数),执行
-
netstat命令
- 用法:通过参数组合实现多维度分析。
netstat -i
→ 显示各接口的总吞吐量;netstat -tupan
→ 查看TCP/UDP连接的具体状态及端口占用情况,此命令适合快速排查异常监听的服务或未关闭的连接。
- 用法:通过参数组合实现多维度分析。
-
/proc/net/dev文件
- 路径:直接读取内核数据源
cat /proc/net/dev
,获取原始的网络接口计数器信息,该文件记录了自系统启动以来的所有流量数据,适合脚本化处理。
- 路径:直接读取内核数据源
实时交互式监控工具
工具名 | 特点 | 典型用法 |
---|---|---|
iftop | 按IP/端口分级显示实时带宽使用,支持排序与过滤 | sudo iftop -i eth0 -p 80 (监控指定接口的HTTP流量) |
nload | ASCII图形化界面呈现流量趋势,视觉直观 | nload eth0 -t 500 (设置刷新间隔为500毫秒) |
ifstat | 轻量级文本模式监控,低资源消耗 | ifstat eth0 (持续滚动更新收发速率) |
bmon | 多窗口布局展示多维度指标(协议分布、错误包统计等) | bmon (自动识别主网卡,支持快捷键切换视图) |
darkstat | 生成Web面板并支持远程访问,适合分布式环境 | sudo darkstat -i eth0 (启动后通过浏览器登录管理) |
进程级流量分析
-
nethogs
- 此工具专门针对进程进行网络带宽监控,能够清晰识别出哪个进程正在大量占用网络资源,非常适合用来查找那些偷偷消耗带宽的程序,其使用方法为:
sudo nethogs eth0
,执行该命令后,会详细列出每个进程的流量占比情况,若发现某个未知进程占据较高带宽,则极有可能是异常行为的表现,此时应进一步深入排查。
- 此工具专门针对进程进行网络带宽监控,能够清晰识别出哪个进程正在大量占用网络资源,非常适合用来查找那些偷偷消耗带宽的程序,其使用方法为:
-
结合ps命令定位问题进程
- 当通过nethogs发现异常进程时,可以使用
ps -aux | grep [PID]
来查看该进程的详细信息,包括它的启动用户、执行路径以及启动参数等,这些信息有助于判断该进程是否合法,从而采取相应的措施,比如结束反面进程或者优化合法但低效的应用配置。
- 当通过nethogs发现异常进程时,可以使用
历史数据统计与趋势预测
-
vnstat
- 安装:大多数发行版可通过包管理器直接安装(如Debian系用
apt install vnstat
)。 - 实时模式:运行
vnstat -l -i eth0
可查看当前瞬时速率;更常用的是其日志回放功能——vnstat -r
能解析历史记录并以图表形式展现每日/月均流量峰值。 - 自动化集成:配合Zabbix或Nagios等监控系统,可将流量数据存入数据库并生成可视化报表,便于容量规划。
- 安装:大多数发行版可通过包管理器直接安装(如Debian系用
-
sar命令(sysstat套件)
- 高级用法:
sar -n DEV 1 10
表示每秒采集一次网络设备数据,共持续10次采样,输出结果包含错误包数量、丢包率等关键指标,对诊断网络质量非常有用。
- 高级用法:
深度包级分析
-
tcpdump/wireshark
- 基础抓包:使用
tcpdump -i eth0 tcp port 443
可以捕获特定接口上的SSL通信数据包;而Wireshark则提供了图形化的界面,支持更复杂的过滤规则设置,二者均支持保存数据包以便后续离线深入分析,需要注意的是,这类工具可能会对系统性能产生影响,尤其是在高流量的生产环境中要谨慎使用。 - 解码还原:对于加密流量(如TLS),虽然无法直接查看明文内容,但仍可提取元数据特征(源IP、目的端口序列等),辅助安全审计。
- 基础抓包:使用
-
iptraf
- 作为一个综合性的分析器,不仅具备实时监控的功能,还能跟踪TCP会话的完整生命周期,通过
sudo iptraf
进入交互模式后,用户可以查看详细的统计数据,甚至模拟防火墙规则进行测试。
- 作为一个综合性的分析器,不仅具备实时监控的功能,还能跟踪TCP会话的完整生命周期,通过
场景化解决方案对比
需求类型 | 推荐方案 | 优势说明 |
---|---|---|
快速概览整体带宽 | nload | ASCII绘图直观易懂,资源开销极低 |
定位具体应用瓶颈 | iftop + nethogs | 双层钻取:先识别主机IP,再关联到对应进程 |
长期趋势预测 | vnstat + Zabbix | 历史归档与告警联动,实现主动运维 |
故障排查 | tcpdump抓包分析 | 精确还原网络行为路径,验证协议合规性 |
FAQs
Q1: iftop和nload有什么区别?如何配合使用?
A: iftop侧重连接级别的细节(如源/目的IP、端口号),适合深度排错;nload提供全局视角的流量曲线图,便于感知整体趋势,建议先用nload发现突增流量,再用iftop锁定具体连接,当nload显示出口带宽持续占满时,打开iftop按TX列排序,即可找到高外发流量的客户端。
Q2: 为什么用vnstat看不到实时数据?怎么解决?
A: 默认情况下vnstat只存储历史记录,需添加-l
参数启用实时模式(如vnstat -l -i eth0
),若仍无显示,检查是否已通过systemctl enable vnstat
加入开机启动项,确保后台服务正常运行,部分新版本支持Web界面访问(默认端口8080),可通过浏览器实时查看更丰富的