本文最后更新于182 天前,其中的信息可能已经过时,如有错误请发送邮件到big_fw@foxmail.com
1. iperf3 安装部署
1.1 Linux 系统安装
1.1.1 CentOS/RHEL 系统安装
# 解决 yum 仓库 GPG 密钥问题
rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-*
# 安装 EPEL 仓库
dnf install -y epel-release
# 清理 yum 缓存
dnf clean all
# 安装 iperf3
dnf install -y iperf3
# 验证安装是否成功
iperf3 -v
1.1.2 Ubuntu/Debian 系统安装
# 更新软件包列表
apt update
# 安装 iperf3
apt install -y iperf3
# 验证安装
iperf3 -v
1.1.3 源码编译安装(通用方法)
# 安装编译依赖
yum install -y gcc make automake autoconf libtool # CentOS/RHEL
apt install -y build-essential automake autoconf # Ubuntu/Debian
# 下载并编译 iperf3
wget https://github.com/esnet/iperf/archive/refs/tags/3.12.tar.gz
tar -xzf 3.12.tar.gz
cd iperf-3.12
./configure
make
make install
# 验证安装
iperf3 -v
1.2 Windows 系统安装
1.2.1 官方安装包安装
# 1. 访问 iperf.fr 官网下载 Windows 版本
# 2. 解压到 C:\iperf3 目录
# 3. 添加系统环境变量 PATH 中添加 C:\iperf3
# 4. 验证安装
iperf3 -v
1.2.2 使用 Chocolatey 安装
# 安装 Chocolatey(如未安装)
Set-ExecutionPolicy Bypass -Scope Process -Force; [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072; iex ((New-Object System.Net.WebClient).DownloadString('https://community.chocolatey.org/install.ps1'))
# 使用 Chocolatey 安装 iperf3
choco install iperf3
# 验证安装
iperf3 -v
1.3 防火墙配置
1.3.1 Linux 防火墙配置
# CentOS/RHEL 使用 firewalld
firewall-cmd --add-port=5201/tcp --permanent
firewall-cmd --add-port=5201/udp --permanent
firewall-cmd --reload
# Ubuntu/Debian 使用 ufw
ufw allow 5201/tcp
ufw allow 5201/udp
ufw reload
# 或者临时关闭防火墙测试
systemctl stop firewalld # CentOS/RHEL
systemctl stop ufw # Ubuntu/Debian
1.3.2 Windows 防火墙配置
# 开放 iperf3 端口
New-NetFirewallRule -DisplayName "iperf3" -Direction Inbound -Protocol TCP -LocalPort 5201 -Action Allow
New-NetFirewallRule -DisplayName "iperf3" -Direction Inbound -Protocol UDP -LocalPort 5201 -Action Allow
2. iperf3 使用指南
2.1 基本概念
iperf3 是一个网络性能测试工具,用于测量网络带宽和性能。它需要两个系统:一个作为服务器(接收端),一个作为客户端(发送端)。
2.2 服务器端参数详解
2.2.1 基本服务器参数
# 启动服务器(默认端口 5201)
iperf3 -s
# 指定端口启动
iperf3 -s -p 5202
# 以守护进程方式运行
iperf3 -s -D
# 指定绑定 IP 地址
iperf3 -s -B 192.168.1.100
# 输出格式为 JSON
iperf3 -s -J
# 详细输出模式
iperf3 -s -V
2.2.2 高级服务器参数
# 设置单个测试时长(秒)
iperf3 -s -t 60
# 设置数据流数量
iperf3 -s -P 4
# 使用 UDP 模式
iperf3 -s -u
# 设置 UDP 带宽(默认为 1Mbps)
iperf3 -s -u -b 100M
# 设置 TCP 窗口大小
iperf3 -s -w 256K
2.3 客户端参数详解
2.3.1 基本客户端参数
# 连接到服务器
iperf3 -c 192.168.1.100
# 指定端口连接
iperf3 -c 192.168.1.100 -p 5202
# 反向模式(服务器发送,客户端接收)
iperf3 -c 192.168.1.100 -R
# 测试时长(秒)
iperf3 -c 192.168.1.100 -t 30
# 间隔时间输出结果
iperf3 -c 192.168.1.100 -i 5
2.3.2 高级客户端参数
# 并行数据流数量
iperf3 -c 192.168.1.100 -P 8
# 设置带宽(UDP 和 TCP)
iperf3 -c 192.168.1.100 -b 100M
# UDP 模式测试
iperf3 -c 192.168.1.100 -u -b 100M
# 设置 TCP 窗口大小
iperf3 -c 192.168.1.100 -w 512K
# 设置 MTU 大小
iperf3 -c 192.168.1.100 -M 1460
# 双工测试
iperf3 -c 192.168.1.100 -d
2.4 通用参数详解
2.4.1 输出格式参数
# JSON 格式输出
iperf3 -c 192.168.1.100 -J
# 详细输出
iperf3 -c 192.168.1.100 -V
# 输出到文件
iperf3 -c 192.168.1.100 --logfile /tmp/iperf3.log
# 时间戳输出
iperf3 -c 192.168.1.100 --timestamps
2.4.2 测试控制参数
# 设置测试缓冲区大小
iperf3 -c 192.168.1.100 -l 128K
# 设置 TCP 不延迟选项
iperf3 -c 192.168.1.100 -N
# 设置服务类型(TOS)
iperf3 -c 192.168.1.100 -S 0x10
# 设置目标带宽(0 表示无限制)
iperf3 -c 192.168.1.100 -b 0
2.5 实用使用示例
2.5.1 基础带宽测试
# 服务器端
iperf3 -s -p 5201
# 客户端(测试 30 秒)
iperf3 -c server_ip -p 5201 -t 30 -i 5
2.5.2 多线程并行测试
# 服务器端
iperf3 -s -p 5201
# 客户端(使用 4 个并行连接)
iperf3 -c server_ip -p 5201 -P 4 -t 30 -i 5
2.5.3 UDP 带宽测试
# 服务器端
iperf3 -s -p 5201 -u
# 客户端(100Mbps UDP 测试)
iperf3 -c server_ip -p 5201 -u -b 100M -t 30 -i 5
2.5.4 双向同时测试
# 服务器端
iperf3 -s -p 5201
# 客户端(双向测试)
iperf3 -c server_ip -p 5201 -d -t 30 -i 5
2.5.5 Windows 系统测试示例
# 服务器端
iperf3.exe -s -p 5201
# 客户端
iperf3.exe -c server_ip -p 5201 -t 30 -i 5 -P 4
2.5.6 自动化测试脚本
#!/bin/bash
SERVER_IP="192.168.1.100"
PORT="5201"
DURATION=30
THREADS=4
echo "开始网络性能测试..."
echo "服务器: $SERVER_IP"
echo "持续时间: ${DURATION}秒"
echo "并行线程: $THREADS"
# TCP 测试
echo "=== TCP 带宽测试 ==="
iperf3 -c $SERVER_IP -p $PORT -t $DURATION -P $THREADS -i 5
# UDP 测试
echo "=== UDP 带宽测试 ==="
iperf3 -c $SERVER_IP -p $PORT -u -b 100M -t $DURATION -i 5
# 反向测试
echo "=== 反向带宽测试 ==="
iperf3 -c $SERVER_IP -p $PORT -t $DURATION -P $THREADS -i 5 -R
2.6 结果解读与分析
2.6.1 TCP 测试结果解读
[ ID] Interval Transfer Bitrate Retr
[ 4] 0.00-10.00 sec 112 MBytes 94.1 Mbits/sec 0
- Transfer: 数据传输量
- Bitrate: 平均比特率
- Retr: 重传数据包数量
2.6.2 UDP 测试结果解读
[ ID] Interval Transfer Bitrate Jitter Lost/Total Datagrams
[ 4] 0.00-10.00 sec 1.25 MBytes 1.05 Mbits/sec 0.123 ms 0/893 (0%)
- Jitter: 抖动时间
- Lost/Total: 丢包率
2.7 故障排除
2.7.1 常见问题解决
# 1. 连接被拒绝
# 检查服务器是否启动,防火墙是否开放端口
# 2. 带宽测试结果异常低
# 检查网络设备,尝试调整窗口大小和并行连接数
# 3. UDP 测试丢包严重
# 降低测试带宽或检查网络质量
# 4. Windows 下命令找不到
# 检查环境变量 PATH 是否包含 iperf3 安装目录
2.7.2 性能优化建议
# 调整 TCP 窗口大小以获得更好性能
iperf3 -c server_ip -w 2M
# 增加并行连接数
iperf3 -c server_ip -P 8
# 使用更大的缓冲区
iperf3 -c server_ip -l 256K
# 禁用 Nagle 算法
iperf3 -c server_ip -N
