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

Linux查看网卡流量命令

使用 ip -s link show 网卡名查看收发流量统计,实时监控推荐安装 nloadiftopsar工具,或使用 watch -n 1 ifconfig 网卡名定时刷新流量数据。

Linux查看网卡流量的详细指南

在Linux系统中,监控网卡流量是网络管理、故障排查和性能优化的重要环节,本文详细介绍7种常用方法,涵盖命令行工具、实时监控工具及底层文件读取,满足不同场景需求。


基础命令工具

  1. ifconfig(传统工具)

    ifconfig eth0
    • 输出解读
      • RX packets:接收数据包数量(RX bytes为接收总字节)。
      • TX packets:发送数据包数量(TX bytes为发送总字节)。
    • 注意:部分新系统默认未安装,可通过 sudo apt install net-tools(Debian/Ubuntu)或 sudo yum install net-tools(CentOS/RHEL)安装。
  2. ip(现代替代工具)

    Linux查看网卡流量命令  第1张

    ip -s link show eth0
    • 优势:显示更详细的统计信息,包括错误包和丢包计数(errors, dropped)。
    • 输出示例
      RX: bytes  packets  errors  dropped missed  mcast   
      2.1 MB     1500     0       0       0       0
      TX: bytes  packets  errors  dropped carrier collsns 
      1.8 MB     1200     0       0       0       0

实时流量监控工具

  1. nload(直观可视化)

    • 安装
      sudo apt install nload      # Debian/Ubuntu
      sudo yum install nload      # CentOS/RHEL
    • 使用
      nload eth0
    • 功能
      • 实时显示上下行速率(单位自动换算:KB/s、MB/s)。
      • 支持方向键切换网卡或退出(按 Q)。
  2. iftop(按连接监控)

    • 安装
      sudo apt install iftop      # Debian/Ubuntu
      sudo yum install iftop      # CentOS/RHEL
    • 使用
      sudo iftop -i eth0
    • 功能
      • 实时显示每个连接的流量(源IP→目标IP)。
      • 按流量排序,支持 B(切換显示字节/位)、T(关闭显示)。

流量统计与分析工具

  1. vnstat(长期趋势统计)

    • 安装与初始化
      sudo apt install vnstat     # Debian/Ubuntu
      sudo vnstat -u -i eth0      # 初始化数据库
    • 常用命令
      vnstat -l                  # 实时监控
      vnstat -d                  # 查看日流量
      vnstat -m                  # 查看月流量
    • 输出示例
      eth0  /  monthly
         Month        RX      TX     Total    Avg. Rate
         2025-06     5.2 GB  3.1 GB  8.3 GB   2.15 Mbit/s
  2. sar(历史数据分析)

    • 安装
      sudo apt install sysstat    # Debian/Ubuntu
      sudo systemctl enable sysstat
    • 查看历史流量
      sar -n DEV 1 3              # 每秒1次,共3次采样
      sar -n DEV -f /var/log/sa/sa01  # 查看指定日期日志(如1号)
    • 关键列
      • rxkB/s:接收速率(KB/s)。
      • txkB/s:发送速率(KB/s)。

底层文件读取

  1. 直接读取 /proc/net/dev
    cat /proc/net/dev
    • 输出字段
      | 网卡名 | 接收字节 | 接收包 | 错误 | 丢包 | … | 发送字节 | 发送包 | … |
    • 实时计算流量
      watch -n 1 "cat /proc/net/dev | grep eth0"

      手动计算差值可获知每秒流量(单位:字节)。


方法对比与适用场景

工具 实时性 易读性 长期统计 适用场景
ifconfig 静态快照 中等 快速检查当前流量
ip -s link 静态快照 检查详细错误和丢包
nload 实时 直观监控实时速率
iftop 实时 分析具体连接的流量
vnstat 长期流量趋势报告
sar 可选 中等 结合系统性能的历史分析
/proc/net/dev 静态快照 脚本调用或开发场景

最佳实践建议

  • 快速检查ip -s link show eth0
  • 实时监控nload(简单)或 iftop(详细连接)。
  • 月度报告vnstat -m
  • 性能分析sar 结合CPU/内存数据。
  • 自动化脚本:解析 /proc/net/devip 命令输出。

重要提示

  • 部分工具需root权限(如 iftop)。
  • 虚拟化环境(如Docker、KVM)需检查虚拟网卡(如 vethXXXbr-XXX)。
  • 若网卡流量异常飙升,可用 iftop 定位反面连接。

引用说明

本文参考了Linux官方文档(kernel.org)、Ubuntu Manpages以及开源工具手册(如vnstat、iftop),数据采集原理基于Linux内核网络子系统(/proc 文件系统与Netlink API)。

0