当前位置: 首页 > web >正文

Linux 网络流量监控实战:使用 iftop 精准定位高带宽连接

目录

Linux 网络流量监控实战:使用 iftop 精准定位高带宽连接

一、iftop 是什么?

二、样例输出解读

含义说明:

分析举例:

三、底部统计信息解读

四、排查与优化建议

建议:

五、进阶工具推荐

六、总结


Linux 网络流量监控实战:使用 iftop 精准定位高带宽连接

在日常服务器运维中,排查网络带宽异常是一个常见但又不容易快速定位的问题。幸运的是,Linux 提供了多个强大的网络分析工具,其中 iftop 是最为直观和易用的一款,它能实时显示各连接的上下行带宽使用情况。

本文将通过一段真实的 iftop 输出,详细讲解如何解读每一个字段,并结合使用场景提出优化建议。


一、iftop 是什么?

iftop 是一个基于终端的实时流量监控工具,它类似于 top 命令,但关注的是网络流量而不是 CPU 使用率。它可以显示每一个活跃的网络连接的上下行带宽速率,非常适合诊断带宽瓶颈和网络异常。


二、样例输出解读

我们先来看一段典型的 iftop 输出:

node1.cluster.local => 119.188.50.20       730Kb   718Kb   229Kb<=                  198Mb   198Mb  62.3Mb

含义说明:

  • 每两行表示一个连接的上下行流量

  • => 表示出流(TX):从本机发出的数据

  • <= 表示入流(RX):本机接收的数据

  • 三个速率分别为过去 2 秒10 秒40 秒 的平均值

分析举例:

上面这组连接中:

  • 出流为 730Kb/s 左右

  • 入流高达 198Mb/s,说明这是一条大流量下载通道

  • 对方 IP 是 119.188.50.20,可能是某个远程镜像源或文件服务器


三、底部统计信息解读

iftop 底部还有整体带宽的实时汇总信息:

TX:   cum: 172MB  peak: 8.30Mb   rates: 5.04Mb 6.18Mb 6.04Mb
RX:         4.57GB       235Mb           199Mb  199Mb  144Mb
TOTAL:      4.74GB       242Mb           204Mb  205Mb  150Mb
  • TX (Transmit):发送数据总量与速率

  • RX (Receive):接收数据总量与速率

  • TOTAL:总带宽使用情况

可以看出,这台服务器目前主要是作为数据消费者,下行占用非常高(高达 200Mb/s),而上行较低。


四、排查与优化建议

从这份输出中我们可以得出:

  1. 重点关注 IP

    • 119.188.50.20 为主要入流来源

    • 106.14.118.208172.16.20.21 也有明显活动

  2. DNS 类请求

    • public1.alidns.com114dns.com,仅几十字节,属于正常行为

  3. 局域网交互

    • 内网地址(如 172.16.*)可能是集群节点通信

建议:

  • 如果你是服务器管理员,出现带宽满载时:

    • 可以通过 iptablestc 对特定 IP 或端口限速

    • 使用 tcpdump 精细抓包分析可疑连接:

      sudo tcpdump host 119.188.50.20 -w traffic.pcap
      
    • 若是容器环境,结合 kubectl exec + iftop 可查 Pod 内带宽


五、进阶工具推荐

除了 iftop,你还可以考虑以下工具进行更长时间的监控与历史数据记录:

  • nload:以图表方式展示实时带宽变化

  • vnstat:记录长期流量趋势

  • bmon:图形化流量监控,支持多接口显示


六、总结

iftop 是 Linux 网络故障排查的利器。它能够帮助我们:

  • 快速定位高带宽连接

  • 分析上下行速率差异

  • 判断内外网交互流量

  • 检查 DNS、P2P 等背景流量

下一次当你遇到带宽告警,不妨第一时间运行:

sudo iftop -i eth0

实时掌握网络动向,从容应对问题。

http://www.xdnf.cn/news/10278.html

相关文章:

  • 跟我学c++中级篇——隐式转换的意义
  • PostgreSQL的扩展 dblink
  • MySQL--day10--数据处理之增删改
  • 【Java实战】低侵入的线程池值传递
  • Jinja2 模板继承机制
  • 【Linux】mmap文件内存映射
  • LeetCode[257]二叉树的所有路径
  • 4.2.4 Spark SQL 数据写入模式
  • 67.实现AI流式回答的后端实现(2)
  • Vue-Router简版手写实现
  • 2025年5月个人工作生活总结
  • lstm 长短期记忆 视频截图 kaggle示例
  • Rock9.x(Linux)安装Redis7
  • 寒假学习笔记【匠心制作,图文并茂】——1.20拓扑、强连通分量、缩点
  • CppCon 2014 学习: The Implementation of Value Types
  • Compose原理 - 整体架构与主流程
  • JDK21深度解密 Day 8:Spring Boot 3与虚拟线程整合
  • 【清晰教程】查看和修改Git配置情况
  • SCSS 全面深度解析
  • neo4j 5.19.0安装、apoc csv导入导出 及相关问题处理
  • Windows最快速打开各项系统设置大全
  • RAID磁盘阵列配置
  • 鸿蒙编译ffmpeg库
  • M4Pro安装ELK(ElasticSearch+LogStash+Kibana)踩坑记录
  • 性能优化 - 理论篇:性能优化的七类技术手段
  • SMT贴片机工艺优化与效率提升策略
  • WEB3——为什么做NFT铸造平台?
  • 配置远程无密登陆ubuntu服务器时无法连接问题排查
  • 系统是win11+两个ubuntu,ubuntu20.04和ubuntu22.04,想删除ubuntu20.04且不用保留数据
  • 【图像处理入门】3. 几何变换基础:从平移旋转到插值魔法