服务器测评网
我们一直在努力

Linux系统下如何实时查看当前网络的上传和下载速度?

在Linux系统中,实时网速监控是网络管理、故障排查和性能优化的基础操作,无论是服务器管理员追踪异常流量,还是普通用户了解网络使用情况,掌握合适的监控工具都能高效解决问题,本文将详细介绍Linux环境下实时网速监控的常用工具、使用方法及进阶应用,帮助读者根据需求选择合适方案。

Linux系统下如何实时查看当前网络的上传和下载速度?

为什么需要实时网速监控

实时网速监控的核心价值在于动态掌握网络状态,在服务器场景中, sudden的流量激增可能意味着DDoS攻击或异常应用占用带宽;在个人使用中,监控网速能识别后台程序偷跑流量、优化网络配置,通过实时数据,管理员可以快速定位问题节点(如特定网卡、进程),为网络扩容、QoS策略制定提供依据,Linux系统提供了多样化的监控工具,覆盖从简单直观到专业复杂的多种需求。

基础实时网速监控工具

iftop:按进程/连接实时分析流量

iftop是一款基于libpcap的实时流量监控工具,以列表形式显示当前网络连接的实时带宽占用,支持按进程、目标IP/端口排序,是排查异常流量的利器。

安装方法

  • Ubuntu/Debian: sudo apt install iftop
  • CentOS/RHEL: sudo yum install iftop

使用示例

sudo iftop -i eth0 -n -P -t  

参数说明:

  • -i eth0:指定监控网卡(如eth0、ens33);
  • -n:不解析主机名,直接显示IP;
  • -P:显示端口信息;
  • -t:非交互模式,适合日志输出。

界面解读
顶部为网卡总带宽(如“Total send: 0.0b/s Total receive: 0.0b/s”),中间列表显示每个连接的实时上传/下载速度(TX/RX),左侧为源IP/端口,右侧为目标IP/端口,下方为全局流量峰值统计。

优势:按进程关联流量,可直接定位异常程序;
局限:仅显示实时数据,无历史记录。

nload:可视化流量曲线展示

nload以直观的曲线图形式展示实时网络流量,上半部分为下载带宽(Incoming),下半部分为上传带宽(Outgoing),适合需要快速观察流量趋势的场景。

安装方法

  • Ubuntu/Debian: sudo apt install nload
  • CentOS/RHEL: sudo yum install nload

使用示例

nload -i eth0 -u K  

参数说明:

  • -i eth0:指定监控网卡;
  • -u K:流量单位设置为KB/s(默认为MB/s)。

界面解读
曲线图实时更新,下方显示当前流量(Curr)、平均流量(Avg)、峰值流量(Max)、总流量(Ttl),支持多网卡切换(按Tab键)。

Linux系统下如何实时查看当前网络的上传和下载速度?

优势:图形化界面直观,无需理解复杂列表;
局限:无法查看具体连接或进程信息。

进阶网速监控工具

vnstat:后台持续统计与实时查询

vnstat通过定时采集网卡数据,实现长期流量统计,同时支持实时数据查询,适合需要分析历史流量趋势(如日/月/年统计)的场景。

安装与配置

  • 安装:sudo apt install vnstat(Ubuntu/Debian)或 sudo yum install vnstat(CentOS/RHEL)
  • 初始化数据库:sudo vnstat -u -i eth0(需指定网卡)
  • 设置为系统服务:sudo systemctl enable vnstat

实时查询示例

vnstat -l -i eth0  # 实时流量监控  
vnstat -d -i eth0  # 查看昨日流量统计  
vnstat -m -i eth0  # 查看本月流量统计  

优势:后台自动运行,无需持续命令行占用;支持长期历史数据;
局限:实时数据精度略低于iftop/nload,依赖定时采集间隔。

bmon:多网卡与模块化显示

bmon(Bandwidth Monitor)是一款高度可定制的实时流量监控工具,支持多网卡同时监控,模块化显示流量数据、图表、错误统计等,适合复杂网络环境。

安装方法

  • Ubuntu/Debian: sudo apt install bmon
  • CentOS/RHEL: sudo yum install bmon

使用示例

bmon -i eth0,eth1 -p detail  

参数说明:

  • -i eth0,eth1:同时监控多个网卡;
  • -p detail:显示详细模块(流量、图表、端口统计)。

界面解读
默认分为“rates”(实时速率)、“total”(总流量)、“graph”(曲线图)等模块,可通过鼠标点击或命令切换视图。

优势:模块化设计灵活,支持多网卡聚合监控;
局限:操作稍复杂,需熟悉模块切换命令。

轻量级与命令行工具

speedtest-cli:在线测速与延迟检测

speedtest-cli基于Speedtest.net服务,提供下载/上传速度、延迟、抖动等数据,适合快速测试网络质量。

Linux系统下如何实时查看当前网络的上传和下载速度?

安装与使用

curl -s https://packagecloud.io/install/repositories/ookla/speedtest-cli/script.deb.sh | sudo bash  
sudo apt install speedtest-cli  
speedtest --simple  # 简洁模式显示结果  

输出示例

Server: Speedtest.net Frankfurt [xx.xx.xx.xx]  
Ping: 25.123 ms  
Download: 85.12 Mbit/s  
Upload: 12.45 Mbit/s  

优势:无需本地服务器,全球节点覆盖;
局限:依赖外部服务,无法监控持续流量。

/proc/net/dev:内核原始数据查询

Linux内核通过/proc/net/dev文件实时输出网卡流量统计(接收/发送字节数、包数等),适合脚本化处理或底层调试。

使用示例

cat /proc/net/dev | grep eth0  

输出示例:

eth0: 1234567890 123456  0 0 0 0 0 0 987654321 123456 0 0 0 0 0 0  

左侧为接收字节(Receive bytes)、包数(Receive packets),右侧为发送字节(Transmit bytes)、包数(Transmit packets)。

应用场景
通过脚本定时读取数据,计算实时速率(如每5秒差值除以时间间隔),实现自定义监控。

工具选择与进阶应用

按场景选择工具

  • 快速查看实时流量:nload(图形化)、iftop(按进程分析);
  • 长期历史统计:vnstat(后台服务);
  • 多网卡复杂环境:bmon(模块化);
  • 脚本自动化监控:/proc/net/dev + shell/python脚本。

自动化监控与告警

结合iftop和shell脚本,可实现流量异常告警,当下载速率超过100Mbps时触发邮件通知:

#!/bin/bash  
INTERFACE="eth0"  
THRESHOLD_MBPS=100  
THRESHOLD=$((THRESHOLD_MBPS * 1024 * 1024 / 8))  # 转换为字节/秒  
while true; do  
    RX_BYTES=$(cat /proc/net/dev | grep $INTERFACE | awk '{print $2}')  
    sleep 1  
    RX_BYTES_NEW=$(cat /proc/net/dev | grep $INTERFACE | awk '{print $2}')  
    RX_RATE=$((RX_BYTES_NEW - RX_BYTES))  
    if [ $RX_RATE -gt $THRESHOLD ]; then  
        echo "流量异常: ${RX_RATE} bytes/s" | mail -s "告警: $INTERFACE 流量超限" admin@example.com  
    fi  
done  

Linux实时网速监控工具从简单到复杂,覆盖了从个人用户到企业服务器的多样化需求,iftop适合进程级流量排查,nload提供直观趋势展示,vnstat满足长期统计,而/proc/net/dev则为脚本开发提供底层支持,选择工具时需结合监控场景(实时性、历史数据、多网卡需求)和操作习惯,必要时可通过脚本组合实现自动化监控,掌握这些工具,不仅能快速定位网络问题,还能为网络性能优化提供数据支撑,是Linux系统管理必备技能。

赞(0)
未经允许不得转载:好主机测评网 » Linux系统下如何实时查看当前网络的上传和下载速度?