测速工具-iperf3

iperf3

iperf3 是一款用于主动测量网络最大带宽性能的工具,支持 TCPUDPSCTP 协议。使用时需在两台设备上分别运行服务端 (-s)和客户端(-c)。

一、iperf3 安装

  • Linux (Debian/Ubuntu)

    bash 复制代码
    sudo apt update && sudo apt install iperf3
  • Linux (CentOS/RHEL)

    bash 复制代码
    sudo yum install iperf3
  • Windows/macOS

下面是 iperf3 全部常用参数 整理成的清晰表格,方便你直接复制存档。

二、iperf3 参数

2.1、服务端参数(Server)

参数 作用
-s 以服务端模式启动
-p 端口 指定监听端口(默认 5201)
-1 只接受一次连接,测试完自动退出
-D 后台守护进程运行
-u 启用 UDP 模式(服务端也要加)

2.2、客户端参数(Client)

参数 作用
-c IP 以客户端连接指定服务器
-p 端口 连接服务端指定端口
-t 秒 测试持续时间(默认 10 秒)
-n 字节 按传输数据量测试,而非时间
-k 包数 按发包数量测试
-P 数量 并行连接数(多线程跑满带宽)
-w 大小 设置 TCP 窗口大小(如 1M、512K)
-R 反向测试(服务端发、客户端收)
-b 带宽 UDP 目标带宽(如 100M、1G)
-u 使用 UDP 协议
-O 秒 忽略前 N 秒数据(用于预热)
-J 输出 JSON 格式结果

2.3、通用显示/格式参数

参数 作用
-i 秒 每隔 N 秒输出一次实时结果
-f 格式 显示单位格式:K/M/Gk/m/g
-V 详细版本信息
-h 帮助

2.4、高级网络参数

参数 作用
-M MTU 设置 MTU 大小(不含 IP/UDP 头)
-N 禁用 Nagle 算法(低延迟)
-4 强制 IPv4
-6 强制 IPv6
-T TTL 设置 TTL
-S TOS 设置服务类型(QoS)

2.5、文件/日志相关

参数 作用
--logfile 文件名 将输出写入日志文件
--forceflush 强制实时刷新输出

三、参考案例

3.1、TCP 带宽测试

3.1.1. 服务端(被测试机器)

bash 复制代码
iperf3 -s          # 启动服务端(默认监听 5201 端口)
iperf3 -s -p 5202  # 指定监听端口 5202

3.1.2. 客户端(测试发起机器)

bash 复制代码
iperf3 -c 192.168.1.100          # 连接服务端(默认10秒)
iperf3 -c 192.168.1.100 -p 5202  # 连接指定端口

典型输出

复制代码
[ ID] Interval           Transfer     Bitrate
[  5]   0.00-10.00  sec   112 MBytes  94.0 Mbits/sec  # 带宽结果
  • -t N:测试 N 秒 (默认 10)

    bash 复制代码
    iperf3 -c 192.168.1.100 -t 60  # 测60秒
  • -P NN 条并行流 (多线程,跑满大带宽)

    bash 复制代码
    iperf3 -c 192.168.1.100 -P 4   # 4线程
  • -R反向测试 (服务端发 → 客户端收,测下载)

    bash 复制代码
    iperf3 -c 192.168.1.100 -R
  • -i 1每秒 输出一次进度

    bash 复制代码
    iperf3 -c 192.168.1.100 -i 1
  • -w 1M:设置 TCP 窗口大小

    bash 复制代码
    iperf3 -c 192.168.1.100 -w 1M

3.2、UDP 测试

UDP 用于测试实时性 (音视频、游戏),必须指定带宽 -b

  • 服务端:

    bash 复制代码
    iperf3 -s -u
  • 客户端:

    bash 复制代码
    iperf3 -c 192.168.1.100 -u -b 100M -t 30

四、结果分析

关键指标

  • Bitrate:实际带宽
  • Lost/Total丢包数/总数
  • Jitter抖动(延迟稳定性)
  • TCP :看 Bitrate(Mbps),接近网卡/带宽上限为正常
  • UDP :看 0丢包、低抖动 为优质

4.1、TCP 测试结果怎么看

TCP 看:带宽、稳定性、是否跑满

典型输出

复制代码
[ ID] Interval           Transfer     Bitrate         Retr
[  5]   0.00-10.00  sec   113 MBytes  94.6 Mbits/sec    0   sender
[  5]   0.00-10.00  sec   113 MBytes  94.6 Mbits/sec        receiver

关键字段解释

字段 含义 怎么判断好坏
Bitrate 实际带宽 越接近你的链路带宽越好 千兆网应接近 900Mbps+
Transfer 总传输量 参考用
Retr 重传次数 0 最好 公网偶尔几个正常 频繁重传 = 网络拥堵/丢包
sender / receiver 发送/接收速率 两者接近 = 网络稳定 差距大 = 链路瓶颈/单向问题

TCP 结果判断标准

  1. Bitrate 稳定,无大波动

    • 内网:应接近网卡速率(千兆≈900+Mbps)
    • 公网:接近你购买的带宽(如 100M 带宽 ≈ 90Mbps+)
  2. Retr(重传)=0 最优

    • 内网 > 0:交换机/网线/网卡问题
    • 公网 > 0:正常,但持续很高说明线路差
  3. sender 和 receiver 速率差距大

    • 单向瓶颈(某方向带宽小、QoS 限制)

4.2、UDP 测试结果怎么看

UDP 不保证可靠,主要看:丢包、抖动、延迟

用于:游戏、语音、视频、直播

典型输出

复制代码
[ ID] Interval           Transfer     Bitrate         Jitter    Lost/Total Datagrams
[  5]   0.00-10.00  sec  59.6 MBytes  50.0 Mbits/sec  0.051 ms  0/42442 (0%)  sender
[  5]   0.00-10.00  sec  59.6 MBytes  50.0 Mbits/sec  0.051 ms  0/42442 (0%)  receiver

关键字段解释

字段 含义 怎么判断好坏
Bitrate 发送速率 由你 -b 50M 指定
Jitter 抖动(延迟波动) 越小越好 <1ms:内网优秀 1~20ms:公网正常 >50ms:音视频会卡顿
Lost/Total 丢包数/总包数 0% 最优 <1%:良好 1%~5%:语音卡顿 >5%:视频无法观看
Datagrams 数据包数量 参考

UDP 结果判断标准

  1. 丢包率 0% 最好

    • 内网丢包 = 网线/交换机/协商异常
    • 公网丢包 = 运营商拥堵/线路质量差
  2. 抖动 Jitter 越小越稳定

    • 游戏:< 20ms 舒服
    • 视频会议:< 30ms 可接受
    • > 50ms 明显卡顿
  3. 若指定 -b 100M 但实际只有 30M

    • 链路带宽不足 / 被限速 / MTU 问题

4.3、常见异常情况对照

现象 可能原因
TCP 速率只有 10Mbps 百兆网卡/网线坏/半双工/被限速
TCP 重传很多 网络丢包、信号差、拥堵
UDP 丢包严重 带宽不足、WiFi 差、运营商弱
Jitter 很大 网络跳变、多路由、WiFi 干扰
双向速率不一致 运营商上下行不对称、单向 QoS

五、防火墙注意

确保 5201 端口(或指定端口)放行(TCP/UDP)

相关推荐
乘云数字DATABUFF1 天前
5分钟部署开源APM Databuff:OpenTelemetry全链路追踪入门实战
运维·后端
荣--3 天前
一键部署不是为了省时间 —— 它是把"买来的 PaaS"变成"自己的平台"的拐点
运维·zabbix·工程化·一键部署·平台化·边界设计
江华森3 天前
动手实战学 Docker — 从零到集群编排完全指南
运维
Avan_菜菜4 天前
FRP 内网穿透完整实战:从 HTTP 映射到 HTTPS 自签代理
运维·nginx·https
SelectDB5 天前
Litefuse 开源并推出单进程轻量模式,25 秒就能跑起来的 Agent 可观测与评估平台
运维·后端·自动化运维
XIAOHEZIcode6 天前
Linux系统鼠标偏移常见原因以及修复方案
linux·运维·游戏
用户0328472220707 天前
如何搭建本地yum源(上)
运维
大树8810 天前
金刚石散热越强,管路越先见顶
大数据·运维·服务器·人工智能·ai
摇滚侠10 天前
Linux CentOS7 rpm 安装 MySQL 5.7
linux·运维·mysql
霸道流氓气质10 天前
领域驱动设计(DDD)在 Spring Boot 微服务中的实践指南
运维·spring boot·微服务