iPerf3 带宽性能测试教程

iPerf3 是网络性能测试领域的标准工具,可以精确测量两个端点之间的 TCP 和 UDP 带宽、延迟、抖动和丢包率。与 Speedtest 不同,iPerf3 需要在两端分别运行服务端和客户端,因此可以测试任意两个节点之间的实际网络性能。它是网络工程师和运维人员评估网络质量的首选工具,在搬瓦工 VPS 的性能评测中也经常使用。

一、安装 iPerf3

1.1 在 Ubuntu/Debian 上安装

apt update
apt install iperf3 -y
iperf3 --version

1.2 在 CentOS/RHEL 上安装

yum install iperf3 -y

二、基本使用方法

iPerf3 采用客户端/服务端(C/S)架构,需要在两台机器上分别运行。

2.1 启动服务端

# 在服务端启动 iPerf3(默认监听 5201 端口)
iperf3 -s

# 后台运行
iperf3 -s -D

# 指定端口
iperf3 -s -p 5300

# 绑定特定 IP
iperf3 -s -B 0.0.0.0 -p 5201

2.2 客户端连接测试

# TCP 带宽测试(默认 10 秒)
iperf3 -c 服务端IP

# 指定测试时间为 30 秒
iperf3 -c 服务端IP -t 30

# 指定端口
iperf3 -c 服务端IP -p 5300

三、TCP 带宽测试

3.1 多线程并发测试

# 使用 4 个并发连接测试
iperf3 -c 服务端IP -P 4 -t 30

# 使用 10 个并发连接
iperf3 -c 服务端IP -P 10 -t 30

3.2 反向测试(测试下载速度)

# 默认测试的是上传方向
# -R 参数反转方向,测试下载速度
iperf3 -c 服务端IP -R -t 30

3.3 双向测试

# 同时测试上传和下载
iperf3 -c 服务端IP --bidir -t 30

3.4 设置窗口大小

# 设置 TCP 窗口大小为 512KB
iperf3 -c 服务端IP -w 512K -t 30

# 设置更大的窗口用于高延迟链路
iperf3 -c 服务端IP -w 4M -t 30

四、UDP 带宽测试

4.1 基本 UDP 测试

# UDP 测试(默认发送速率 1Mbps)
iperf3 -c 服务端IP -u -t 30

# 设置目标发送速率为 100Mbps
iperf3 -c 服务端IP -u -b 100M -t 30

# 设置为不限速
iperf3 -c 服务端IP -u -b 0 -t 30

4.2 测试抖动和丢包

# UDP 测试会自动报告抖动(jitter)和丢包率
iperf3 -c 服务端IP -u -b 50M -t 30

# 输出示例中关注以下指标:
# Jitter: 0.050 ms  (抖动,越小越好)
# Lost/Total: 0/35000 (0%)  (丢包率,越低越好)

五、高级功能

5.1 JSON 格式输出

# 输出 JSON 格式
iperf3 -c 服务端IP -t 30 -J > result.json

# 使用 jq 提取关键数据
jq '.end.sum_sent | {bits_per_second, bytes}' result.json

5.2 间隔报告

# 每 2 秒报告一次实时数据
iperf3 -c 服务端IP -t 60 -i 2

5.3 限制带宽

# TCP 限速测试
iperf3 -c 服务端IP -b 50M -t 30

# 指定发送缓冲区大小
iperf3 -c 服务端IP -l 128K -t 30

5.4 零拷贝模式

# 使用 sendfile 系统调用(减少 CPU 开销)
iperf3 -c 服务端IP -Z -t 30

六、使用公共 iPerf3 服务器

如果没有第二台服务器,可以使用公共的 iPerf3 测试节点:

# 常用公共 iPerf3 服务器
iperf3 -c iperf.he.net -t 10
iperf3 -c bouygues.iperf.fr -t 10
iperf3 -c speedtest.uztelecom.uz -t 10

# 测试到不同地区
iperf3 -c iperf.par2.as49434.net -t 10    # 巴黎
iperf3 -c iperf.biznetnetworks.com -t 10   # 雅加达

七、防火墙配置

# 如果使用 iptables
iptables -A INPUT -p tcp --dport 5201 -j ACCEPT

# 如果使用 ufw
ufw allow 5201/tcp

# 如果使用 firewalld
firewall-cmd --permanent --add-port=5201/tcp
firewall-cmd --reload

八、多节点自动测试脚本

#!/bin/bash
echo "===== iPerf3 多节点带宽测试 ====="
echo "测试时间: $(date)"
echo ""

# 公共 iPerf3 服务器列表
SERVERS=(
    "iperf.he.net:美国"
    "bouygues.iperf.fr:法国"
    "speedtest.uztelecom.uz:乌兹别克"
)

for entry in "${SERVERS[@]}"; do
    SERVER=$(echo $entry | cut -d: -f1)
    LOCATION=$(echo $entry | cut -d: -f2)

    echo "--- 测试到 ${LOCATION}(${SERVER})---"
    echo "上传方向:"
    iperf3 -c $SERVER -t 10 2>/dev/null | grep "sender" | tail -1
    echo "下载方向:"
    iperf3 -c $SERVER -t 10 -R 2>/dev/null | grep "receiver" | tail -1
    echo ""
done

九、常见问题

9.1 连接被拒绝

检查服务端是否正在运行、端口是否正确、防火墙是否放行了对应端口。

9.2 测试结果与预期差距大

高延迟链路需要增大 TCP 窗口大小才能充分利用带宽。使用 -w 参数设置窗口大小,或使用多个并发连接(-P)。

9.3 服务端busy错误

# iPerf3 服务端一次只接受一个客户端
# 使用 --one-off 模式在每次测试后重启
iperf3 -s --one-off

总结

iPerf3 是网络带宽测试最精确的工具,适合在两台服务器之间进行点对点的性能评估。配合 Speedtest CLI 可以全面了解 VPS 的网络性能。如果需要长期监控网络质量,可以参考 SmokePing 延迟监控教程。选购搬瓦工 VPS 请参考 全部方案,购买时使用优惠码 NODESEEK2026 可享受 6.77% 的优惠,通过 bwh81.net 进入官网购买。

关于本站

搬瓦工VPS中文网(bwgvps.com)是非官方中文信息站,整理搬瓦工的方案、优惠和教程。我们不销售主机,不提供技术服务。

新手必读
搬瓦工优惠码

NODESEEK2026(优惠 6.77%)

购买时填入即可抵扣。