在网络调试或链路验收中,iperf3 是最常用的带宽测试工具之一。 它支持 TCP/UDP 协议,可自定义带宽、测试时长、包大小等参数,轻量高效,是运维与网络工程师的常备工具。
一、安装 iperf3
iperf3 支持各类 Linux 发行版,可通过包管理器直接安装:
# Debian / Ubuntu
sudo apt update && sudo apt install iperf3 -y
# CentOS / Rocky / AlmaLinux / RHEL
sudo yum install iperf3 -y
# Fedora
sudo dnf install iperf3 -y
# openSUSE
sudo zypper install iperf3
验证安装:
iperf3 -v
二、UDP 带宽测试(示例:50Mbps)
UDP 模式常用于测试网络抖动、丢包率和最大承载能力。
服务端:
iperf3 -s -p 5001
客户端:
iperf3 -c <服务器IP> -u -b 50M -t 10 -p 5001 -B <客户端源IP>
参数说明:
- -u:启用 UDP 模式
- -b:指定目标带宽
- -t:测试持续时间(秒)
- -B:绑定客户端源地址(多网卡时推荐使用)
三、TCP 带宽测试(示例:80Mbps、100Mbps)
服务端:
iperf3 -s -p 5002
客户端:
# 测试 80Mbps
iperf3 -c <服务器IP> -b 80M -t 10 -p 5002 -B <客户端源IP>
# 测试 100Mbps
iperf3 -c <服务器IP> -b 100M -t 10 -p 5002 -B <客户端源IP>
四、不同数据包长度测试
测试不同包长下的网络表现(以 UDP 模式为例):
iperf3 -c <服务器IP> -u -l 64b -b 50M -t 10 -p 5001
iperf3 -c <服务器IP> -u -l 128b -b 50M -t 10 -p 5001
iperf3 -c <服务器IP> -u -l 256b -b 50M -t 10 -p 5001
iperf3 -c <服务器IP> -u -l 512b -b 50M -t 10 -p 5001
iperf3 -c <服务器IP> -u -l 1k -b 50M -t 10 -p 5001
iperf3 -c <服务器IP> -u -l 1500b -b 50M -t 10 -p 5001
iperf3 -c <服务器IP> -u -l 2k -b 50M -t 10 -p 5001
iperf3 -c <服务器IP> -u -l 4k -b 50M -t 10 -p 5001
iperf3 -c <服务器IP> -u -l 8k -b 50M -t 10 -p 5001
iperf3 -c <服务器IP> -u -l 16k -b 50M -t 10 -p 5001
iperf3 -c <服务器IP> -u -l 32k -b 50M -t 10 -p 5001
iperf3 -c <服务器IP> -u -l 64k -b 50M -t 10 -p 5001
五、测试结果分析与样例解析
UDP 测试样例
客户端命令:
iperf3 -c 10.0.0.2 -u -b 50M -t 10 -p 5001 -B 10.0.0.3
输出片段:
[ ID] Interval Transfer Bitrate Jitter Lost/Total Datagrams
[ 5] 0.00-10.00 sec 59.6 MBytes 49.8 Mbits/sec 0.233 ms 3/4595 (0.065%)
Server Report:
[ 5] 0.00-10.03 sec 59.6 MBytes 49.8 Mbits/sec 0.233 ms 3/4595 (0.065%)
字段解释:
- Transfer:10 秒内传输的数据量(59.6 MB)。
- Bitrate:实际传输速率(49.8 Mbps,接近目标 50 Mbps)。
- Jitter:UDP 抖动(0.233 ms,极低,链路稳定)。
- Lost/Total Datagrams:丢包统计(丢 3 包,占 0.065%,可接受)。
分析建议:
- 若带宽明显低于目标值,检查 CPU、带宽限制或中间防火墙策略。
- 若丢包率高(>0.5%),优先排查网卡统计、交换机端口错误或 QoS 限制。
- 若抖动高(>30ms),说明链路拥塞或排队延迟。
TCP 测试样例
客户端命令:
iperf3 -c 10.0.0.2 -t 10 -p 5002 -B 10.0.0.3
输出片段:
[ ID] Interval Transfer Bitrate Retr
[ 5] 0.00-10.00 sec 93.5 MBytes 78.4 Mbits/sec 2 sender
[ 5] 0.00-10.00 sec 92.9 MBytes 78.0 Mbits/sec receiver
字段解释:
- Bitrate:TCP 吞吐率(78.4 Mbps)。
- Retr:TCP 重传次数(2 次,正常范围)。
- sender / receiver:两端统计结果;若差距大,表示中间存在丢包或接收端限速。
分析建议:
- 重传过多说明丢包或延迟波动,应排查链路质量。
- 吞吐低于预期时,可尝试:
- 增大 TCP 窗口缓冲(-w 512K);
- 使用多并发流(-P 4);
- 检查 QoS、限速或 MTU 问题。
包长影响说明
- 小包(64B~256B):包率高、CPU 压力大、吞吐可能下降,适合测试设备 PPS 能力。
- 中包(512B~1500B):常见业务场景,结果可代表真实性能。
- 大包(2K~64K):协议效率高,但可能受 MTU 限制。若性能提升明显,可启用 Jumbo Frame(9000B)。
六、总结
iperf3 是网络链路测试与性能诊断的核心工具,可快速验证带宽、丢包、抖动、TCP 吞吐等关键指标。 结合不同包长与协议测试,可以精准判断链路瓶颈,定位物理层、传输层或系统配置问题。
建议:
- 测试前关闭业务干扰,保证带宽独占。
- 分多个时间段重复测试,分析平均值与波动情况。
- 保存结果日志(--logfile result.log)便于比对与追踪。