iperf3 测试带宽指南
本文档介绍如何使用 iperf3 进行公网带宽测试。
一、先理解:服务端 vs 客户端
- 服务端:运行在被测云主机上,负责监听端口,等待连接
示例命令:iperf3 -s -p 8801 - 客户端:运行在你发起测试的设备上(Windows / macOS / Linux 任意),负责连接服务端并输出测试结果
示例命令:iperf3 -c 120.209.70.204 -p 30572 -t 100
一句话记忆:云主机跑服务端,本地电脑跑客户端。
二、安装 iperf3(客户端/服务端都可用)
Linux(Ubuntu / Debian)
apt update && apt install -y iperf3
Linux(CentOS / RHEL)
yum install -y iperf3
macOS(Homebrew)
brew install iperf3
Windows
可使用两种方式:
- 方式 1:
choco install iperf3 - 方式 2:下载
iperf3可执行文件后在 PowerShell / CMD 运行
三、基础用法
- 服务端(被测机器)启动监听:
iperf3 -s -p 8801
- 客户端(发起测试机器)连接测试:
iperf3 -c 服务端公网IP -p 公网映射端口
注意:公网场景下,-p 应填写公网映射端口,不是服务端内网端口。内网端口与公网端口通常不是 1:1 相同,公网端口由控制台映射后生成(可能是随机端口)。
常用参数:
-t 30:测试时长 30 秒-P 4:4 并发流,常用于压测带宽上限-R:反向测试(让服务端向客户端发流量)-p 端口号:指定连接端口(默认 5201,不写则走默认)
示例:
iperf3 -c 120.209.70.204 -p 30572 -t 30 -P 4
iperf3 -c 120.209.70.204 -p 30572 -t 30 -P 4 -R
四、公网带宽测试
公网测试前,请先确认服务端端口可被外网访问。
1) 服务端启动并指定内网端口
iperf3 -s -p 8801
这里的 8801 是服务端内网监听端口。
2) 控制台配置端口映射
如果通过公网测试,需要在平台控制台为服务端内网端口(如 8801)配置外网映射端口(例如 30572)。 入口路径:控制台 → 云主机列表 → 更多操作 → 设置端口。
可参考:设置自定义端口
3) 客户端发起公网测试
iperf3 -c 服务端公网IP -p 外网映射端口 -t 30 -P 4
反向测试:
iperf3 -c 服务端公网IP -p 外网映射端口 -t 30 -P 4 -R
4) 公网实测示例(四川 1 区)
说明:示例命令里的公网 IP(120.209.70.204)和端口(30572)只是演示用。实际测试时,请替换为您自己云主机的公网 IP 和控制台映射后的公网端口。
测试命令:
iperf3 -c 120.209.70.204 -p 30572 -t 100
参数解读:
-c 120.209.70.204:连接到服务端公网 IP(被测云主机)-p 30572:连接公网映射端口(不是服务端内网端口)-t 100:连续测试 100 秒,能更好观察公网链路波动
输出解读(节选):
Connecting to host 120.209.70.204, port 30572
[ ID] Interval Transfer Bitrate
[ 5] 0.00-1.00 sec 21.4 MBytes 179 Mbits/sec
...
[ 5] 99.00-100.00 sec 16.0 MBytes 134 Mbits/sec
----------------------------------------------------
[ 5] 0.00-100.00 sec 887 MBytes 74.4 Mbits/sec sender
[ 5] 0.00-100.04 sec 886 MBytes 74.3 Mbits/sec receiver
iperf Done.
如何看结果:
- 中间每 1 秒一行的
Bitrate是瞬时带宽,公网场景出现波动是正常现象 - 重点看最后汇总行:
sender:客户端发送方向平均带宽(示例约74.4 Mbits/sec)receiver:服务端接收方向平均带宽(示例约74.3 Mbits/sec)
sender/receiver接近通常表示测试正常;差异较大时建议重复测试并排查端口、链路和并发参数
五、结果解读与排查
若带宽偏低,优先检查:
- 公网链路是否波动(跨运营商、跨地域在高峰期可能抖动)
- 并发数是否过低(建议
-P 4或更高做对比) - 安全组、防火墙、端口映射是否正确
- 测试时是否有其他业务占用网络
若连接失败,常见原因:
- 服务端未启动
iperf3 -s -p 8801 - 端口未监听在对应端口
- 公网测试未完成端口映射或防火墙放行
- 服务端未启动
可先在服务端执行:
netstat -nlpt | grep 8801
确认端口监听后再重试。
