惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

雷峰网
雷峰网
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
T
Tailwind CSS Blog
F
Fortinet All Blogs
Microsoft Azure Blog
Microsoft Azure Blog
Jina AI
Jina AI
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
N
Netflix TechBlog - Medium
B
Blog RSS Feed
Blog — PlanetScale
Blog — PlanetScale
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
T
The Blog of Author Tim Ferriss
D
Docker
博客园 - 聂微东
博客园 - 【当耐特】
博客园 - 三生石上(FineUI控件)
L
LangChain Blog
量子位
宝玉的分享
宝玉的分享
博客园 - 司徒正美
The Cloudflare Blog
G
Google Developers Blog
Microsoft Security Blog
Microsoft Security Blog
腾讯CDC

又见苍岚

COLMAP PatchMatch Stereo 算法详解 事件驱动的状态机框架:从理论到工程实践 Git 在国内网络环境下无法 Push 的排查与修复 —— 配置 Clash 代理 分段五次多项式插值原理详解 路径插值方法深度对比研究 Claude Code 使用指南 OpenClaw 记忆管理与技能创建指南 CBS(Conflict-Based Search)算法详解 A* 算法及其变种详解 OpenClaw 配置多 Agents Windows Powershell 无法加载文件,因为在此系统上禁止运行脚本问题的解决方案 MaxClaw 安装流程 大模型 AI 名词介绍 AList 网盘聚合工具简介 Protobuf 简介与测试 Claude Code 简介以及 GLM 4.7 模型接入 Github 歌词下载工具 163MusicLyrics Python __getattr__ 懒加载 Python TypedDict 机器人仿真平台 Gazebo 安装记录 机器人仿真平台 Gazebo 简介 多机器人路径规划问题(Multi-Agent Path Finding, MAPF)简介 Python exifread 读取修改过的 jpeg 信息错误问题修复 3D 坐标系变换的理解 3D 旋转矩阵基本概念 MongoDB Compass 介绍 Python 环境管理工具 uv Flutter 开发指南 Snipaste 安装下载与黑屏问题解决方案 全局路径规划算法记录
网络性能测试工具 iperf
Yiwei Zhang · 2024-05-17 · via 又见苍岚

iperf 是一个开源网络性能测试工具,它能够测量带宽、吞吐量、延迟和丢包率等网络性能指标。本文将介绍iperf的常用命令和选项,并给出Windows和Linux平台的配置示例。

简介

iPerf 是一款用于主动测量 IP 网络最大带宽的开源工具。它支持调整与定时、缓冲区和协议(TCP、UDP、SCTP 与 IPv4 和 IPv6)相关的各种参数。每次测试都会报告带宽、损耗和其他参数。

iperf 的主要特点包括:

  • 跨平台支持:iperf可以运行在多个操作系统上,包括Windows、Linux、macOS等。

  • 多线程支持:iperf支持多线程测试,可以同时使用多个CPU核心进行测试。

  • 多端口支持:iperf可以在同一台机器上使用多个端口进行测试。

  • 自定义测试参数:iperf支持自定义测试参数,例如测试时间、数据包大小等。

  • 报告详细信息:iperf可以生成详细的测试报告,包括带宽、延迟、丢包率等数据。

工具安装

Windows 11

当前 (2024.05.17) 最高版本 3.17.1

  • 下载

从iperf官网((https://iperf.fr/iperf-download.php))下载适用于Windows的iperf版本。

或直接去 github release 下载 https://github.com/ar51an/iperf3-win-builds

  • 解压

解压后两个文件: cygwin1.dll , iperf3.exe

这个 iperf3.exe 便是应用程序,按下Win+R键,输入cmd并回车,打开命令提示符窗口便可以直接运行

Linux

有 iperf 和 iperf3 两种安装包,都可以使用,建议安装 iperf3

  • apt 安装

    1
    2
    sudo apt-get update
    sudo apt-get install iperf3
  • yum 安装

    1
    yum install iperf3 -y
  • 原始文件安装

    1
    2
    3
    4
    5
    wget https://downloads.es.net/pub/iperf/iperf-3.0.6.tar.gz
    tar zxvf iperf-3.0.6.tar.gz
    cd iperf-3.0.6
    ./configure
    make && make install

工具使用

iperf 使用起来很简单,拓扑为服务器、客户端模式,一台设备启动服务器,其他设备作为客户端测试到服务器的网络连通效果

启动服务器

首先,在一台机器上启动 iperf 服务器:

1
iperf3 -s

-s 是 server 的含义

启动客户端

然后,在另一台机器上启动 iperf 客户端,指定服务器的 IP 地址和端口:

1
iperf3 -c [服务器IP] -p [端口]

iperf 默认端口: 5001

iperf3 默认端口: 5201

参数设置

在客户端命令中,可以添加各种参数来调整测试的参数。例如:

  1. 设置测试时间:使用-t选项可以设置测试的时长,单位为秒,默认为10s。例如,iperf -t 60表示进行60秒的测试。

  2. 设置数据包大小:使用-l选项可以设置发送的数据包大小,单位为字节。例如,iperf -l 10M表示发送10MB的数据包。

  3. 协议选择:使用-u选项可以设置发送udp协议而非tcp,例如,iperf -u -p 5001 192.168.1.100表示使用UDP协议向服务器发送测试请求,并使用UDP端口号5001进行测试

  4. 设置多线程模式:使用-P选项可以设置多线程模式,用于同时测试多个连接。例如,iperf -P 4表示使用4个线程进行测试。

  5. 设置端口号:使用-p选项可以设置服务端监听的端口号。例如,iperf -p 8000表示服务端在端口8000上进行监听。

  6. 设置传输速率:使用-w选项可以设置tcp窗口大小,一般可以不用设置,默认即可。例如,iperf -w 10K表示设置tcp窗口大小为10KB。

  7. 设置测试次数:使用-n选项可以设置测试次数。例如,iperf -n 10表示进行10次测试。

  8. 设置输出格式:使用-f选项可以设置报告输出的格式。例如,iperf -f Mbits表示以Mbits为单位输出带宽报告。

  9. 获取帮助:其他可用参数和更多使用细节可以通过运行iperf --help命令来查看

完整的客户端命令可能如下:

1
iperf -c [服务器IP] -p [端口] -b [带宽] -t [时间] -P [并发数]

执行这个命令后,客户端将开始向服务器发送数据,并显示传输速率、带宽、数据包丢失等信息。

示例输出
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
iperf3 -c 192.168.101.99
Connecting to host 192.168.101.99, port 5201
[ 5] local 192.168.101.65 port 46776 connected to 192.168.101.99 port 5201
[ ID] Interval Transfer Bitrate Retr Cwnd
[ 5] 0.00-1.00 sec 19.7 MBytes 165 Mbits/sec 0 1.30 MBytes
[ 5] 1.00-2.00 sec 21.2 MBytes 178 Mbits/sec 0 1.85 MBytes
[ 5] 2.00-3.00 sec 21.2 MBytes 178 Mbits/sec 0 2.08 MBytes
[ 5] 3.00-4.00 sec 20.0 MBytes 168 Mbits/sec 0 2.08 MBytes
[ 5] 4.00-5.00 sec 22.5 MBytes 189 Mbits/sec 0 2.08 MBytes
[ 5] 5.00-6.00 sec 18.8 MBytes 157 Mbits/sec 0 2.08 MBytes
[ 5] 6.00-7.00 sec 23.8 MBytes 199 Mbits/sec 0 2.08 MBytes
[ 5] 7.00-8.00 sec 17.5 MBytes 147 Mbits/sec 0 2.08 MBytes
[ 5] 8.00-9.00 sec 17.5 MBytes 147 Mbits/sec 0 2.08 MBytes
[ 5] 9.00-10.00 sec 18.8 MBytes 157 Mbits/sec 0 2.08 MBytes
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval Transfer Bitrate Retr
[ 5] 0.00-10.00 sec 201 MBytes 169 Mbits/sec 0 sender
[ 5] 0.00-10.05 sec 198 MBytes 165 Mbits/sec receiver

iperf Done.

注意事项

  • 在进行测试前,确保网络没有限制或防火墙规则阻止了 iperf 的通信。
  • 根据测试需求选择合适的协议。TCP 更适合评估应用层性能,而 UDP 适合评估网络层性能。

iperf常见故障处理

1
iperf3: error - unable to connect to server: Connection refused

这表示服务器未开启,请确保服务器已经正确启动。

1
iperf3: error - unable to connect to server: No route to host

这表示服务器防火墙拦截了连接,请检查服务器防火墙设置。

参考资料

文章链接:
https://www.zywvvd.com/notes/tools/iperf/iperf/