菜鸟科技网

Linux查看流量命令有哪些?

在Linux系统中,监控和管理网络流量是系统管理员和开发人员的常见需求,通过合适的命令工具,可以实时查看流量统计、分析网络连接、识别异常流量等,以下将详细介绍Linux系统中查看流量的常用命令及其使用方法,涵盖基础工具、高级工具以及不同场景下的应用技巧。

Linux查看流量命令有哪些?-图1
(图片来源网络,侵删)

基础流量查看命令

  1. ifconfig
    ifconfig是传统的网络接口配置工具,虽然在新版Linux中逐渐被ip命令取代,但仍可通过ifconfig接口查看基本流量信息,执行ifconfig eth0可显示网络接口的接收(RX)和发送(TX)字节数、数据包数量等,但需注意,ifconfig默认不提供实时流量监控功能,需结合其他工具或脚本实现动态统计。

  2. ip命令
    ip是Linux下更现代的网络管理工具,功能比ifconfig更强大,通过ip -s link show eth0命令可以查看接口的详细统计信息,包括接收/发送的字节数、错误包数、丢包数等。

    ip -s link show eth0

    输出结果中,RXTX部分分别显示接收和发送的统计信息,适合快速检查接口流量状态。

实时流量监控工具

  1. iftop
    iftop是一款基于终端的实时流量监控工具,可按连接显示带宽使用情况,安装后(需sudo apt install iftopsudo yum install iftop),执行iftop -i eth0即可查看指定接口的实时流量,包括源/目标IP、端口、带宽占用百分比等,支持排序功能(如按带宽排序),便于快速定位高流量连接。

    Linux查看流量命令有哪些?-图2
    (图片来源网络,侵删)
  2. nethogs
    nethogs按进程监控网络流量,适合排查哪个进程占用了大量带宽,安装后执行nethogs -i eth0,会实时显示每个进程的接收/发送速度及PID,对于发现异常网络行为(如恶意程序联网)非常有效。

  3. vnstat
    vnstat是一个轻量级的网络流量统计工具,通过后台服务记录历史流量数据,安装后可通过vnstat -i eth0查看当日、当月及总流量统计,支持生成图表(需配合vnstat -l实时监控),适合长期流量趋势分析。

高级流量分析工具

  1. nload
    nload以图形化方式实时显示网络带宽使用情况,分为上下两部分分别显示接收和发送流量,包含动态进度条和当前速度,安装后直接执行nload即可监控所有接口,或指定nload eth0查看单个接口。

  2. tcpdump
    tcpdump是强大的网络抓包工具,可通过分析数据包内容深入排查流量问题。tcpdump -i eth0 -n 'port 80'可抓取HTTP流量(端口80),-n参数避免域名解析,提高抓包效率,适合分析协议细节或异常数据包。

    Linux查看流量命令有哪些?-图3
    (图片来源网络,侵删)
  3. Wireshark(tshark)
    Wireshark是图形化网络分析工具,其命令行版本tshark适合服务器环境。tshark -i eth0 -q -z conv,ip可显示IP层的连接统计信息,适合批量分析流量模式。

系统级流量统计

  1. /proc/net/dev
    Linux内核通过/proc/net/dev文件记录所有网络接口的流量统计,直接执行cat /proc/net/dev可查看各接口的接收/发送字节数、包数等原始数据,适合脚本自动化处理,通过awk提取特定接口的流量:

    cat /proc/net/dev | grep eth0 | awk '{print $2, $10}'
  2. sar
    sar是系统活动报告工具,需安装sysstat包,通过sar -n DEV 1 5可每秒统计一次网络流量,共5次,显示各接口的带宽使用率,适合长期监控和生成流量报告。

不同场景下的应用建议

  • 实时监控:优先使用iftopnloadnethogs,快速定位高流量连接或进程。
  • 历史分析:依赖vnstatsar,结合日志文件分析流量趋势。
  • 故障排查:使用tcpdumptshark抓包,结合ip -s检查接口错误。
  • 自动化脚本:通过解析/proc/net/dev或调用sar命令,实现流量告警或自动化统计。

工具对比表格

工具名称 主要功能 适用场景 优点 缺点
iftop 实时按连接显示带宽 快速定位高流量连接 直观、支持排序 无历史数据
nethogs 按进程监控流量 进程级流量分析 可关联PID,适合排查异常 不支持协议层分析
vnstat 历史流量统计 长期趋势分析 轻量级,支持图表 实时性较弱
tcpdump 抓包分析 协议级故障排查 功能强大,可过滤数据包 需要专业知识
sar 系统级流量统计 服务器流量监控 可生成报告,适合集成 需安装sysstat

相关问答FAQs

Q1: 如何监控指定端口的实时流量?
A: 可结合iftoptcpdump实现,使用iftop -P -i eth0按端口显示流量,或tcpdump -i eth0 -n 'port 80'抓取特定端口流量,若需统计端口流量总量,可通过iptables记录:

iptables -A INPUT -p tcp --dport 80 -j ACCEPT
iptables -A OUTPUT -p tcp --sport 80 -j ACCEPT
iptables -L -v -n | grep dport 80

Q2: 如何设置流量超限告警?
A: 可通过vnstat或脚本实现,编写一个监控脚本,定时读取/proc/net/dev,当流量超过阈值时触发告警,示例脚本片段:

#!/bin/bash
interface="eth0"
threshold=1000000  # 1GB
current_traffic=$(cat /proc/net/dev | grep $interface | awk '{print $2}')
if [ $current_traffic -gt $threshold ]; then
    echo "流量超限!当前流量:$current_traffic 字节" | mail -s "流量告警" admin@example.com
fi

将脚本加入cron定时任务即可实现自动化告警。

分享:
扫描分享到社交APP
上一篇
下一篇