基于 DPDK 的高性能网络流量生成与压测工具,用于测试四层负载均衡、网关和服务器。
esnet/iperf
iperf3 是一款命令行工具,用于测量 IP 网络over TCP、UDP 和 SCTP 的最大可达带宽。
- Star
- 8,865
- Fork
- 1,469
- 未关闭 Issue
- 245
- 最近提交
- 10天前
这是什么?
iperf3 通过在两台主机之间主动发送流量,测量 IP 网络中的最大可达带宽。一台机器运行服务端,另一台运行客户端,每次测试会输出吞吐量或比特率、丢包率等指标。发送时长、协议和缓冲区等参数都可以在命令行中调整。
iperf3 是对原版 iperf 的重新实现,代码更小、更简洁,并提供可供其他程序调用的库版本。它新增了零拷贝模式、可选的 JSON 输出等功能。iperf3 与原版 iperf 不兼容,而 iperf2 仍由独立项目继续开发。
该项目主要由 ESnet 与劳伦斯伯克利国家实验室开发,也是 perfSONAR 网络测量系统的组成部分。主要支持 Ubuntu Linux、FreeBSD 和 macOS,使用标准的 configure 与 make 流程即可编译安装。
核心功能
- 01测量两台主机之间 TCP、UDP 和 SCTP 的吞吐量。
- 02输出比特率、丢包率等每次测试的统计数据。
- 03支持调整测试时长、协议和缓冲区等参数。
- 04提供可选的 JSON 输出,便于脚本解析。
- 05提供零拷贝 sendfile 模式和 CPU 亲和性设置,用于高级测试。
- 06提供库版本,可嵌入其他程序中调用。
适用场景
- 检测两台服务器之间链路或路径的可用带宽。
- 排查网络吞吐量问题,并对比不同配置下的测试结果。
- 作为 perfSONAR 网络测量部署的一部分执行性能测试。
- 借助 JSON 输出在脚本中自动化带宽测试。
快速上手
- 1
克隆源代码仓库
git clone https://github.com/esnet/iperf.git - 2
从源代码构建并安装
./configure; make; make install
使用前须知
- 仅正式支持 Ubuntu Linux、FreeBSD 和 macOS,其他平台不做保证。
- 元数据中的许可证未明确(NOASSERTION),但 README 描述为 BSD 风格许可证,并包含美国政府相关声明。
标签
常见问题
- iperf 是什么?
- iperf3 是一款命令行工具,用于测量 IP 网络over TCP、UDP 和 SCTP 的最大可达带宽。 iperf3 通过在两台主机之间主动发送流量,测量 IP 网络中的最大可达带宽。一台机器运行服务端,另一台运行客户端,每次测试会输出吞吐量或比特率、丢包率等指标。发送时长、协议和缓冲区等参数都可以在命令行中调整。
- iperf 可以免费使用吗?用的什么许可证?
- iperf 以 Other 许可证开源。用于商业产品前,请先确认许可证条款。
- iperf 还在维护吗?
- 活跃维护中。iperf 最近一次提交是在 2026年10月27日。
- iperf 适合用来做什么?
- 检测两台服务器之间链路或路径的可用带宽。 排查网络吞吐量问题,并对比不同配置下的测试结果。 作为 perfSONAR 网络测量部署的一部分执行性能测试。 借助 JSON 输出在脚本中自动化带宽测试。
- iperf 怎么安装和运行?
- 克隆源代码仓库: git clone https://github.com/esnet/iperf.git 从源代码构建并安装: ./configure; make; make install
- 在哪里获取 iperf?
- 源代码和安装说明在 GitHub 上:https://github.com/esnet/iperf
概要由 AI 根据项目 README 生成;GitHub 数据每日更新。
相关项目
5654561CApache-2.0更新于 3个月前
自托管的网络测速与服务器监控工具,附带 Web 界面,基于 Go 和 React 构建。
1420+26 本周93GoGPL-2.0更新于 昨天
基于事件驱动的异步 Java 网络框架,用于快速开发高性能、易维护的协议服务端与客户端。
3.5万+3 本周1.6万JavaApache-2.0更新于 7小时前
基于 Go 的命令行网络扫描器,支持 ARP、ICMP、TCP、UDP 和 SOCKS5 扫描,可输出 JSON 便于自动化处理。
1565+2 本周105GoMIT更新于 3个月前
一个 bash 脚本,借助 fio、iperf3 和 Geekbench 测试 Linux 服务器的磁盘、网络与 CPU/内存性能。
6807+20 本周573ShellWTFPL更新于 3天前
基于 eBPF 的网络分析命令行工具,可抓取 HTTP、Redis、MySQL、Kafka 等请求并定位内核各阶段的延迟。
5078235CApache-2.0更新于 13小时前