跳到正文
我的博客
返回

iperf3 网络测速使用笔记

更新于:
iperf3 网络测速封面图
iperf3 适合测试两台主机之间的网络吞吐,不等同于公网测速网站。

iperf3 用来测试不同主机之间的网络连接速度。它需要一端作为服务端,另一端作为客户端发起测试。相比网页测速,iperf3 更适合排查服务器之间、机房之间、内网链路之间的吞吐问题。

Table of contents

Open Table of contents

安装 iperf3

CentOS/RHEL:

yum -y install iperf3
dnf install -y iperf3

Ubuntu/Debian:

apt-get update
apt-get -y install iperf3

Alpine:

apk add iperf3

Arch Linux:

pacman -S iperf3

Windows 版可以参考:

启动服务端

在测速服务端执行:

iperf3 -s -p 5201

参数说明:

后台运行示例:

iperf3 -s -p 5201 -D

记得放行防火墙:

firewall-cmd --add-port=5201/tcp --permanent
firewall-cmd --reload

或者 Ubuntu:

ufw allow 5201/tcp

客户端测速

在客户端执行:

iperf3 -c 1.1.1.31 -p 5201 -t 30 -P 5 -R

参数说明:

上传测试:

iperf3 -c 1.1.1.31 -p 5201 -t 30 -P 5

下载测试:

iperf3 -c 1.1.1.31 -p 5201 -t 30 -P 5 -R

UDP 测试:

iperf3 -c 1.1.1.31 -p 5201 -u -b 100M -t 30

怎么看测试结果

旧笔记里有一段测试命令:

iperf3 -c 1.1.1.31 -p 5201 -i 1 -t 10 -P 5 -R

其中 -P 5 表示 5 个并发流。输出中每个 [ 5][ 7][ 9] 是不同连接流,真正看整体带宽时,重点看 [SUM] 行。

示例:

[SUM]   0.00-10.00  sec   995 MBytes   835 Mbits/sec  4593 sender
[SUM]   0.00-10.00  sec   984 MBytes   826 Mbits/sec       receiver

阅读重点:

一般更关注 receiver,因为它代表实际接收到了多少。

如何理解 Retr 重传

示例里有:

[SUM]   0.00-10.00  sec   995 MBytes   835 Mbits/sec  4593 sender

Retr 是 TCP 重传次数。重传越多,说明链路中可能存在丢包、拥塞或质量抖动。

这不一定代表链路完全不可用,但如果重传很多,即使带宽数字看起来还行,实际体验也可能不好,比如:

并发数怎么选

单连接可能跑不满带宽,所以常用 -P 增加并发。

iperf3 -c 1.1.1.31 -t 30 -P 1
iperf3 -c 1.1.1.31 -t 30 -P 5
iperf3 -c 1.1.1.31 -t 30 -P 10

建议从 1510 逐步测试。并发不是越高越好,太高可能测试的是系统调度和拥塞控制,而不是链路真实能力。

常用测试组合

测试上传:

iperf3 -c SERVER_IP -p 5201 -t 30 -P 5

测试下载:

iperf3 -c SERVER_IP -p 5201 -t 30 -P 5 -R

每秒输出一次:

iperf3 -c SERVER_IP -p 5201 -t 30 -P 5 -i 1

测试 UDP 100M:

iperf3 -c SERVER_IP -p 5201 -u -b 100M -t 30

输出 JSON,方便脚本分析:

iperf3 -c SERVER_IP -p 5201 -t 30 -P 5 -J

小结

iperf3 的核心不是“跑一个最大数字”,而是看链路是否稳定:

如果测速结果明显低于预期,下一步可以继续查防火墙、MTU、路由路径、运营商限速、云服务器带宽上限和 CPU 性能瓶颈。


分享这篇文章:

上一篇
FFmpeg 常用命令笔记:合并、压缩、裁剪与转码
下一篇
Linux 运维急救与常用命令笔记