好的,这是一个非常详细和实用的 iperf3 教程。iperf3 是一个专业的网络性能测试工具,用于测量网络带宽、吞吐量、抖动和数据包丢失。
1. 什么是 iperf3?
iperf3 是一个跨平台的(Windows, Linux, macOS, FreeBSD 等)命令行工具,它可以通过创建数据流来测量两个节点之间的网络性能。它需要两个组件:
- 服务器端:监听来自客户端的连接。
- 客户端:发起连接到服务器,并发送或接收测试数据。
官网下载地址:https://iperf.fr/iperf-download.php核心概念:测试必须在两台机器上进行(一台作为服务器,一台作为客户端)。你不能只用一台机器测试自己的网速(像 Speedtest 那样),它测试的是两点之间的链路性能。

2. 安装 iperf3
Linux (Ubuntu/Debian)
sudo apt update sudo apt install iperf3
- 笔者是在debian13中测试安装的,提示默认5201的端口被占用了,如下图:

- 这里换个端口5202测试

Linux (CentOS/RHEL/Fedora)
# CentOS/RHEL (需要 EPEL 仓库) sudo yum install epel-release sudo yum install iperf3 # Fedora sudo dnf install iperf3
macOS
# 使用 Homebrew brew install iperf3
Windows
- 访问 iperf3 官网下载页面:https://iperf.fr/iperf-download.php
- 下载 Windows 版本(通常是一个 zip 文件)。
- 解压 zip 文件,你会得到
cygwin1.dll和iperf3.exe两个文件。 - 为了方便使用,建议将这两个文件放在一个简单的路径下,如
C:\iperf3,并将该路径添加到系统的PATH环境变量中。这样你就可以在任意命令提示符或 PowerShell 中直接运行iperf3。
3.客户端测试
- 也可以把解压的文件夹放到D盘目录,例如:D:\iperf3.1.1_64,如何在当前目录输入CMD,就OK了



- 在命令提示符上执行:iperf3 -c 192.168.9.102 -p 5202,如下图:

- Transfer: 传输的数据量。
- Bitrate: 这是最重要的指标,表示测量的带宽。上例中
933 Mbits/sec接近千兆网络的极限。 - Retr: 重传的数据包数量,如果这个值很高,说明网络不稳定。
- 最后两行分别是发送端和接收端的总结,通常以接收端的
Bitrate为准。
4. 常用参数和高级用法
测试方向
- 默认:客户端发送数据到服务器 (
-c)。 - 反向测试:让服务器发送数据到客户端。这在测试下载速度时非常有用。bashiperf3 -c SERVER_IP -R
iperf3 -c 192.168.9.102 -R

测试时长和间隔
-t: 测试时间(秒)。例如,测试 30 秒:bashiperf3 -c SERVER_IP -t 30-i: 输出报告的间隔时间(秒)。例如,每 2 秒输出一次结果:bashiperf3 -c SERVER_IP -i 2
并行连接
使用 -P 参数可以创建多个并行连接,这有助于突破单线程的限制,更充分地利用带宽,尤其是在有负载均衡的网络中。
# 使用 4 个并行连接 iperf3 -c SERVER_IP -P 4

UDP 测试
默认是 TCP 测试。UDP 测试可以测量抖动和数据包丢失。
- 在服务器端:正常启动。
- 在客户端:bashiperf3 -c SERVER_IP -u -b 100M
-u: 使用 UDP 协议。-b: 指定目标带宽(例如100M表示 100 Mbps)。如果不指定,默认是 1 Mbps。
UDP 结果解读:
UDP 结果中会多出 Jitter(抖动)和 Lost/Total(丢包率)字段。

[ ID] Interval Transfer Bitrate Jitter Lost/Total Datagrams [ 5] 0.00-10.00 sec 119 MBytes 100 Mbits/sec 0.000 ms 0/85333 (0%) sender [ 5] 0.00-10.00 sec 119 MBytes 100 Mbits/sec 0.123 ms 0/85333 (0%) receiver
- Jitter: 数据包延迟的变化,值越低越好,对实时音视频应用至关重要。
其他实用参数
-p: 指定服务器监听的端口(如果服务器不是用默认端口)。bash# 服务器端 iperf3 -s -p 5000 # 客户端 iperf3 -c SERVER_IP -p 5000-w: 设置 TCP 窗口大小,有时可以提升性能。bashiperf3 -c SERVER_IP -w 256K-J: 以 JSON 格式输出结果,便于脚本解析。bashiperf3 -c SERVER_IP -J
5. 常见场景示例
场景 1:快速测试家庭内网到 NAS 的带宽
- 在 NAS 上运行
iperf3 -s。 - 在你的电脑上运行
iperf3 -c NAS_IP。
场景 2:测试从云服务器到本地电脑的下载速度
- 在本地电脑上运行
iperf3 -s。 - 在云服务器上运行
iperf3 -c LOCAL_PC_IP -R。(注意需要配置本地网络的路由器/防火墙,将 5201 端口映射到你的电脑)。
场景 3:全面测试网络质量(带宽、抖动、丢包)
- 在服务器端运行
iperf3 -s。 - 在客户端先进行 TCP 带宽测试:bashiperf3 -c SERVER_IP -t 20
- 再进行 UDP 质量测试:bashiperf3 -c SERVER_IP -u -b 50M -t 20 -i 2
6. 故障排除
- 连接被拒绝: 检查服务器端是否已正确启动
iperf3 -s,并检查防火墙是否放行了指定端口。 - 带宽远低于预期:
- 检查网络设备(交换机、路由器)是否是瓶颈。
- 尝试使用
-P 4增加并行连接数。 - 检查客户端或服务器端的 CPU 使用率是否过高。
- 高重传率/高丢包率: 表明网络不稳定,可能存在干扰或硬件问题。
希望这个教程能帮助你熟练使用 iperf3 来诊断和评估你的网络性能!
综合实用工具箱及脚本:https://www.hao0564.com/3108.html
