最近更新时间:2026-08-26 11:52:24
本文介绍了使用 iperf3 在两台云服务器之间进行网络带宽测试的实践教程,涵盖环境准备、TCP 带宽测试、并发测试及 UDP 测试等场景,帮助验证网络性能与定位带宽瓶颈。
iperf3 是广泛使用的网络性能测试工具,支持 TCP 与 UDP 协议。在两台云服务器之间进行带宽测试,可验证私有网络的实际吞吐能力、评估并发连接聚合性能、检测 UDP 丢包率与延迟抖动,为业务容量规划与故障排查提供数据支撑。
两台云服务器处于同一私有网络,已知双方内网 IP 地址。
两台云服务器安全组已放行 iperf 测试端口(默认 5201)的 TCP 与 UDP 流量。
若两台云服务器已确认网络互通,可跳过环境准备章节,直接进入安装 iperf3。
在云服务器 A(10.0.0.131)上测试与云服务器 B(10.0.0.120)的连通性:
# 云服务器 A 执行
ping 10.0.0.120 -c 10连续 ping 10 次,丢包率应低于 1%。
telnet 10.0.0.120 5201用于验证 iperf 默认端口未被防火墙阻塞。若 iperf 服务端尚未启动,连接会失败,属正常现象。
为两台云服务器添加安全组规则,放行 TCP 与 UDP 协议 5201 端口(可自定义)的入站与出站流量。详细操作请参考设置安全组。
测试端口(默认 5201)需在安全组中同时放行 TCP 与 UDP 协议的入站和出站流量。
使用 -b 参数限速时,测试结果可能受限于该限速值而非实际网络能力。建议先使用较大限速值测试,再逐步降低以定位瓶颈。
并发测试的并行流数(-P)不宜设置过高,过多并发流可能引发额外协议开销,导致吞吐量下降。
测试时长(-t)建议不低于 10 秒,以获取稳定的平均值。
两台云服务器均需安装 iperf3。
Ubuntu / Debian
sudo apt update && sudo apt install -y iperf3CentOS 7
sudo yum install -y iperf3CentOS 8+ / RHEL 8+
sudo dnf install -y iperf3安装完成后验证,输出类似 iperf 3.1.3 即表示安装正常。
iperf3 --version验证两台云服务器间的最大上行 TCP 带宽。
云服务器 A 启动服务端:
iperf3 -s -p 5201 -i 2 -f m
-i 2表示每 2 秒输出一次中间结果,-f m以 MB/s 为单位显示。
云服务器 B 启动客户端,连接服务端IP地址10.0.0.131,报告回显间隔2s,测试时间10s,带宽限制为50M。
iperf3 -c 10.0.0.131 -i 2 -t 10 -b 50M
-b 50M限制客户端每秒发送最大数据量为 50 Mbps。
服务端测试结果如下:
由上图可知,接收端(receiver)测得的吞吐量约为 49.4 Mbps,受限于 -b 参数所设的 50M 带宽上限。若实测吞吐量无限接近预设带宽限制,通常意味该限制值已成为性能瓶颈,未能触及网络实际性能上限,可适当调大 -b 参数。云服务器可根据实际机型和规格选择适当参数,参考云服务器类型。
调整 -b 参数为 3G,执行 iperf3 -c 10.0.0.131 -i 1 -t 10 -b 3G,结果如下,在接收端(receiver)吞吐量稳定在约 2222 Mbps,并未随参数值等比例增长。该现象表明服务器实际上行吞吐能力已达到瓶颈,性能上限约为 2 Gbps。
验证两台云服务器间的最大下行 TCP 带宽。
云服务器 A 启动服务端:
iperf3 -s -p 5201 -i 2 -f m云服务器 B 启动客户端:
iperf3 -c 10.0.0.131 -i 1 -t 10 -b 3G -R
-R以反向模式发送,即服务端发送数据、客户端接收。
服务端输出结果如下,说明TCP 下行带宽约为 2 Gbps。为精确测量服务器实际吞吐能力,可采用与上行测试相同的策略,即逐步降低带宽限值,通过观察吞吐量随限值下降的拐点定位网络实际性能瓶颈。
验证云服务器在多连接场景下的带宽聚合能力。
云服务器 A 启动服务端:
iperf3 -s -i 2 -f m云服务器 B 启动客户端:
iperf3 -c 10.0.0.131 -p 5201 -t 30 -i 5 -f g -P 5
-P 5启动 5 个并行流,-f g以 GB/s 为单位显示。
服务端测试结果如下,接收端(receiver)总吞吐量为 7.38 Gbps,带宽约为 2111 Mbps。据此可判断该服务器网络性能约为 2 Gbps。
验证 UTP 协议的丢包率与延迟抖动。
云服务器 A 启动服务端:
iperf3 -s -p 5201 -i 2 -f m云服务器 B 启动客户端:
iperf3 -c 10.0.0.131 -u -i 1 -b 2GUDP 为无连接协议,不保证传输质量。测试重点在于评估网络在极限条件下的表现,关键指标为延迟抖动与丢包率。
测试结果如下,上行吞吐量达到 1.99 Gbps,延迟抖动为 0.002 ms,平均丢比率达到 9.9%。若丢包率或延迟抖动异常偏高,可将测试结果提供售后技术支持协助排查。
若服务端报告吞吐量为 0,可查看客户端报告获取测试数据。
iperf3 分为 服务器端(接收数据)和 客户端(发送数据),通用基础参数说明如下表所示,参数需对应使用。
参数 | 作用说明 | 示例 |
|---|---|---|
| 以服务器模式运行(必选) |
|
| 以客户端模式运行,指定服务器 IP(必选) |
|
| 指定测试端口(默认 5201) |
|
| 测试持续时间(默认 10 秒) |
|
| 间隔多少秒输出一次中间结果(默认不输出) |
|
| 指定带宽单位( |
|
| 查看所有参数帮助 |
|
| 以反向模式发送(服务器发送,客户端接收) |
|
| 指定发送带宽(如 |
|
参数 | 作用说明 | 示例 |
|---|---|---|
| 启动多个并行 TCP 流,提高总带宽(默认值为 1) |
|
| 设置 TCP 窗口大小(如 |
|
| 启用零拷贝模式,减少 CPU 占用 |
|
| 先客户端发到服务器,再反向测试(双向) |
|
| 同时进行双向测试(客户端与服务器同时收发) |
|
参数 | 作用说明 | 示例 |
|---|---|---|
| 使用 UDP 协议(默认 TCP) |
|
| 设置 UDP 数据包大小(默认 1470 字节) |
|
| 反向测试(服务器发到客户端) |
|
纯净模式
