CentOS服务器如何用命令实时监控网速流量?

在管理和维护CentOS服务器时,实时监控网络带宽的使用情况是一项至关重要的任务,无论是排查性能瓶颈、防止流量异常,还是评估网络服务质量,都需要有效的工具来查看当前网速,CentOS作为一款流行的服务器操作系统,提供了多种方式来满足这一需求,从简单的命令行工具到功能强大的网络监控软件,应有尽有,本文将详细介绍几种在CentOS中查看当前网速的常用方法,并分析其各自的特点与适用场景。

CentOS服务器如何用命令实时监控网速流量?

使用 iftop 实时监控网络流量

iftop 是一款经典的实时网络流量监控工具,它以类似 top 命令的方式,动态显示网络连接的带宽使用情况,其界面直观,可以清晰地看到哪些主机(IP地址)与本机正在进行数据交换,以及交换的速率和方向。

安装方法:
iftop 通常不在CentOS的默认源中,需要先安装EPEL(Extra Packages for Enterprise Linux)仓库。

sudo yum install epel-release
sudo yum install iftop

对于较新的CentOS 8/9版本,使用 dnf

sudo dnf install epel-release
sudo dnf install iftop

使用方法:
直接在终端中输入 iftop 即可启动,默认情况下,它会监控第一个网络接口,你也可以通过 -i 参数指定要监控的网卡,iftop -i eth0,在 iftop 的界面中,=> 代表发送数据,<= 代表接收数据,右侧的数值则显示了不同连接的实时速率,单位可以是b、Kb、Mb等。

利用 nload 进行图形化展示

如果你更喜欢图形化的流量展示,nload 是一个绝佳的选择,它以一个简洁的文本用户界面(TUI)实时显示当前网络的入站和出站流量,并用动态的条形图进行可视化,非常直观。

安装方法:

CentOS服务器如何用命令实时监控网速流量?

sudo yum install nload
# 或
sudo dnf install nload

使用方法:
直接运行 nload 命令,它默认会监控所有可用的网络接口,并循环显示,你可以通过左右方向键在多个网卡之间切换,界面会清晰地显示“Curr”(当前速率)、“Avg”(平均速率)和“Min”(最小速率)、“Max”(最大速率),方便你快速了解网络负载的整体情况。

通过 vnstat 查看历史与实时数据

与前两款实时监控工具不同,vnstat 的核心功能是记录和统计网络流量历史数据,它会在后台持续运行,收集流量信息并存入数据库,你不仅可以查看实时速度,还能回顾过去几小时、几天甚至几个月的流量使用情况。

安装与配置:

sudo yum install vnstat
# 或
sudo dnf install vnstat

安装后,需要为指定的网卡创建数据库并启动服务:

sudo vnstat -u -i eth0  # 为eth0网卡创建数据库
sudo systemctl enable vnstat
sudo systemctl start vnstat

使用方法:

  • vnstat:查看历史流量汇总。
  • vnstat -l:进入实时监控模式,效果类似 iftop,但更简洁。
  • vnstat -d:查看每日流量统计。
  • vnstat -m:查看每月流量统计。

无工具依赖的Shell脚本方法

在某些受限环境中,你可能无法安装额外的软件包,可以通过读取Linux内核提供的网络统计信息文件 /proc/net/dev,并结合简单的Shell脚本来计算实时网速。

CentOS服务器如何用命令实时监控网速流量?

以下是一个基础示例脚本:

#!/bin/bash
# 定义要监控的网络接口
INTERFACE="eth0"
while true; do
    # 读取第一次数据
    RX1=$(cat /proc/net/dev | grep $INTERFACE | awk '{print $2}')
    TX1=$(cat /proc/net/dev | grep $INTERFACE | awk '{print $10}')
    sleep 1
    # 读取第二次数据
    RX2=$(cat /proc/net/dev | grep $INTERFACE | awk '{print $2}')
    TX2=$(cat /proc/net/dev | grep $INTERFACE | awk '{print $10}')
    # 计算差值并转换为KB/s
    RX_RATE=$((($RX2 - $RX1) / 1024))
    TX_RATE=$((($TX2 - $TX1) / 1024))
    echo "RX: ${RX_RATE} KB/s  TX: ${TX_RATE} KB/s"
done

这个脚本的核心逻辑是:在1秒的时间间隔内,读取两次网卡的接收(RX)和发送(TX)字节数,然后计算出差值,再除以1024得到KB/s单位的速率。

工具对比与选择

为了方便你根据不同场景选择合适的工具,下表对上述方法进行了小编总结:

工具/方法 特点 适用场景
iftop 实时显示连接详情,可定位具体通信主机 排查网络连接异常,定位流量来源
nload 图形化界面,直观展示总体入站/出站流量 快速概览服务器整体网络负载
vnstat 记录历史数据,支持长期流量分析 流量审计、带宽规划、查看历史峰值
Shell脚本 无需安装,轻量级,可高度定制 受限环境或需要集成到其他脚本中

相关问答FAQs

Q1: 为什么我执行 sudo yum install iftop 时提示“没有可用软件包 iftop”?
A1: 这个错误通常是因为你的系统没有启用EPEL(Extra Packages for Enterprise Linux)仓库。iftop 等许多额外的常用软件包都托管在EPEL仓库中,请先执行以下命令安装EPEL仓库,然后再尝试安装 iftop
sudo yum install epel-release
安装完成后,再次运行 sudo yum install iftop 即可成功。

Q2: 这些工具显示的网速单位是KB/s或MB/s,但我的运营商提供的是100Mbps的宽带,为什么两者数值对不上?
A2: 这是因为单位换算和计量方式不同,运营商所说的“Mbps”指的是“兆比特每秒”(Megabits per second),而iftopnload等工具默认显示的是“MB/s”或“KB/s”,即“兆字节每秒”(Megabytes per second)或“千字节每秒”(Kilobytes per second),它们之间的换算关系是:1 Byte = 8 bits,100Mbps的理论最大下载速度是 100 / 8 = 12.5 MB/s,实际网速还会受到服务器性能、网络延迟、对端服务器速度等多种因素影响,所以通常达不到理论峰值。

【版权声明】:本站所有内容均来自网络,若无意侵犯到您的权利,请及时与我们联系将尽快删除相关内容!

(0)
热舞的头像热舞
上一篇 2025-10-04 04:49
下一篇 2025-10-04 04:53

相关推荐

  • 如何在CentOS7上快速安装并配置Redis服务,实现开机自启?

    Redis是一个开源的、基于内存的键值对存储数据库,以其卓越的性能、丰富的数据结构和灵活的持久化机制而闻名,在稳定且广泛应用的CentOS 7服务器上部署Redis,是许多开发者和运维人员的常见需求,本文将详细介绍在CentOS 7环境下安装、配置和基本使用Redis的完整流程,通过YUM仓库安装Redis对于……

    2025-10-14
    0023
  • bin版CentOS与官方版具体有哪些区别和风险?

    在Linux服务器的世界里,CentOS长久以来占据着举足轻重的地位,当我们谈论“bin版的CentOS”时,实际上是指最主流、最标准的CentOS发行版本,这里的“bin”是“binary”的缩写,即二进制版本,它意味着系统中的所有软件——从内核到基础的命令行工具,再到复杂的应用程序——都已经被预先编译好,打……

    2025-10-13
    007
  • 房屋网站模板_网站模板设置

    房屋网站模板应具备清晰的布局、丰富的房源信息展示、便捷的搜索功能和良好的用户体验,以便用户快速找到合适的房源。

    2024-07-17
    0033
  • centos7修改limits.conf后ulimit-a为何不生效?

    在 Linux 系统管理中,资源控制是确保系统稳定、公平分配资源以及防止个别进程耗尽系统资源的关键环节,在 CentOS 7 这类广泛用于服务器的发行版中,ulimit 命令是管理员进行资源限制管理的核心工具之一,通过 ulimit -a,我们可以全面地查看当前 shell 会话下,用户进程所能使用的各类资源的……

    2025-10-07
    0018

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

广告合作

QQ:14239236

在线咨询: QQ交谈

邮件:asy@cxas.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信