iperf3 教程:在 Linux 和 Windows 上测试网络速度

10 分钟阅读 - 2026年5月7日

hero section cover
目录
  • iperf3 教程:在 Linux 和 Windows 上测量网络性能
  • 安装 iperf3
  • 设置服务器
  • 运行客户端测试
  • 高级测试
  • 调整和故障排除
  • 视频推荐
分享

在 Linux 和 Windows 上安装 iperf3、运行带宽测试并调整 TCP 缓冲区以获得准确结果。涵盖 UDP、双向和 10GbE+ 测试

iperf3 教程:在 Linux 和 Windows 上测量网络性能

iperf3是一款命令行工具,用于测量两台机器之间的网络带宽、抖动和丢包情况。它采用客户端-服务器模式:一台机器监听,另一台机器发送流量,然后就能得到精确的吞吐量数据。本指南包括安装、基本和高级测试,以及如何调整系统以获得高速链路上的精确结果。

安装 iperf3

Debian / Ubuntu

sudo apt update
sudo apt install iperf3

使用 iperf3--version 确认安装。在服务器和客户端计算机上安装。

Fedora / CentOS / Rocky / Alma

在 Fedora 22+ 或 CentOS 8+、Rocky 或 AlmaLinux 上:

sudo dnf install iperf3

在 CentOS 7 上,使用yum代替。如果找不到软件包,请先启用EPEL软件源:

sudo yum install epel-release
sudo yum install iperf3

如果防火墙处于激活状态,打开 5201 端口:

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

Windows

从 iperf.frar51an/iperf3-win-buildsGitHub repo 下载独立可执行文件。解压到C:\iperf3 等文件夹,然后验证:

cd C:\iperf3
iperf3.exe -v

要从任何目录运行 iperf3,请通过系统属性 > 高级 > 环境变量将文件夹添加到系统路径。你还需要在 Windows Defender Firewall 中创建一个允许 5201 端口 TCP 的入站防火墙规则。

设置服务器

用以下命令启动服务器

iperf3 -s

默认监听 TCP 端口 5201。在后台运行并记录日志:

iperf3 -s -D --logfile /var/log/iperf3.log

使用ss -tulpn | grep 5201 验证是否在运行。

如果 5201 端口在你的网络中被屏蔽,请使用-p选择一个不同的端口。要绑定到特定接口,请使用-B

iperf3 -s -B 192.168.1.10

对于一次性测试,iperf3-s -1只处理一个客户端连接,然后退出。在高带宽链路(40 Gbps 以上)上,在不同端口上运行多个服务器实例,以绕过单线程 CPU 限制。

确保防火墙允许所选端口的流量。在使用 UFW 的 Ubuntu/Debian 上:

sudo ufw allow 5201/tcp
sudo ufw allow 5201/udp   # if testing UDP

运行客户端测试

基本 TCP 测试

iperf3 -c 192.168.1.10

测量通过 TCP 上传的带宽,持续 10 秒。使用-t 延长持续时间:

iperf3 -c 192.168.1.10 -t 30

在 10 Gbps 或 25 Gbps 链路上,由于单核 CPU 的限制,单个 TCP 流的最高速度通常为 3-5 Gbps。使用并行数据流可使链路达到饱和:

iperf3 -c 192.168.1.10 -P 8

读取结果

每个间隔行显示传输量(发送数据)和比特率(吞吐量)。对于 TCP,还要注意

  • Retr(重传)。数字高意味着数据包丢失或拥塞。
  • Cwnd(拥塞窗口)。如果数值偏低或卡住,说明缓冲区或窗口大小限制限制了吞吐量。

在干净的 1 Gbps 链路上,扣除协议开销后,预计吞吐量约为 940 Mbps。测试以发送方和接收方摘要行结束。在一个稳定的网络上,这些数据应该非常吻合。

对于 UDP 测试(-u标志),输出会添加抖动(数据包到达差异)和丢失/总数据报。抖动小于 1 毫秒和 0% 丢失是 VoIP 等实时流量的理想选择。

有用的标记

标记用途
-c <IP连接服务器
-p <端口使用特定端口(默认:5201)
-t <秒以秒为单位的测试持续时间(默认: 10)
-i <秒报告间隔
-P <个并行数据流
-uUDP 模式
-b <n>M目标带宽(UDP;如果省略,默认为 1 Mbps)
-R反向模式(服务器发送,客户端接收)
-w <n>KTCP 窗口/套接字缓冲区大小
-JJSON 输出
-Z零拷贝(在快速链路上减少 CPU)

高级测试

双向测试

--bidir标志(iperf3 3.7 以上版本)可同时测试上传和下载:

iperf3 -c 192.168.1.10 --bidir

两个连接都来自客户端,因此无需打开额外端口即可通过 NAT 进行测试。如果双向测试结果远低于单向测试结果,则路由器或电缆调制解调器可能在全双工流量方面存在问题。

反向模式

使用-R标志可反转数据流,使服务器发送数据,客户端接收数据。这样可以在不交换角色的情况下测量下载速度:

iperf3 -c 192.168.1.10 -t 30 -i 5 -R

正向和反向结果之间的巨大差异表明路径不对称、拥塞或缓冲区配置错误。

UDP 测试

UDP 测试可揭示抖动和丢包现象,而 TCP 则将其隐藏在重传背后。一定要用-b 设置目标带宽,因为 iperf3 默认 UDP 带宽为 1 Mbps:

iperf3 -c 192.168.1.10 -u -b 1G

模拟 VoIP 流量(100 通电话、200 字节数据包):

iperf3 -c 192.168.1.10 -u -b 8M -l 200

质量基准:抖动低于 5 毫秒对 VoIP 来说是好的,超过 30 毫秒则会导致声音问题。数据包丢失率超过 0.1%,会明显降低实时媒体的质量。

调整和故障排除

常见问题

千兆链路上只有 100 Mbps?使用ethtool eth0 检查物理接口速度。自动协商有时会失败,并将链路降到较低的速度。

MSS 在以太网上显示 536 字节?路径 MTU 发现可能已禁用。1,500 字节 MTU 的默认 MSS 为 1,460 字节。测试时使用-m查看。536 字节的 MSS 会浪费带宽并增加开销。

快速链路上的 CPU 已达到最大值?使用-Z(零拷贝)减少 CPU 负载。对于 40 Gbps 以上的速度,在不同端口上运行多个服务器实例,并将它们分散到不同的 CPU 内核上。

结果不一致?使用-O 3可省略 TCP 拥塞窗口上升的最初几秒钟。在测试运行之间留出 30 秒,以清除网络缓冲区。

单个数据流比并行数据流加起来慢得多?如果一个数据流的传输速率为 200 Mbps,但八个数据流加在一起的传输速率为 1.6 Gbps,则 TCP 窗口或操作系统缓冲区限制了单个数据流的传输速率。请在下面调整缓冲区。

TCP 缓冲区调整

首先计算带宽-延迟乘积:带宽 x RTT。10 Gbps 链路的 RTT 为 50 ms,BDP 为 62.5 MB。将最大缓冲区设置为 BDP 的至少 2 倍。

将这些参数添加到/etc/sysctl.d/99-tcp-tuning.conf中,并使用sudo sysctl -p 加以应用:

参数建议(1-10 Gbps)
net.core.rmem_max134217728(128 MB)
net.core.wmem_max134217728(128 MB)
net.ipv4.tcp_rmem4096 131072 134217728
net.ipv4.tcp_wmem4096 131072 134217728
net.core.default_qdiscfq
net.ipv4.tcp_congestion_controlbbr

net.ipv4.tcp_moderate_rcvbuf设为 1,以便内核在这些范围内自动调整。对于大于 64 KB 的 TCP 窗口,启用net.ipv4.tcp_window_scaling(设置为 1)。

您还可以将默认的CUBIC拥塞算法切换为 Google 的BBR 算法。在有一定数据包丢失的高延迟链路上,BBR 的吞吐量始终高于 CUBIC。

使用 iperf3 中的-w标志测试特定的缓冲区大小,但注意不能超过内核的rmem_maxwmem _ max。千兆链路从 8 MB 开始,100 Mbps 为 512 KB。

如果您正在配置专用服务器并希望验证网络性能,请在安装后立即运行 iperf3 基线测试,并在任何网络变更后运行,以便及早发现问题。

视频推荐

博客

本周特色

更多文章
iperf3 教程:在 Linux 和 Windows 上测试网络速度

iperf3 教程:在 Linux 和 Windows 上测试网络速度

在 Linux 和 Windows 上安装 iperf3、运行带宽测试并调整 TCP 缓冲区以获得准确结果。涵盖 UDP、双向和 10GbE+ 测试

10 分钟阅读 - 2026年5月7日

ZFS 快照:如何创建、还原和自动操作快照

10 分钟阅读 - 2026年5月5日

更多文章