iperf 使用

 

 

iperf 是一个常用的网络性能测试工具,用于测量网络带宽、延迟、抖动等指标。它支持 TCP 和 UDP 协议,可以用于测试点对点的网络连接质量。iperf 通常用于网络带宽测试、吞吐量测量、网络诊断等场景。

基本概念

  • Server:在测试中接收流量的端。
  • Client:在测试中发送流量的端。

iperf 的工作模式通常是一个端作为服务器(Server)运行,另一个端作为客户端(Client)连接到服务器并进行测试。

基本用法

  1. 在服务器端启动 iperf

    bash
    iperf -s

    这将在默认的端口(5001)上启动 iperf 服务器。可以使用 -p 选项指定其他端口:

    bash
    iperf -s -p 5201
  2. 在客户端发起测试

    bash
    iperf -c <server_ip>

    这会向服务器发送 TCP 流量并测量带宽。你需要指定服务器的 IP 地址。可以指定端口:

    bash
    iperf -c <server_ip> -p 5201

常用选项

  • -s:启动 iperf 服务器。

  • -c <host>:指定服务器的地址,启动客户端进行测试。

  • -p <port>:指定要使用的端口(默认为 5001)。

  • -u:使用 UDP 而不是 TCP 进行测试。UDP 测试可以测量丢包率、抖动等网络质量指标。

    bash
    iperf -c <server_ip> -u
  • -b <bandwidth>:在使用 UDP 测试时,指定带宽。例如 -b 10M 表示使用 10 Mbps 的带宽发送数据。

  • -i <interval>:指定报告的时间间隔。例如,-i 1 每秒输出一次带宽报告。

  • -t <time>:指定测试的持续时间,默认是 10 秒。例如,-t 30 表示测试 30 秒。

  • -n <number>:指定要发送的字节数或数据量。例如,-n 100M 表示发送 100 MB 数据。

  • -f <format>:指定报告输出的格式,k 为 KBytes,m 为 MBytes,g 为 GBytes。

  • -w <window>:指定 TCP 窗口大小。例如,-w 512K 指定 512 KB 的窗口大小。

  • -P <num>:使用多个并发连接进行测试。iperf 会启动 num 个并发会话进行测试,通常用于测试多线程或多路复用环境下的带宽。

  • -d:双向测试,即同时进行上传和下载测试。

  • -r:进行往返测试,即先进行下载测试,然后进行上传测试。

  • -B <bind_ip>:指定客户端要绑定的本地 IP 地址。

  • -V:使用 IPv6 地址进行测试。

示例

  1. 最简单的 TCP 带宽测试

    bash
    # 在服务器端启动 iperf iperf -s # 在客户端发起测试 iperf -c <server_ip>
  2. 进行 UDP 带宽测试

    bash
    iperf -s -u iperf -c <server_ip> -u -b 10M
  3. 多线程测试(多个并发连接)

    bash
    iperf -c <server_ip> -P 5
  4. 指定测试时长

    bash
    iperf -c <server_ip> -t 60
  5. 双向带宽测试

    bash
    iperf -c <server_ip> -d
  6. 查看结果每秒报告

    bash
    iperf -c <server_ip> -i 1

输出解读

运行 iperf 后,你会看到一些输出数据,主要包括以下内容:

  • 传输数据量(Transfer):显示在测试中传输的数据总量。
  • 带宽(Bandwidth):表示测得的带宽,通常以 Mbps 为单位。
  • 丢包率(UDP 模式下):显示在测试过程中丢失的包数及其占总包数的比例。
  • 抖动(Jitter, UDP 模式下):显示网络传输的抖动情况,通常用于测量实时传输的稳定性。

总结

iperf 是一个功能强大且易于使用的工具,适用于各种网络性能测试。通过灵活地使用选项,你可以测试网络的不同方面,并根据需要调整测试参数来诊断和优化网络性能。

posted @ 2024-08-20 21:24  redrobot  阅读(6)  评论(0编辑  收藏  举报