news 2026/6/10 20:22:17

iperf3 服务器测速服务搭建指南

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
iperf3 服务器测速服务搭建指南

iperf3 服务器测速服务搭建指南

目录

  1. 概述
  2. 安装 iperf3
  3. 启动服务器测速服务
  4. 客户端连接并测速
  5. 测试结果解读
  6. 常见问题与进阶
  7. 最佳实践

概述

iperf3 是一个开源的网络性能测试工具,可以用于测量网络带宽、延迟、丢包率、抖动等关键指标。本文档介绍如何在服务器上搭建 iperf3 测速服务,并让客户端连接进行网络测速。

主要特性

  • 跨平台支持:支持 Linux、Windows、macOS、Android、iOS 等多个平台
  • 协议支持:支持 TCP 和 UDP 协议测试
  • 测试方向:可以测试上行、下行以及双向带宽
  • 高精度:提供详细的性能指标,包括带宽、延迟、丢包率、抖动等
  • 灵活配置:支持多种参数配置,适应不同测试场景

应用场景

场景说明
网络带宽测试测量实际可用带宽,验证网络服务商承诺的带宽
网络质量评估检测网络延迟、丢包率、抖动等质量指标
服务器性能测试评估服务器网络处理能力和吞吐量
网络故障排查定位网络瓶颈,诊断网络问题
CDN 性能测试测试 CDN 节点的网络性能
VPN 性能测试评估 VPN 连接对网络性能的影响

安装 iperf3

各平台安装方法

在服务器上安装 iperf3(支持Linux/Windows/macOS):

Debian/Ubuntu
sudoapt-getupdate&&sudoapt-getinstalliperf3
CentOS/RHEL
sudoyuminstallepel-release&&sudoyuminstalliperf3
Fedora
sudodnfinstalliperf3
macOS
brewinstalliperf3
Windows
  1. 访问 iperf3 官方下载页面
  2. 下载 Windows 版本的预编译二进制文件
  3. 解压后将iperf3.exe添加到系统 PATH 环境变量
其他平台

其他平台可直接下载官方预编译二进制使用。安装完成后两端均可用iperf3命令。

验证安装

安装完成后,可以通过以下命令验证:

iperf3 --version

正常输出示例:

iperf 3.13 (cJSON 1.7.18) Linux server 5.4.0-74-generic #83-Ubuntu SMP x86_64 GNU/Linux

启动服务器测速服务

最简方式

在服务器执行:

iperf3 -s

默认监听TCP 5201端口,日志会打印监听地址与端口。

服务器端输出示例:

----------------------------------------------------------- Server listening on 5201 -----------------------------------------------------------

常用服务器参数

参数说明示例
-s以服务器模式运行iperf3 -s
-p <port>指定监听端口(默认 5201)iperf3 -s -p 1314
-B <IP>绑定到指定 IP 地址或网卡iperf3 -s -B 192.168.1.10
-D以守护进程模式运行(后台)iperf3 -s -D
--logfile <file>将日志输出到文件iperf3 -s --logfile server.log
-1只接受一个客户端连接iperf3 -s -1
-V显示版本信息并退出iperf3 -V

常用增强参数

指定端口
iperf3 -s -p1314
指定网卡/IP
iperf3 -s -B192.168.1.10
后台/守护进程

Linux 可用:

iperf3 -s -D

Windows 有相应服务模式选项。

输出到文件
iperf3 -s --logfile server.log
仅允许指定客户端
iperf3 -s -c203.0.113.5

仅该客户端可连,UDP 模式不支持该限制。

使用 systemd 管理服务(Linux)

创建 systemd 服务文件/etc/systemd/system/iperf3.service

[Unit] Description=iperf3 server After=network.target [Service] Type=simple ExecStart=/usr/bin/iperf3 -s Restart=always RestartSec=5 [Install] WantedBy=multi-user.target

启用并启动服务:

sudosystemctl daemon-reloadsudosystemctlenableiperf3sudosystemctl start iperf3sudosystemctl status iperf3

防火墙配置

防火墙放行(示例为 firewalld,放通5201/tcp):

sudofirewall-cmd --zone=public --add-port=5201/tcp --permanentsudofirewall-cmd --reload

安全建议

重要:不要长期将 iperf3 暴露在公网,必要时限制来源 IP、改用非默认端口并配合防火墙。


客户端连接并测速

客户端常用参数

参数说明示例
-c <host>客户端模式,连接到指定服务器iperf3 -c 192.168.1.100
-p <port>指定服务器端口(默认 5201)iperf3 -c 192.168.1.100 -p 1314
-t <seconds>测试持续时间(秒)iperf3 -c 192.168.1.100 -t 30
-i <seconds>报告间隔(秒)iperf3 -c 192.168.1.100 -i 1
-u使用 UDP 协议iperf3 -c 192.168.1.100 -u
-b <bandwidth>目标带宽(UDP 或 TCP 限制)iperf3 -c 192.168.1.100 -b 100M
-P <num>并行流数量iperf3 -c 192.168.1.100 -P 4
-R反向测试(服务器发送,客户端接收)iperf3 -c 192.168.1.100 -R
-w <size>TCP 窗口大小iperf3 -c 192.168.1.100 -w 1M
-J输出 JSON 格式iperf3 -c 192.168.1.100 -J
-V显示版本信息iperf3 -V

基本 TCP 测试(客户端上行,服务端下行)

基本命令:

iperf3 -c 服务器IP

常用参数组合:

iperf3 -c 服务器IP -t30-i1

测试30 秒,每1 秒输出一次。

输出示例:

Connecting to host 192.168.1.100, port 5201 [ 4] local 192.168.1.50 port 54321 connected to 192.168.1.100 port 5201 [ ID] Interval Transfer Bandwidth Retr Cwnd [ 4] 0.00-1.00 sec 11.3 MBytes 94.6 Mbits/sec 0 1.25 MBytes [ 4] 1.00-2.00 sec 11.2 MBytes 94.0 Mbits/sec 0 1.25 MBytes [ 4] 2.00-3.00 sec 11.3 MBytes 94.8 Mbits/sec 0 1.25 MBytes [ 4] 3.00-4.00 sec 11.2 MBytes 94.1 Mbits/sec 0 1.25 MBytes [ 4] 4.00-5.00 sec 11.3 MBytes 94.7 Mbits/sec 0 1.25 MBytes - - - - - - - - - - - - - - - - - - - - - - - - - [ ID] Interval Transfer Bandwidth Retr [ 4] 0.00-5.00 sec 56.3 MBytes 94.4 Mbits/sec 0 sender [ 4] 0.00-5.00 sec 56.2 MBytes 94.3 Mbits/sec receiver iperf Done.

反向测试(客户端下行,服务端上行)

iperf3 -c 服务器IP -R

输出示例:

Connecting to host 192.168.1.100, port 5201 Reverse mode, remote host 192.168.1.100 is sending [ 4] local 192.168.1.50 port 54322 connected to 192.168.1.100 port 5201 [ ID] Interval Transfer Bandwidth [ 4] 0.00-1.00 sec 11.4 MBytes 95.6 Mbits/sec [ 4] 1.00-2.00 sec 11.3 MBytes 94.8 Mbits/sec ...

UDP 测试(指定目标带宽,例如 100M)

iperf3 -c 服务器IP -u -b 100M -t20

输出示例:

Connecting to host 192.168.1.100, port 5201 [ 4] local 192.168.1.50 port 54323 connected to 192.168.1.100 port 5201 [ ID] Interval Transfer Bandwidth Total Datagrams [ 4] 0.00-1.00 sec 11.9 MBytes 99.8 Mbits/sec 15243 [ 4] 1.00-2.00 sec 11.9 MBytes 99.9 Mbits/sec 15243 [ 4] 2.00-3.00 sec 11.9 MBytes 99.8 Mbits/sec 15243 - - - - - - - - - - - - - - - - - - - - - - - - - [ ID] Interval Transfer Bandwidth Jitter Lost/Total Datagrams [ 4] 0.00-3.00 sec 35.6 MBytes 99.8 Mbits/sec 0.000 ms 0/45729 (0%) [ 4] Sent 45729 datagrams

并行多流(提升吞吐,需服务端/客户端一致)

iperf3 -c 服务器IP -P4-t20

输出示例:

Connecting to host 192.168.1.100, port 5201 [ 4] local 192.168.1.50 port 54324 connected to 192.168.1.100 port 5201 [ 6] local 192.168.1.50 port 54325 connected to 192.168.1.100 port 5201 [ 8] local 192.168.1.50 port 54326 connected to 192.168.1.100 port 5201 [ 10] local 192.168.1.50 port 54327 connected to 192.168.1.100 port 5201 [ ID] Interval Transfer Bandwidth Retr Cwnd [ 4] 0.00-1.00 sec 2.81 MBytes 23.6 Mbits/sec 0 320 KBytes [ 6] 0.00-1.00 sec 2.81 MBytes 23.6 Mbits/sec 0 320 KBytes [ 8] 0.00-1.00 sec 2.81 MBytes 23.6 Mbits/sec 0 320 KBytes [ 10] 0.00-1.00 sec 2.81 MBytes 23.6 Mbits/sec 0 320 KBytes [SUM] 0.00-1.00 sec 11.2 MBytes 94.4 Mbits/sec 0 ...

测试场景对比

测试类型命令适用场景
基本 TCP 测试iperf3 -c 服务器IP快速测试基本带宽
详细 TCP 测试iperf3 -c 服务器IP -t 30 -i 1需要详细统计信息
反向测试iperf3 -c 服务器IP -R测试下载带宽
UDP 测试iperf3 -c 服务器IP -u -b 100M测试 UDP 性能和丢包
并行多流iperf3 -c 服务器IP -P 4测试多连接吞吐量
双向测试iperf3 -c 服务器IP -d同时测试上下行
交互式双向iperf3 -c 服务器IP -r先测上行再测下行

测试结果解读

TCP 测试结果解读

关键指标说明:

指标说明示例值
Transfer传输的数据量56.3 MBytes
Bandwidth带宽(发送端/接收端)94.4 Mbits/sec
Retr重传次数0
Cwnd拥塞窗口大小1.25 MBytes

结果解读要点:

  • sender:发送端观测到的吞吐量
  • receiver:接收端观测到的吞吐量
  • 正常情况下,sender 和 receiver 的值应该接近
  • 如果 sender 明显大于 receiver,可能存在网络丢包或拥塞

UDP 测试结果解读

关键指标说明:

指标说明示例值
Transfer传输的数据量35.6 MBytes
Bandwidth带宽99.8 Mbits/sec
Jitter抖动(延迟变化)0.000 ms
Lost/Total Datagrams丢包率0/45729 (0%)

结果解读要点:

  • Jitter(抖动):越小越好,通常 < 1ms 为优秀
  • 丢包率:应该接近 0%,如果丢包率高,说明网络不稳定
  • UDP 测试可以更好地反映网络质量,因为 UDP 不保证可靠性

性能评估标准

网络类型典型带宽延迟要求丢包率要求
局域网(千兆)900+ Mbits/sec< 1ms< 0.1%
局域网(百兆)90+ Mbits/sec< 1ms< 0.1%
家庭宽带(100M)80-95 Mbits/sec< 20ms< 0.5%
4G 移动网络10-50 Mbits/sec< 50ms< 1%
3G 移动网络1-5 Mbits/sec< 100ms< 2%

常见问题与进阶

端口与连通性

确认服务器监听端口(默认5201/tcp)已在安全组/防火墙放行;云上环境需同时放通云安全组与系统防火墙。

常见防火墙配置:

firewalld (CentOS/RHEL/Fedora)
sudofirewall-cmd --zone=public --add-port=5201/tcp --permanentsudofirewall-cmd --reload
ufw (Ubuntu/Debian)
sudoufw allow5201/tcpsudoufw reload
iptables
sudoiptables -A INPUT -p tcp --dport5201-j ACCEPTsudoiptables-save
云服务器安全组

需要在云服务商控制台配置安全组规则,放行 5201 端口。

连通性测试:

# 测试端口是否开放telnet 服务器IP5201# 或使用 nc (netcat)nc-zv 服务器IP5201

结果单位换算

带宽单位换算表:

单位换算关系示例
Mbits/sec1 Mbits/sec = 0.125 MBytes/sec100 Mbits/sec = 12.5 MBytes/sec
MBytes/sec1 MBytes/sec = 8 Mbits/sec12.5 MBytes/sec = 100 Mbits/sec
Gbits/sec1 Gbits/sec = 1000 Mbits/sec1 Gbits/sec = 125 MBytes/sec

快速换算公式:

  • Mbits/sec ÷ 8 ≈ MBytes/s
  • MBytes/sec × 8 = Mbits/sec

便于与常见下载器显示单位对齐。

双向与并行

交互式双向
iperf3 -c 服务器IP -r

先测上行,再测下行。

同时双向
iperf3 -c 服务器IP -d
多线程
iperf3 -c 服务器IP -P N

N 为并发流数,建议服务端也用相同-P

自动化与留存

JSON 报告便于分析
iperf3 -c 服务器IP -t10-J>result.json
服务端日志
iperf3 -s --logfile server.log

其他平台客户端

Windows
  1. 下载 iperf3.exe(从 iperf3 官网)
  2. 在 CMD 或 PowerShell 中进入 iperf3.exe 所在目录
  3. 执行测试命令:
iperf3.exe -c 服务器IP
Android

推荐使用以下 APP:

  • Magic iPerf:功能完整,支持 iperf3
  • Network Signal Info:包含网络测试功能
  • Termux:在 Android 上运行完整的 Linux 环境,可直接安装 iperf3

使用步骤:

  1. 安装 Magic iPerf 等 APP
  2. 切换到iperf3模式
  3. 输入服务器 IP 和端口
  4. 选择测试类型(TCP/UDP,上行/下行)
iOS

可以使用Terminal类 APP(如 iTerminal、Termius)通过 SSH 连接到服务器进行测试,或使用支持 iperf3 的网络测试 APP。

常见错误及解决方案

错误信息可能原因解决方案
connect failed: Connection refused服务器未启动或端口未开放检查服务器是否运行,防火墙是否放行
connect failed: No route to host网络不通或路由问题检查网络连通性,ping 服务器 IP
bind failed: Address already in use端口被占用更换端口或停止占用端口的进程
error - unable to connect to server服务器地址错误或服务未启动检查服务器 IP 和端口,确认服务运行
error - the server is busy running a test服务器正在处理其他测试等待当前测试完成或使用-1参数限制连接
WARNING: did not receive ack of last datagram after 10 triesUDP 测试时网络不稳定检查网络质量,降低测试带宽

性能优化建议

1. TCP 窗口大小优化
# 增大 TCP 窗口大小(适用于高带宽网络)iperf3 -c 服务器IP -w 2M
2. 并行流优化
# 使用多个并行流提升吞吐量iperf3 -c 服务器IP -P8
3. 测试时间优化
  • 短时间测试(10-30秒):快速评估
  • 长时间测试(60-300秒):稳定性和一致性评估
  • 建议至少测试 30 秒以上以获得稳定结果
4. 网络环境优化
  • 关闭其他占用带宽的应用
  • 使用有线网络而非 Wi-Fi(更稳定)
  • 在低网络负载时段测试

最佳实践

测试流程建议

  1. 准备阶段

    • 确认服务器和客户端都已安装 iperf3
    • 检查防火墙和安全组配置
    • 关闭不必要的网络应用
  2. 基础测试

    # 快速测试连通性iperf3 -c 服务器IP -t10
  3. 详细测试

    # 详细测试,记录结果iperf3 -c 服务器IP -t60-i1>test_result.txt
  4. 多方向测试

    # 测试上行iperf3 -c 服务器IP -t30# 测试下行iperf3 -c 服务器IP -R -t30# 测试双向iperf3 -c 服务器IP -d -t30
  5. UDP 质量测试

    # UDP 测试网络质量iperf3 -c 服务器IP -u -b 100M -t30

自动化测试脚本示例

Linux/macOS 脚本:

#!/bin/bashSERVER_IP="192.168.1.100"TEST_DURATION=30echo"=== iperf3 网络测试报告 ==="echo"测试时间:$(date)"echo"服务器:$SERVER_IP"echo""echo"--- TCP 上行测试 ---"iperf3 -c$SERVER_IP-t$TEST_DURATION-i1echo""echo"--- TCP 下行测试 ---"iperf3 -c$SERVER_IP-R -t$TEST_DURATION-i1echo""echo"--- UDP 测试 ---"iperf3 -c$SERVER_IP-u -b 100M -t$TEST_DURATION-i1echo""echo"=== 测试完成 ==="

JSON 格式输出(便于分析):

#!/bin/bashSERVER_IP="192.168.1.100"DATE=$(date+%Y%m%d_%H%M%S)# 生成 JSON 报告iperf3 -c$SERVER_IP-t30-J>"iperf3_report_${DATE}.json"# 也可以同时保存文本格式iperf3 -c$SERVER_IP-t30>"iperf3_report_${DATE}.txt"

监控和日志

服务器端日志配置:

# 启动带日志的服务器iperf3 -s --logfile /var/log/iperf3.log# 使用 logrotate 管理日志# /etc/logrotate.d/iperf3/var/log/iperf3.log{daily rotate7compress missingok notifempty}

安全建议总结

  1. 不要长期暴露在公网:测试完成后及时关闭服务
  2. 使用非默认端口:避免使用 5201 默认端口
  3. 限制客户端 IP:使用-c参数限制允许连接的客户端
  4. 配合防火墙:使用防火墙规则限制访问来源
  5. 定期更新:保持 iperf3 版本更新,修复安全漏洞

总结

iperf3 是一个功能强大的网络性能测试工具,通过简单的命令即可搭建测速服务。在实际使用中,建议:

  1. 安全第一:不要长期暴露在公网,使用防火墙限制访问
  2. 参数调优:根据实际需求选择合适的测试参数(时间、并发数等)
  3. 结果分析:关注 sender 和 receiver 的差异,UDP 测试时注意丢包率
  4. 多平台支持:iperf3 支持多种平台,可以灵活选择客户端进行测试
  5. 定期测试:建立定期测试机制,监控网络性能变化
  6. 文档记录:保存测试结果,建立性能基线,便于对比分析

通过合理使用 iperf3,可以准确评估网络性能,为网络优化提供数据支持。无论是网络故障排查、性能评估还是容量规划,iperf3 都是一个不可或缺的工具。

相关资源

  • 官方文档:https://iperf.fr/iperf-doc.php
  • GitHub 仓库:https://github.com/esnet/iperf
  • 下载地址:https://iperf.fr/iperf-download.php
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/10 11:28:43

零基础入门:Windows设备管理器与未知usb设备(设备描述)

从“未知USB设备”说起&#xff1a;深入理解Windows下的USB识别机制与实战排错 你有没有遇到过这样的场景&#xff1f; 插上一个U盘、开发板或者USB转串口模块&#xff0c;电脑“叮”的一声响了&#xff0c;但打开 设备管理器 却发现多了一个带黄色感叹号的“未知USB设备&a…

作者头像 李华
网站建设 2026/6/10 12:37:41

1小时打造CEF Flash浏览器原型验证创意

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容&#xff1a; 快速生成一个CEF Flash浏览器概念验证原型&#xff0c;要求&#xff1a;1. 极简可运行的核心功能&#xff1b;2. 支持加载指定Flash URL&#xff1b;3. 包含基础UI界面&#xff1b…

作者头像 李华
网站建设 2026/6/9 19:55:24

【好写作AI】让HR一眼心动:AI辅助下撰写的“神仙简历”长什么样

当HR用7秒决定一份简历的去留时&#xff0c;你的那份&#xff0c;要像一道光劈开信息的洪流。许多同学的简历像一杯“白开水”&#xff1a;姓名、学校、经历…元素齐全&#xff0c;却平淡无奇。问题往往不在于你“没什么可写”&#xff0c;而在于你不知道如何将“做过的事”翻译…

作者头像 李华
网站建设 2026/6/10 12:33:44

1小时搭建ROYAL TSX自动化运维原型

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容&#xff1a; 快速开发一个ROYAL TSX自动化运维原型&#xff0c;功能包括&#xff1a;1) 定时任务管理 2) 服务器健康状态监控 3) 异常报警通知 4) 简易报表生成。要求使用PythonFlask框架&…

作者头像 李华