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 show或tc -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大硬盘分区有哪些实用方法与操作步骤?

    在Linux系统中,为大硬盘(通常指超过2TB容量)分区需要综合考虑分区表类型、分区策略、文件系统选择及实际使用场景,以确保系统稳定性、数据安全性和性能优化,大硬盘的分区与传统小硬盘存在显著差异,尤其在分区表选择、分区对齐及文件系统支持方面需格外注意,分区表选择:GPT vs MBR大硬盘分区的首要问题是选择分……

    2025年9月22日
    24400
  • Linux修改FTP地址,vsftpd配置教程

    修改FTP服务监听地址(以vsftpd为例)步骤1:编辑配置文件sudo nano /etc/vsftpd.conf # 使用nano编辑器,也可用vi/vim步骤2:设置监听地址在配置文件中找到或添加以下参数:listen_address=192.168.1.100 # 替换为你的目标IP地址若使用IPv6……

    2025年6月17日
    26700
  • Linux如何快速统计用户数量?

    核心方法:通过系统文件直接统计统计所有本地用户 cat /etc/passwd | grep -vE '(nologin|false|sync|halt)' | wc -l原理:/etc/passwd 存储所有用户信息,grep -v 排除系统服务账户(如nologin等伪用户),输出示例:24……

    2025年7月15日
    26800
  • Linux下如何压缩一个文件夹?

    在Linux系统中,压缩文件夹是日常运维和开发中常见的操作,主要用于节省存储空间、加快文件传输速度或便于归档管理,Linux下支持多种压缩工具和格式,每种工具在压缩率、速度、兼容性等方面各有特点,本文将详细介绍常用的压缩方法,包括tar、zip、gzip等工具的使用场景和具体操作,帮助用户根据需求选择合适的压缩……

    2025年8月28日
    23700
  • Linux下如何用C语言编写程序的详细步骤与方法?

    在Linux操作系统中,使用C语言进行程序开发是系统级编程和应用开发的基础,Linux本身由C语言编写,其内核、系统调用及底层工具链都与C语言深度集成,因此掌握Linux下的C语言开发是理解系统工作原理和高效开发的关键,以下从环境搭建、基础语法、文件操作、进程管理、多线程及调试编译等方面详细介绍Linux下C语……

    2025年9月21日
    22000

发表回复

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

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信