linux 如何查看系统带宽

在Linux系统中,监控网络带宽使用情况是系统管理和故障排查的重要环节,通过实时或历史数据可以定位网络瓶颈、发现异常流量或优化资源配置,Linux提供了多种命令行工具和实用程序,帮助用户从不同维度查看系统带宽使用情况,以下将详细介绍这些工具的使用方法、输出解析及适用场景。

linux 如何查看系统带宽

iftop:实时按连接查看带宽

iftop是一款基于libpcap的实时网络流量监控工具,以列表形式显示当前网络连接的带宽占用情况,支持按IP、端口、协议等维度排序,适合快速定位高流量连接。

安装

  • Ubuntu/Debian:sudo apt install iftop
  • CentOS/RHEL:sudo yum install iftop(需EPEL源)

常用参数

  • -i:指定网络接口,如iftop -i eth0
  • -n:以数字形式显示IP和端口,避免DNS解析;
  • -t:显示流量条形图,直观展示流量趋势;
  • -P:按端口显示连接信息,便于识别服务;
  • -b:以字节为单位显示流量(默认为比特)。

输出解析

运行iftop后,界面分为三部分:

  1. 顶部统计行:显示网卡总带宽(如“eth0”的“TX/RX”峰值)、平均流量及峰值时间;
  2. 中部连接列表:左侧为源IP/端口,右侧为目标IP/端口,中间=><=分别表示发送(TX)和接收(RX)流量,数值为实时速率(如25M表示1.25Mbps);
  3. 底部流量条:横向条形图实时显示当前流量占比,绿色代表发送,蓝色代表接收。

示例

sudo iftop -i eth0 -n -t -P  

此命令将以数字+条形图模式监控eth0接口,并按端口显示连接,快速定位占用带宽的服务(如HTTP、SSH)。

nethogs:按进程查看带宽

nethogs按进程维度统计网络带宽,适合查找具体哪个应用程序(如下载工具、视频软件)导致流量异常,支持实时刷新和流量排序。

安装

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

常用参数

  • -d:刷新间隔(秒),默认为1;
  • -t:按流量排序(默认按PID);
  • -p:以PID形式显示进程,避免进程名解析延迟;
  • -c:刷新次数,如nethogs -c 5仅刷新5次后退出。

输出解析

输出分为三列:

  • PID:进程ID;
  • USER:进程所属用户;
  • DEVICE:使用的网络接口;
  • SENT/RECEIVED:该进程的发送/接收速率(KB/s);
  • TOTAL:累计流量(KB)。

若发现某个进程(如PID为1234的chrome)流量异常,可结合ps -ef 1234进一步确认进程详情,或用kill 1234终止进程。

bmon:可视化实时带宽监控

bmon(Bandwidth Monitor)以文本界面提供可视化流量图表,支持多接口监控和流量统计,适合需要直观展示网络趋势的场景。

linux 如何查看系统带宽

安装

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

常用参数

  • -r:只读模式,避免修改配置;
  • -p:指定接口列表,如bmon -p eth0,wlan0
  • -u:使用单位(K/M/G),默认自动适配。

界面布局

启动后分为三个区域:

  • 流量图:横向条形图实时显示各接口RX/TX流量,颜色区分;
  • 接口统计:显示每个接口的RX/TX总流量、平均速率、峰值等;
  • 连接列表:显示当前活跃连接的IP和端口(需开启show-details)。

通过按键l切换流量图长度,d显示/隐藏详细信息,适合演示或长期监控。

vnstat:基于数据库的历史带宽统计

vnstat通过后台服务持续收集网络流量数据,存储在SQLite数据库中,支持按天、周、月、年查询历史流量,适合长期带宽趋势分析。

安装

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

常用命令

  • 实时流量vnstat -l,显示当前RX/TX速率;
  • 按天统计vnstat -d,显示每日总流量及峰值;
  • 按月统计vnstat -m,显示每月流量趋势;
  • 指定接口vnstat -i eth0 -d,查询eth0接口的日流量。

数据库位置

默认数据库位于/var/lib/vnstat/,可通过vnstat --dbdir /path/to/db指定路径,若需持久化监控,需启用systemctl enable vnstat服务。

sar:系统活动报告器(sysstat组件)

sar是sysstat工具包的一部分,通过-n DEV参数可查看网络设备的RX/TX统计,支持按时间间隔多次采样,适合结合系统负载分析网络性能。

安装

  • Ubuntu/Debian:sudo apt install sysstat
  • CentOS/RHEL:默认已安装,或sudo yum install sysstat

常用命令

sar -n DEV 1 5  # 每秒采样1次,共5次,显示网络设备流量

输出解析

  • IFACE:网络接口名;
  • rx/sync:每秒接收数据包数(sync指同步包);
  • tx/sync:每秒发送数据包数;
  • rxkb/s:每秒接收流量(KB/s);
  • txkb/s:每秒发送流量(KB/s)。

sar的优势在于可与CPU、I/O等系统数据联动分析,例如当rxkb/s很高但CPU利用率低时,可能存在网络拥塞而非处理瓶颈。

iptraf-ng:图形化网络监控工具

iptraf-ng提供交互式文本界面,支持LAN流量统计、接口分析、TCP/UDP协议监控等功能,适合需要详细协议分析的场景。

linux 如何查看系统带宽

安装

  • Ubuntu/Debian:sudo apt install iptraf-ng
  • CentOS/RHEL:sudo yum install iptraf-ng

使用方法

启动后进入主菜单,选择:

  • LAN traffic:监控局域网内主机流量;
  • Interface statistics:查看指定接口的RX/TX包数、错误数、带宽;
  • TCP/UDP service monitor:按端口分析协议流量。

通过按键F2可设置过滤规则(如仅监控特定IP),q退出当前界面,适合网络管理员排查局域网异常流量。

tc:流量控制与带宽查看

tc(Traffic Control)是Linux内核流量控制工具,主要用于限速、QoS调度,但通过tc showtc -s qdisc可查看接口的流量统计和队列状态。

常用命令

tc qdisc show dev eth0  # 查看eth0的队列规则
tc -s class show dev eth0  # 显示分类器的详细统计(如流量、包数)

输出中包含bytes(总字节数)、packets(总包数)、rate(当前速率)等字段,适合已配置流量控制的场景查看限速效果。

工具对比与选择

工具名称 功能特点 适用场景 是否需安装 命令示例
iftop 实时按连接排序,显示IP/端口 快速定位高流量连接 iftop -i eth0 -n
nethogs 按进程统计带宽,支持流量排序 查找异常带宽的进程 nethogs -d 2 -t
bmon 可视化流量图,多接口支持 直观展示流量趋势,演示 bmon -p eth0,wlan0
vnstat 历史流量统计,按天/周/月查询 长期带宽趋势分析 vnstat -m -i eth0
sar 系统级网络统计,联动CPU/I/O 结合系统性能分析网络瓶颈 部分需安装 sar -n DEV 1 5
iptraf-ng 图形化界面,支持协议和LAN分析 局域网流量监控,协议排查 iptraf-ng
tc 流量控制与队列统计 查看限速规则效果,QoS调试 内置 tc -s class show dev

相关问答FAQs

Q1:iftop显示的“total send”和“total receive”是什么意思?如何理解其数值单位?
A:“total send”和“total receive”分别表示从启动iftop到当前时刻,网络接口的总发送流量和总接收流量,默认单位为“比特”(bits),1.25M”表示1.25兆比特(Mbps);若使用-b参数,则单位为“字节”(bytes),1.25M”表示1.25兆字节(MB/s),注意:1字节=8比特,因此在对比流量时需确保单位一致,若需查看实时速率而非累计流量,关注界面中间的“=>”(发送)和“<=”(接收)列,其数值为当前瞬时速率。

Q2:如何通过nethogs找到并终止占用带宽的恶意进程?
A:步骤如下:

  1. 启动nethogs:使用sudo nethogs -t -d 2(按流量排序,每2秒刷新),以管理员权限运行才能查看所有进程;
  2. 定位异常进程:观察输出中的“SENT”和“RECEIVED”列,若发现某个进程(如PID为5678的python)速率异常高(如持续占用50MB/s以上),且进程名可疑(如非系统自带程序);
  3. 确认进程详情:通过ps -ef 5678查看进程路径、启动命令及用户,确认是否为恶意程序(如挖矿木马、后门);
  4. 终止进程:若确认异常,使用sudo kill 5678正常终止,或sudo kill -9 5678强制终止(需谨慎,可能导致数据丢失);
  5. 后续处理:检查系统是否有其他异常进程,并分析恶意程序的来源(如下载的软件、恶意脚本),及时修复安全漏洞。

原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/22264.html

(0)
酷番叔酷番叔
上一篇 2025年9月9日 13:16
下一篇 2025年9月9日 13:28

相关推荐

  • linux如何加入window域

    在Linux系统中加入Windows域是实现统一身份认证、权限管理和资源访问的重要操作,尤其在企业环境中能简化管理流程,本文将详细介绍Linux加入Windows域的完整步骤、所需工具及注意事项,涵盖环境准备、配置实施、测试验证等关键环节,环境准备与需求分析在开始操作前,需确保满足以下基础条件,避免因环境不兼容……

    2025年8月30日
    17900
  • 如何正确初始化Linux硬盘?操作步骤与方法详解

    Linux硬盘初始化是指对新硬盘或需要重新规划的旧硬盘进行分区、格式化等操作,使其能够被Linux系统识别和使用的流程,这一过程需要谨慎操作,避免误删系统数据,以下是详细步骤和注意事项,识别硬盘初始化前需先确认硬盘是否被系统识别,通过lsblk或fdisk -l命令列出所有存储设备:执行lsblk,查看块设备信……

    2025年9月26日
    18200
  • Linux系统如何开启DNS服务?

    在Linux系统中,DNS(域名系统)配置是网络通信的基础,它负责将人类可读的域名(如www.example.com)转换为机器可识别的IP地址,正确配置DNS不仅能确保网络连接正常,还能优化访问速度、提升安全性,本文将详细介绍Linux系统中查看、修改及排查DNS配置的多种方法,涵盖命令行工具、配置文件操作及……

    2025年8月27日
    18000
  • Linux下用rm误删文件后,如何恢复?

    Linux下使用rm命令删除文件后,默认情况下文件不会进入回收站,而是直接从文件系统中移除,但需要明确的是,rm操作并非“物理删除”,而是将文件的inode(索引节点)标记为“未使用”,并释放其占用的数据块空间,只要这些数据块未被新的数据覆盖,理论上仍可通过专业工具恢复,本文将详细介绍Linux恢复rm文件的原……

    2025年10月3日
    19100
  • 如何查看U盘名称?

    准备工作获取Linux镜像文件(ISO)从官方发行版网站下载(如Ubuntu、Fedora、Debian官网),验证文件完整性:对比官网提供的SHA256或MD5校验值(Windows用HashCheck,Linux/macOS用终端命令 sha256sum 文件名.iso),选择存储介质U盘:容量≥8GB,U……

    2025年7月6日
    17300

发表回复

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

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信