**iperf3 是最常用的网络吞吐测试工具之一,可以在两台设备之间通过“客户端 ↔ 服务端”产生测试流量,测出链路的:** * **TCP 吞吐(带宽上限、拥塞、窗口等)** * **UDP 吞吐 + 丢包 + 抖动(jitter)** * **单向/反向/双向** * **多连接并发能力** * **长时间稳态、突发等** > **一句话原理**:一台机器跑 `iperf3 -s` 当服务端;另一台跑 `iperf3 -c ` 当客户端。 **在 fnOS 上最推荐用 Docker 跑服务端。** 0\. 推荐方案 -------- * **推荐**:fnOS(飞牛 NAS)用 **Docker 部署 iperf3 Server** * **优点:一键、干净、升级方便** * **备选**:如果你已有 SSH 权限,也可以在 fnOS 终端里直接安装 iperf3 * * * 1\. 方案 A:Docker 在 fnOS 上部署 iperf3 服务端(推荐) ----------------------------------------- ### 1.1 图形界面部署(最简单) 1. **打开 fnOS 的** **Docker** 应用 2. **进入** **镜像仓库/镜像管理** 3. **搜索** `iperf3` 4. **选择镜像(例如** `networkstatic/iperf3`)并下载 5. **创建容器:** * **网络模式**:建议 `host` * \*\*或者端口映射 \*\*`5201:5201` * **启动命令/command**:`-s`(server 模式) 6. **启动容器后,日志里看到:** * `Server listening on 5201` **说明服务端已就绪** > **为什么建议 host?** \*\* \*\*避免端口映射、NAT 或容器网络限制导致测速偏差。 * * * ### 1.2 Docker Compose 部署(喜欢 compose 的同学) 在 fnOS 的 compose/stack 面板里新建: ```null services: iperf3: image: networkstatic/iperf3:latest container_name: iperf3 command: -s network_mode: host restart: unless-stopped ``` 保存并启动即可。 ### 1.3 端口/防火墙说明 * **iperf3 默认监听:5201/TCP + 5201/UDP** * **如果 NAS 有防火墙/安全策略,记得放行端口** * ****也可以换端口:**** **服务端:** ```null iperf3 -s -p 6000 ``` **客户端:** ```null iperf3 -c -p 6000 ``` * * * 2\. 方案 B:SSH 进 fnOS 直接安装(有终端权限时) -------------------------------- **如果你已开启 SSH(fnOS 系统设置可开),终端里尝试:** ```null # Debian/Ubuntu 系 sudo apt update sudo apt install iperf3 ​ # CentOS/RHEL 系 sudo yum install iperf3 ``` **如果包管理不可用或装不上,回到 Docker 方案即可(最稳)。** * * * 3\. NAS 当服务端,客户端怎么测 ------------------- ### 3.1 fnOS/NAS 上启动 server * \*\*Docker 方式已经 \*\*`-s` 就不用再管 * **命令行方式:** ```null iperf3 -s ``` * * * ### 3.2 客户端测速(任何 PC/服务器/路由器) **最基础 TCP 上行(客户端 → NAS):** ```null iperf3 -c ``` * * * 4\. 飞牛 NAS 场景下常用测速方式 -------------------- \*\*下面所有命令都在 \*\***客户端** 执行。 ### 4.1 测上行 TCP(Client → NAS) ```null iperf3 -c -t 30 -i 1 ``` * `-t 30` 测 30 秒(默认 10 秒) * `-i 1` 每秒输出一次(看波动) * * * ### 4.2 测下行 TCP(NAS → Client) ```null iperf3 -c -R -t 30 -i 1 ``` `-R` 表示反向测试(server 发 → client 收)。 * * * ### 4.3 多并发 TCP(测跑满能力) **在 2.5G/10G 或高延迟链路下,单流可能跑不满,用多流:** ```null iperf3 -c -P 8 -t 30 -i 1 ``` `-P` = 并发流数量。 * * * ### 4.4 双向同时测(上行 + 下行) ```null iperf3 -c --bidir -t 30 -i 1 ``` **适合验证全双工链路或 NAT/防火墙策略。** * * * ### 4.5 UDP 测吞吐 + 丢包 + jitter(常用于 Wi-Fi / 实时业务) ```null iperf3 -c -u -b 300M -l 1400 -t 30 -i 1 ``` * `-u` 使用 UDP * `-b 300M` 目标速率(UDP **必须指定**) * `-l 1400` 包长(避免超过 MTU 分片) * * * ### 4.6 UDP 找上限(压到开始丢包) **从小到大逐步加速率,例如:** ```null iperf3 -c -u -b 500M -l 1400 -t 20 -i 1 ``` **当丢包明显上升、jitter 飙升,即接近链路上限。** * * * ### 4.7 长时间稳态(看是否降速/抖动) ```null iperf3 -c -t 300 -i 5 ``` **测 5 分钟,每 5 秒一报。** * * * 5\. 结果怎么看 --------- ### 5.1 TCP **看最后两行:** * `sender`:客户端发出去的带宽 * `receiver`:NAS 实际收到的带宽 **两者应接近;差距大通常说明重传/拥塞/丢包。** * * * ### 5.2 UDP **重点三项:** * **带宽(Mbits/sec)** * **jitter(ms)** * **丢包率(lost/total)** **丢包 > 1% 或 jitter 很大,对语音/视频/游戏会明显影响。** * * * 6\. 常见坑 & 排查 ------------ 1. **测速比预期低** * **先试** `-P 4/8/16` 多流 * **单流 TCP 在高带宽链路上经常跑不满** 2. **UDP 忘了加 `-b`** * **默认只有 1M,测速会假低** 3. **容器网络模式不对** * **推荐** `host` * `bridge` 可能被 NAT/限速影响 4. **MTU/分片导致性能怪异** * **UDP 用** `-l 1400` * **TCP 用** `-M 1400` * * * 7\. 一键抄走的飞牛 NAS 测速模板 -------------------- **假设 NAS IP =** `192.168.1.10` ```null # 1) 上行 TCP iperf3 -c 192.168.1.10 -t 30 -i 1 ​ # 2) 下行 TCP iperf3 -c 192.168.1.10 -R -t 30 -i 1 ​ # 3) 多流跑满 iperf3 -c 192.168.1.10 -P 8 -t 30 -i 1 ​ # 4) UDP Wi-Fi/实时压测 iperf3 -c 192.168.1.10 -u -b 300M -l 1400 -t 30 -i 1 ``` * * *