发布于: -/最后更新: -/3 分钟/

测试两个设备之间的连接速度

摘要

iPerf3是一款强大的网络带宽测量工具,支持TCP、UDP和SCTP等多种协议。它可以测量网络的最大带宽、延迟抖动以及丢包率,是网络工程师和开发人员进行网络性能调优的必备工具。iPerf3可以在Linux和Windows系统上安装和使用,支持直接安装和Docker部署。客户端可以使用命令行工具发起测试,支持多种测试模式,包括单线程和多线程测试。同时,也可以使用自动化脚本来简化测试过程。

iPerf3 是一款强大的网络带宽测量工具,支持 TCP、UDP 和 SCTP 等多种协议。它可以测量网络的最大带宽、延迟抖动以及丢包率,是网络工程师和开发人员进行网络性能调优的必备利器。

直接安装

主流的 Linux 发行版均已包含 iPerf3 的官方软件包,你可以根据系统类型执行以下命令:

Debian/Ubuntu 系:

Bash
sudo apt -y update
sudo apt -y install iperf3

RedHat/CentOS 系:

Bash
# CentOS 8 及以上使用 dnf
sudo dnf install -y iperf3
# CentOS 7 使用 yum (可能需要先安装 epel-release)
sudo yum install -y epel-release
sudo yum install -y iperf3

SUSE/openSUSE 系:

Bash
sudo zypper install iperf3

安装完成后,可以通过以下命令查看版本信息:

Bash
iperf3 -v

启动服务端监听:

Bash
iperf3 -s

默认情况下,服务端会监听 5201 端口。

Docker 部署

如果你希望更加轻量且易于管理,可以使用 Docker Compose 进行部署。这里推荐使用基于 Alpine Linux 的镜像,体积非常小巧。

创建 docker-compose.yml 文件:

YAML
services:
  iperf3-server:
    image: taoyou/iperf3-alpine:latest
    container_name: iperf3-server
    tty: true
    ports:
      - "5201:5201"
      - "5201:5201/udp"
    restart: always

在同级目录下执行以下命令启动:

Bash
docker compose up -d

客户端使用 (Windows)

在 Windows 环境下,通常将 iPerf3 作为客户端来发起测试。

下载与准备

  1. 访问 iperf.fr 下载适用于 Windows 的二进制包。

  2. 解压下载的压缩包到指定目录。

  3. 在文件夹中点击右键,选择 “在终端中打开” (Open in Terminal) 或命令提示符。

发起测试

最基本的测试命令如下(以反向模式为例,通常用于测试下载速度):

Bash
.\iperf3.exe -c <服务器IP> -R

常用参数说明:

  • -c: 指定服务端 IP 地址。

  • -R: 反向模式(Reverse),由服务器发送数据,客户端接收。

  • -p: 指定端口号(默认 5201)。

  • -t: 指定测试持续时间(秒,默认 10s)。

  • -P: 指定并行流的数量(Parallel),可用于压测多线程带宽。

运行结果
点击查看大图
运行结果

自动化脚本:iPerf3 效率助手

为了方便频繁进行不同模式的测试,我们可以编写一个简单的 Windows 批处理脚本 (.bat)。

将以下代码保存为 iperf_test.bat,并根据实际情况修改 IPERF_PATHSERVER_IP

Bash
@echo off
set IPERF_PATH=D:\tools\iperf3.exe
set SERVER_IP=192.168.1.100

:menu
cls
echo ========================================
echo       iPerf3 网络性能测试工具
echo ========================================
echo 1. 单线程上传测试 (Upload)
echo 2. 单线程下载测试 (Download)
echo 3. 多线程并行上传 (4 线程)
echo 4. 多线程并行下载 (4 线程)
echo 5. 退出
echo.

set /p choice=请输入选项 (1-5):
if "%choice%"=="1" goto single_upload
if "%choice%"=="2" goto single_download
if "%choice%"=="3" goto multi_upload
if "%choice%"=="4" goto multi_download
if "%choice%"=="5" goto end
echo 无效选择,请重新输入。
pause
goto menu

:single_upload
"%IPERF_PATH%" -c %SERVER_IP%
pause
goto menu

:single_download
"%IPERF_PATH%" -c %SERVER_IP% -R
pause
goto menu

:multi_upload
"%IPERF_PATH%" -c %SERVER_IP% -P 4
pause
goto menu

:multi_download
"%IPERF_PATH%" -c %SERVER_IP% -R -P 4
pause
goto menu

:end
echo 拜拜了您嘞!
exit

正文结束