Linux 如何测试网络带宽?常用方法与工具详解

在Linux系统中,测试带宽是网络管理、性能优化和故障排查的重要环节,无论是本地网络环境、服务器间互联,还是公网带宽验证,选择合适的工具和方法能准确反映网络性能,本文将详细介绍Linux下常用的带宽测试工具、使用方法及注意事项,帮助用户全面掌握带宽测试技巧。

linux 如何测试带宽

使用iperf3进行专业网络性能测试

iperf3是目前最主流的网络性能测试工具之一,支持TCP、UDP协议,可测试吞吐量、延迟、丢包率等关键指标,适用于服务器间带宽测试、网络链路质量评估等场景。

安装iperf3

不同发行版安装命令不同:

  • Ubuntu/Debian:sudo apt update && sudo apt install iperf3
  • CentOS/RHEL:sudo yum install iperf3(或dnf install iperf3
  • Arch Linux:sudo pacman -S iperf3

基本使用流程

iperf3采用客户端/服务端架构,需在一台设备上启动服务端,另一台设备作为客户端发起测试。

服务端操作(假设服务端IP为168.1.100):

iperf3 -s  # 启动服务端,默认监听端口5201

若需指定端口或绑定IP:

iperf3 -s -p 9999 -B 192.168.1.100  # 绑定192.168.1.100,监听9999端口

客户端操作(向服务端发起测试):

iperf3 -c 192.168.1.100  # 测试TCP带宽,默认持续10秒

测试结果会显示带宽、延迟、丢包率等信息,

[  5]  0.00-10.00  sec  112 MBytes  93.9 Mbits/sec  sender  
[  5]  0.00-10.00  sec  109 MBytes  91.6 Mbits/sec  receiver  

高级参数

  • 测试时长-t 30(测试30秒,默认10秒)
  • 并行线程数-P 4(使用4个并行连接测试,充分利用带宽)
  • 反向测试-R(客户端发送、服务端接收,适用于测试下载带宽)
  • UDP测试-u -b 100M(测试UDP带宽,限制发送速率为100Mbps)
  • 零拥塞控制-Z(禁用TCP拥塞控制,测试最大带宽)

使用speedtest-cli快速测公网带宽

若需测试本地设备到公网的带宽(如宽带运营商提供的上下行速度),speedtest-cli是轻量级选择,基于Speedtest.net平台,自动选择最近的服务器进行测试。

linux 如何测试带宽

安装speedtest-cli

curl -s https://install.speedtest.net/app/cli/install.deb.sh | sudo bash
sudo apt install speedtest-cli  # Ubuntu/Debian

或直接使用Python版本(需安装Python3):

pip3 install speedtest-cli

基本使用

speedtest-cli  # 自动测速并显示详细结果

输出示例:

Testing from China Telecom (1.2.3.4)...  
Hosted by Beijing Telecom (Beijing) [123.45 ms]  
Download: 345.67 Mbits/s  
Upload: 45.12 Mbits/s  
Ping: 123.45 ms  

常用参数

  • 简化输出speedtest-cli --simple(仅显示下载、上传、延迟)
  • 指定服务器speedtest-cli --server <ID>(通过speedtest-cli --list查看服务器列表)
  • 生成JSON报告speedtest-cli --json > report.json(便于后续分析)

使用nload/bmon实时监控带宽

若需实时观察当前带宽使用情况(如监控服务器流量、排查异常流量),nloadbmon是可视化工具,动态显示入站(In)和出站(Out)带宽。

安装与使用

nload(仅支持单网卡监控):

sudo apt install nload  # Ubuntu/Debian
nload -i eth0  # 监控网卡eth0(需替换为实际网卡名)

界面分为上下两部分,分别显示入站和出站带宽,包含实时流量图和当前速率。

bmon(支持多网卡,更详细的流量统计):

sudo apt install bmon  # Ubuntu/Debian
bmon -r eth0  # 监控eth0,`-r`显示速率

bmon以文本界面展示,支持不同视图(如列表、图表),按q退出。

使用vnstat统计历史带宽使用

若需长期统计网络流量(如月度、年度带宽使用趋势),vnstat是轻量级后台工具,无需持续运行即可记录流量数据。

linux 如何测试带宽

安装与初始化

sudo apt install vnstat  # Ubuntu/Debian
vnstat -u -i eth0  # 初始化eth0的流量数据库(需替换网卡名)
sudo systemctl enable vnstat  # 设置开机自启

查看流量统计

vnstat  # 查看当天流量
vnstat -m  # 查看月度流量
vnstat -h  # 查看小时流量
vnstat --dumpdb  # 查看原始数据库(便于导出分析)

输出示例:

 eth0  /  monthly  
         month        rx      tx      total    avg. rate  
----------------------------------------------  
2023-10    45.12 GB  12.34 GB  57.46 GB  158.23 kbit/s  

本地环境带宽测试(磁盘/内存)

若需测试本地磁盘读写带宽或内存拷贝速度(如验证SSD性能),可使用dd命令结合/dev/zero/dev/null

测试磁盘写入带宽

dd if=/dev/zero of=/tmp/testfile bs=1G count=1 oflag=direct  # 写入1GB文件

通过time dd ...命令可查看耗时,计算带宽:带宽 = 文件大小 / 耗时

测试磁盘读取带宽

dd if=/tmp/testfile of=/dev/null bs=1G iflag=direct  # 读取1GB文件

测试内存拷贝带宽

dd if=/dev/zero of=/tmp/testfile bs=1G count=1  # 拷贝1GB数据到内存(文件系统缓存)

工具对比与选择

为方便选择工具,以下总结常用带宽测试工具的特点及适用场景:

工具名称 功能特点 适用场景 安装命令(Ubuntu/Debian)
iperf3 支持TCP/UDP,测吞吐量、延迟、丢包,支持多线程、双向测试 专业网络性能测试,服务器间带宽 sudo apt install iperf3
speedtest-cli 基于Speedtest.net,自动选择最近服务器,测下载/上传/延迟 快速测公网带宽 sudo apt install speedtest-cli
nload 实时显示入站/出站带宽,动态流量图 实时带宽监控 sudo apt install nload
vnstat 后台统计网络流量,支持按天/月/年查询,生成报表 长期流量统计,历史数据分析 sudo apt install vnstat
dd 测试磁盘读写或内存拷贝带宽,简单直接 本地存储性能测试 系统内置

注意事项

  1. 测试环境:测试前关闭其他占用带宽的程序(如下载、视频流),确保网络稳定。
  2. 防火墙配置:使用iperf3时,需开放服务端端口(默认5201),否则客户端无法连接。
  3. 单位换算:带宽结果通常为“Mbits/s”(兆比特/秒),而下载工具显示为“MB/s”(兆字节/秒),1 MB/s = 8 Mbits/s。
  4. 多次测试:网络波动可能导致结果偏差,建议多次测试取平均值。

相关问答FAQs

Q1:为什么用iperf3测的带宽和实际网速不符?
A:可能原因包括:(1)TCP拥塞控制机制限制了发送速率;(2)网络延迟或丢包导致吞吐量下降;(3)测试时间过短,未达到稳定状态;(4)服务端或客户端硬件性能不足(如CPU、磁盘IO瓶颈);(5)防火墙或QoS策略限制了带宽,建议增加测试时长(-t 60)、使用多线程(-P 4)或切换UDP模式(-u)排除干扰。

Q2:如何长期监控服务器带宽使用情况?
A:可结合vnstatcron实现长期监控:(1)安装并初始化vnstat;(2)通过cron定期执行vnstat -m > /var/log/bandwidth_monthly.log,将月度流量记录到日志文件;(3)使用logrotate管理日志文件,避免磁盘占用过大;(4)结合iftopnethogs按进程监控流量,定位异常流量来源,也可使用Prometheus+Grafana搭建可视化监控平台,实时展示带宽趋势。

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

(0)
酷番叔酷番叔
上一篇 2025年8月30日 10:49
下一篇 2025年8月30日 11:00

相关推荐

  • Linux如何清理inode?实用操作方法与步骤详解

    inode是Linux文件系统中用于存储文件元数据的重要数据结构,每个文件、目录、设备等对象都会分配一个唯一的inode,记录文件的权限、所有者、大小、时间戳及数据块位置等信息,当inode耗尽时,即使磁盘空间充足,系统也无法创建新文件,因此及时清理inode占用是Linux系统维护的重要工作,本文将详细介绍L……

    2025年9月21日
    10100
  • Linux系统如何实现ping大包测试?

    Linux系统中,ping命令是常用的网络诊断工具,默认发送56字节数据包(加IP头和ICMP头共64字节),用于测试网络连通性和延迟,但在实际网络运维中,经常需要测试“大包”(超过默认大小的数据包)的传输情况,以排查MTU(最大传输单元)不匹配、网络设备处理能力或路径分片等问题,本文将详细介绍Linux系统如……

    2025年10月2日
    10300
  • 动态调试如何助力逆向工程?

    在Linux系统中,开启调试打印(通常称为dbgprint)是开发者诊断内核或驱动问题的关键手段,本文提供三种主流方法,涵盖动态调试、日志级别调整和内核参数配置,所有操作需root权限,并假设内核已启用动态调试支持(CONFIG_DYNAMIC_DEBUG=y),适用场景:精准控制特定内核模块、文件或函数的调试……

    2025年7月15日
    12900
  • 联想Win10如何安装Linux双系统?

    联想电脑预装Windows 10系统时,若想安装Linux实现双系统或完全替换,需注意硬件兼容性、磁盘分区及启动项配置,以下是详细安装步骤,涵盖准备工作、启动盘制作、安装流程及后续配置,帮助顺利完成Linux部署,准备工作备份数据:安装过程可能误操作删除Windows分区,需提前将重要文件备份至移动硬盘或云盘……

    2025年9月21日
    10400
  • Linux环境下如何高效实现大篇幅注释的操作方法?

    在Linux环境下,无论是编写Shell脚本、开发应用程序,还是配置系统服务,注释都是提升代码可读性和可维护性的关键,当需要处理大篇幅注释时,掌握不同场景下的注释语法、工具使用及规范技巧尤为重要,既能高效完成注释任务,又能确保注释的规范性和一致性,Shell脚本是最常见的需要大篇幅注释的场景之一,在Bash脚本……

    2025年9月18日
    8900

发表回复

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

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信