iperf3
- [一、iperf3 安装](#一、iperf3 安装)
- [二、iperf3 参数](#二、iperf3 参数)
- 三、参考案例
-
- [3.1、TCP 带宽测试](#3.1、TCP 带宽测试)
-
- [3.1.1. 服务端(被测试机器)](#3.1.1. 服务端(被测试机器))
- [3.1.2. 客户端(测试发起机器)](#3.1.2. 客户端(测试发起机器))
- [3.2、UDP 测试](#3.2、UDP 测试)
- 四、结果分析
-
- [4.1、TCP 测试结果怎么看](#4.1、TCP 测试结果怎么看)
- [4.2、UDP 测试结果怎么看](#4.2、UDP 测试结果怎么看)
- 4.3、常见异常情况对照
- 五、防火墙注意
iperf3 是一款用于主动测量网络最大带宽性能的工具,支持 TCP 、UDP 和 SCTP 协议。使用时需在两台设备上分别运行服务端 (-s)和客户端(-c)。
一、iperf3 安装
-
Linux (Debian/Ubuntu)
bashsudo apt update && sudo apt install iperf3 -
Linux (CentOS/RHEL)
bashsudo yum install iperf3 -
Windows/macOS
- 官网下载:https://iperf.fr/
- macOS:
brew install iperf3
下面是 iperf3 全部常用参数 整理成的清晰表格,方便你直接复制存档。
二、iperf3 参数
2.1、服务端参数(Server)
| 参数 | 作用 |
|---|---|
-s |
以服务端模式启动 |
-p 端口 |
指定监听端口(默认 5201) |
-1 |
只接受一次连接,测试完自动退出 |
-D |
后台守护进程运行 |
-u |
启用 UDP 模式(服务端也要加) |
2.2、客户端参数(Client)
| 参数 | 作用 |
|---|---|
-c IP |
以客户端连接指定服务器 |
-p 端口 |
连接服务端指定端口 |
-t 秒 |
测试持续时间(默认 10 秒) |
-n 字节 |
按传输数据量测试,而非时间 |
-k 包数 |
按发包数量测试 |
-P 数量 |
并行连接数(多线程跑满带宽) |
-w 大小 |
设置 TCP 窗口大小(如 1M、512K) |
-R |
反向测试(服务端发、客户端收) |
-b 带宽 |
UDP 目标带宽(如 100M、1G) |
-u |
使用 UDP 协议 |
-O 秒 |
忽略前 N 秒数据(用于预热) |
-J |
输出 JSON 格式结果 |
2.3、通用显示/格式参数
| 参数 | 作用 |
|---|---|
-i 秒 |
每隔 N 秒输出一次实时结果 |
-f 格式 |
显示单位格式:K/M/G 或 k/m/g |
-V |
详细版本信息 |
-h |
帮助 |
2.4、高级网络参数
| 参数 | 作用 |
|---|---|
-M MTU |
设置 MTU 大小(不含 IP/UDP 头) |
-N |
禁用 Nagle 算法(低延迟) |
-4 |
强制 IPv4 |
-6 |
强制 IPv6 |
-T TTL |
设置 TTL |
-S TOS |
设置服务类型(QoS) |
2.5、文件/日志相关
| 参数 | 作用 |
|---|---|
--logfile 文件名 |
将输出写入日志文件 |
--forceflush |
强制实时刷新输出 |
三、参考案例
3.1、TCP 带宽测试
3.1.1. 服务端(被测试机器)
bash
iperf3 -s # 启动服务端(默认监听 5201 端口)
iperf3 -s -p 5202 # 指定监听端口 5202
3.1.2. 客户端(测试发起机器)
bash
iperf3 -c 192.168.1.100 # 连接服务端(默认10秒)
iperf3 -c 192.168.1.100 -p 5202 # 连接指定端口
典型输出:
[ ID] Interval Transfer Bitrate
[ 5] 0.00-10.00 sec 112 MBytes 94.0 Mbits/sec # 带宽结果
-
-t N:测试 N 秒 (默认 10)bashiperf3 -c 192.168.1.100 -t 60 # 测60秒 -
-P N:N 条并行流 (多线程,跑满大带宽)bashiperf3 -c 192.168.1.100 -P 4 # 4线程 -
-R:反向测试 (服务端发 → 客户端收,测下载)bashiperf3 -c 192.168.1.100 -R -
-i 1:每秒 输出一次进度bashiperf3 -c 192.168.1.100 -i 1 -
-w 1M:设置 TCP 窗口大小bashiperf3 -c 192.168.1.100 -w 1M
3.2、UDP 测试
UDP 用于测试实时性 (音视频、游戏),必须指定带宽 -b。
-
服务端:
bashiperf3 -s -u -
客户端:
bashiperf3 -c 192.168.1.100 -u -b 100M -t 30
四、结果分析
关键指标:
Bitrate:实际带宽Lost/Total:丢包数/总数Jitter:抖动(延迟稳定性)- TCP :看
Bitrate(Mbps),接近网卡/带宽上限为正常 - UDP :看 0丢包、低抖动 为优质
4.1、TCP 测试结果怎么看
TCP 看:带宽、稳定性、是否跑满
典型输出
[ ID] Interval Transfer Bitrate Retr
[ 5] 0.00-10.00 sec 113 MBytes 94.6 Mbits/sec 0 sender
[ 5] 0.00-10.00 sec 113 MBytes 94.6 Mbits/sec receiver
关键字段解释
| 字段 | 含义 | 怎么判断好坏 |
|---|---|---|
| Bitrate | 实际带宽 | 越接近你的链路带宽越好 千兆网应接近 900Mbps+ |
| Transfer | 总传输量 | 参考用 |
| Retr | 重传次数 | 0 最好 公网偶尔几个正常 频繁重传 = 网络拥堵/丢包 |
| sender / receiver | 发送/接收速率 | 两者接近 = 网络稳定 差距大 = 链路瓶颈/单向问题 |
TCP 结果判断标准
-
Bitrate 稳定,无大波动
- 内网:应接近网卡速率(千兆≈900+Mbps)
- 公网:接近你购买的带宽(如 100M 带宽 ≈ 90Mbps+)
-
Retr(重传)=0 最优
- 内网 > 0:交换机/网线/网卡问题
- 公网 > 0:正常,但持续很高说明线路差
-
sender 和 receiver 速率差距大
- 单向瓶颈(某方向带宽小、QoS 限制)
4.2、UDP 测试结果怎么看
UDP 不保证可靠,主要看:丢包、抖动、延迟
用于:游戏、语音、视频、直播
典型输出
[ ID] Interval Transfer Bitrate Jitter Lost/Total Datagrams
[ 5] 0.00-10.00 sec 59.6 MBytes 50.0 Mbits/sec 0.051 ms 0/42442 (0%) sender
[ 5] 0.00-10.00 sec 59.6 MBytes 50.0 Mbits/sec 0.051 ms 0/42442 (0%) receiver
关键字段解释
| 字段 | 含义 | 怎么判断好坏 |
|---|---|---|
| Bitrate | 发送速率 | 由你 -b 50M 指定 |
| Jitter | 抖动(延迟波动) | 越小越好 <1ms:内网优秀 1~20ms:公网正常 >50ms:音视频会卡顿 |
| Lost/Total | 丢包数/总包数 | 0% 最优 <1%:良好 1%~5%:语音卡顿 >5%:视频无法观看 |
| Datagrams | 数据包数量 | 参考 |
UDP 结果判断标准
-
丢包率 0% 最好
- 内网丢包 = 网线/交换机/协商异常
- 公网丢包 = 运营商拥堵/线路质量差
-
抖动 Jitter 越小越稳定
- 游戏:< 20ms 舒服
- 视频会议:< 30ms 可接受
- > 50ms 明显卡顿
-
若指定
-b 100M但实际只有 30M- 链路带宽不足 / 被限速 / MTU 问题
4.3、常见异常情况对照
| 现象 | 可能原因 |
|---|---|
| TCP 速率只有 10Mbps | 百兆网卡/网线坏/半双工/被限速 |
| TCP 重传很多 | 网络丢包、信号差、拥堵 |
| UDP 丢包严重 | 带宽不足、WiFi 差、运营商弱 |
| Jitter 很大 | 网络跳变、多路由、WiFi 干扰 |
| 双向速率不一致 | 运营商上下行不对称、单向 QoS |
五、防火墙注意
确保 5201 端口(或指定端口)放行(TCP/UDP)