Linux iperf3 网络带宽与质量测试工具详解
简介
Iperf 是一款基于 TCP/IP 和 UDP/IP 的网络性能测试工具,能够测量网络带宽和质量,提供延迟抖动、数据包丢失率及 MTU 等统计信息。网络管理员利用这些数据可以判断网络性能问题,定位瓶颈并解决故障。
作为跨平台的命令行工具,Iperf 支持 Windows、Linux 和 macOS。它全程使用内存作为缓冲区,不受磁盘性能影响,对机器配置要求较低。不过由于是命令行工具,它不支持图形化输出。Iperf 可以测试 TCP 和 UDP 带宽质量,具备多种参数选项,适用于路由器、防火墙、交换机等网络设备的性能测试。
安装
可以通过官方下载页面获取安装包,或者直接使用系统包管理器安装。
# Fedora/CentOS 示例
rpm -ivh iperf3-3.1.3-1.fc24.x86_64.rpm
# Ubuntu/Debian 示例
sudo apt-get install iperf3
主要功能
TCP 测试方面 支持测量网络带宽,报告 MSS/MTU 值,通过套接字缓冲调整 TCP 窗口值。在多核环境下,支持多线程并发,客户端与服务端可同时建立多重连接。
UDP 测试方面 客户端可创建指定带宽的 UDP 流,测量丢包率和延迟,支持多播。同样支持多线程并发(Windows 除外)。
其他特性
- 单位灵活:选项中可使用 K、M、G 表示千、兆、吉字节。
- 灵活控制:可指定运行总时间或传输数据总量。
- 报告优化:自动选用最合适的单位显示数据。
- 后台运行:服务器端可作为守护进程或服务运行。
- 压缩测试:使用典型数据流测试链接层压缩对可用带宽的影响。
常用参数
通用参数(服务端和客户端)
-f [k|m|g|K|M|G]:指定带宽输出单位,默认 Mbits。例如-f M显示为 Mbits。-p [port]:指定监听或连接端口,默认 5001。-i [interval]:设置报告间隔时间(秒),例如-i 2每 2 秒报告一次。-F [file]:指定文件进行带宽测试,而非随机数据流。
服务端专用参数
-s:启动服务器模式,默认监听端口 5001(注意:部分版本文档可能写 5201,请以实际为准,建议显式指定)。-D:Unix 平台下以后台守护进程运行。-P [num]:保持的连接数,默认 0 表示无限接受。
客户端专用参数
-c [host]:指定服务端地址,进入客户端模式。-u:使用 UDP 协议,不带此参数默认为 TCP。-b [bandwidth]:UDP 模式下指定发送带宽,默认 1 Mbit/sec。-t [time]:数据传输总时间,默认 10 秒。-l [len]:读写缓冲区长度,TCP 默认 8KB,UDP 默认 1470 字节。-n [size]:指定传输数据包的字节总数。-P [num]:指定线程数,默认 1 个。-w [window]:设置套接字缓冲区大小。-r:往复测试模式,测试结束后反向连接。

