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

确认端口监听后再重试。