×

/iperf3/

2 个文件夹 2 个文件 总计 17 KiB
列表 网格
名称
大小 更新时间
返回上级目录
3.18/
3.19/
build-iperf3.yml
8.7 KiB
README
8.7 KiB

iperf3 交叉编译

Build status

作为服务端:

# 启动 iperf3 服务器,监听默认端口 5201
iperf3 -s

# 启动服务器并指定监听端口
iperf3 -s -p 5000

# 以守护进程模式运行服务器
iperf3 -s -D

# 服务器处理一个客户端连接后自动退出
iperf3 -s -1

# 限制服务器的总带宽,例如限制为 100Mbit/s
iperf3 -s --server-bitrate-limit 100M

# 指定服务器监听的 IP 地址(适用于多网卡)
iperf3 -s -B 192.168.1.1

# 设置服务器端 CPU 绑定到特定核心,例如绑定到核心 2
iperf3 -s -A 2

# 以 JSON 格式输出测速结果
iperf3 -s -J

# 服务器端以 JSON 流模式输出数据
iperf3 -s --json-stream

# 服务器日志输出到指定文件
iperf3 -s --logfile /var/log/iperf3.log

# 在每个报告间隔强制刷新输出
iperf3 -s --forceflush

# 服务器空闲指定时间后自动重启(例如 300 秒)
iperf3 -s --idle-timeout 300

作为客户端:

# 连接 iperf3 服务器进行测速(默认 TCP 模式)
iperf3 -c 192.168.1.1

# 连接服务器并指定端口
iperf3 -c 192.168.1.1 -p 5000

# 使用 UDP 模式进行测速
iperf3 -c 192.168.1.1 -u

# 设置 UDP 目标带宽(例如 50Mbit/s)
iperf3 -c 192.168.1.1 -u -b 50M

# 设定测速时间(例如 30 秒)
iperf3 -c 192.168.1.1 -t 30

# 设定要发送的总数据量(例如 100MB)
iperf3 -c 192.168.1.1 -n 100M

# 设定要发送的块数(例如 10000 块)
iperf3 -c 192.168.1.1 -k 10000

# 并行多个连接进行测速(例如 5 个)
iperf3 -c 192.168.1.1 -P 5

# 反向模式(服务器向客户端发送数据)
iperf3 -c 192.168.1.1 -R

# 双向模式(服务器和客户端同时发送和接收数据)
iperf3 -c 192.168.1.1 --bidir

# 设置 TCP 窗口大小(例如 512KB)
iperf3 -c 192.168.1.1 -w 512K

# 指定 TCP 拥塞控制算法(Linux & FreeBSD)
iperf3 -c 192.168.1.1 -C cubic

# 设置最大 TCP 段大小(MSS,例如 1460 字节)
iperf3 -c 192.168.1.1 -M 1460

# 禁用 Nagle 算法(适用于小数据包低延迟传输)
iperf3 -c 192.168.1.1 -N

# 强制使用 IPv4 进行测速
iperf3 -c 192.168.1.1 -4

# 强制使用 IPv6 进行测速
iperf3 -c 192.168.1.1 -6

# 设置 IP 服务类型(ToS 值,例如 64)
iperf3 -c 192.168.1.1 -S 64

# 指定 IPv6 Flow Label(仅支持 Linux)
iperf3 -c 192.168.1.1 -L 100

# 使用零拷贝(Zero-Copy)方式发送数据
iperf3 -c 192.168.1.1 -Z

# 在测试前进行预热,忽略前 N 秒的数据(例如 5 秒)
iperf3 -c 192.168.1.1 -O 5

# 设置每行输出的标题(用于日志标识)
iperf3 -c 192.168.1.1 -T "测试1"

# 以 JSON 格式输出测速结果
iperf3 -c 192.168.1.1 -J

# 让客户端获取服务器端的测速结果
iperf3 -c 192.168.1.1 --get-server-output

# 在 UDP 测试中使用 64-bit 计数器
iperf3 -c 192.168.1.1 --udp-counters-64bit

# 使用固定模式的 payload 数据(而不是随机数据)
iperf3 -c 192.168.1.1 --repeating-payload

# 设置 IPv4 数据包不分片
iperf3 -c 192.168.1.1 --dont-fragment

帮助信息:

iperf3 -h
用法: iperf3 [-s|-c 主机] [选项]
       iperf3 [-h|--help] [-v|--version]

服务器或客户端:
  -p, --port      #         监听/连接的服务器端口
  -f, --format   [kmgtKMGT] 结果显示格式: Kbits, Mbits, Gbits, Tbits
  -i, --interval  #         生成吞吐量报告的时间间隔(秒)
  -I, --pidfile file        将进程 ID 写入文件
  -F, --file name           发送/接收指定文件
  -A, --affinity n[,m]      设置 CPU 亲和性,绑定进程到核心 n
                             (可选: 客户端可指定 m 作为服务器端核心号)
  -B, --bind <主机>[%<设备>] 绑定到指定地址的网络接口
                            (可选: <设备> 等效于 `--bind-dev <设备>`)
  --bind-dev <设备>         绑定到指定网络接口 (使用 SO_BINDTODEVICE)
  -V, --verbose             输出更详细的信息
  -J, --json                以 JSON 格式输出
  --json-stream             以行分隔的 JSON 格式输出
  --logfile f               将输出发送到日志文件
  --forceflush              强制在每个时间间隔刷新输出
  --timestamps<=格式>       在每行输出前添加时间戳
                            (可选: "=" 和 strftime(3) 兼容的格式字符串)
  --rcv-timeout #           数据接收超时(默认 120000 毫秒)
  --snd-timeout #           TCP 数据未确认超时(单位: 毫秒,默认为系统设置)
  -d, --debug[=#]           输出调试信息
                            (可选: "=" 设置调试级别 1-4,默认 4 - 全部消息)
  -v, --version             显示版本信息并退出
  -h, --help                显示本帮助信息并退出

服务器专用:
  -s, --server              以服务器模式运行
  -D, --daemon              以守护进程模式运行服务器
  -1, --one-off             处理一个客户端连接后退出
  --server-bitrate-limit #[KMG][/#]   设置服务器的总比特率限制(默认 0 = 无限制)
                            (可选: 斜杠后跟秒数,用于平均总数据速率,默认 5 秒)
  --idle-timeout #          如果服务器空闲 # 秒则重启(默认: 不超时)

客户端专用:
  -c, --client <主机>[%<设备>] 以客户端模式运行,连接到 <主机>
                              (可选: <设备> 等效于 `--bind-dev <设备>`)
  -u, --udp                 使用 UDP 而非 TCP
  --connect-timeout #       控制连接建立超时(毫秒)
  -b, --bitrate #[KMG][/#]  目标比特率(单位: bit/sec,0 表示不限速)
                            (UDP 默认 1 Mbit/sec,TCP 默认不限速)
                            (可选: 斜杠后跟数据包数,用于突发模式)
  --pacing-timer #[KMG]     服务器定时器节奏,单位: 微秒(默认 1000)
                            (已废弃,仅用于兼容旧版本服务器)
  -t, --time      #         发送数据的持续时间(秒)(默认 10 秒)
  -n, --bytes     #[KMG]    发送指定字节数(替代 -t 选项)
  -k, --blockcount #[KMG]   发送指定数据块数(替代 -t 或 -n 选项)
  -l, --length    #[KMG]    读/写缓冲区长度
                            (默认: TCP 128 KB, UDP 1460 或动态调整)
  --cport         <端口>    绑定客户端特定端口(适用于 TCP 和 UDP,默认: 临时端口)
  -P, --parallel  #         并行运行的客户端流数
  -R, --reverse             反向模式(服务器发送,客户端接收)
  --bidir                   双向模式(客户端和服务器同时发送和接收数据)
  -w, --window    #[KMG]    设置发送/接收缓冲区大小
                            (间接设置 TCP 窗口大小)
  -C, --congestion <算法>   设置 TCP 拥塞控制算法(仅适用于 Linux 和 FreeBSD)
  -M, --set-mss   #         设置 TCP/SCTP 最大段大小(MTU - 40 字节)
  -N, --no-delay            禁用 Nagle 算法(启用 TCP/SCTP 低延迟模式)
  -4, --version4            仅使用 IPv4
  -6, --version6            仅使用 IPv6
  -S, --tos N               设置 IP 服务类型(0-255)
                            (支持十进制、八进制和十六进制,如 52, 064, 0x34)
  --dscp N or --dscp val    设置 IP DSCP 值(0-63 或符号表示)
                            (支持十进制、八进制和十六进制,参见 --tos)
  -L, --flowlabel N         设置 IPv6 流标签(仅 Linux 支持)
  -Z, --zerocopy            使用“零拷贝”方式发送数据
  -O, --omit N              预热测试 N 秒,忽略预热期间的统计信息
  -T, --title str           在每行输出前添加自定义前缀
  --extra-data str          在客户端和服务器 JSON 输出中包含额外数据
  --get-server-output       获取服务器端的测试结果
  --udp-counters-64bit      使用 64 位计数器统计 UDP 测试数据包
  --repeating-payload       使用重复模式填充数据,而非随机填充(类似 iperf2)
  --dont-fragment           设置 IPv4 不分片(Don't Fragment)标志

[KMG] 选项支持 K/M/G 后缀,分别代表千/兆/吉比特或字节。