Files
StudyDiary/10-WebClipper/【新提醒】飞牛系统 fnOS 上安装 & 使用 iperf3 全指南 - 攻略分享 飞牛私有云论坛 fnOS.md
T
2026-07-23 20:36:13 +08:00

276 lines
5.5 KiB
Markdown
Raw Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
**iperf3 是最常用的网络吞吐测试工具之一,可以在两台设备之间通过“客户端 ↔ 服务端”产生测试流量,测出链路的:**
* **TCP 吞吐(带宽上限、拥塞、窗口等)**
* **UDP 吞吐 + 丢包 + 抖动(jitter)**
* **单向/反向/双向**
* **多连接并发能力**
* **长时间稳态、突发等**
> **一句话原理**:一台机器跑 `iperf3 -s` 当服务端;另一台跑 `iperf3 -c <server_ip>` 当客户端。 **在 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 <NAS_IP> -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 <NAS_IP>
```
* * *
4\. 飞牛 NAS 场景下常用测速方式
--------------------
\*\*下面所有命令都在 \*\***客户端** 执行。
### 4.1 测上行 TCP(Client → NAS)
```null
iperf3 -c <NAS_IP> -t 30 -i 1
```
* `-t 30` 测 30 秒(默认 10 秒)
* `-i 1` 每秒输出一次(看波动)
* * *
### 4.2 测下行 TCP(NAS → Client)
```null
iperf3 -c <NAS_IP> -R -t 30 -i 1
```
`-R` 表示反向测试(server 发 → client 收)。
* * *
### 4.3 多并发 TCP(测跑满能力)
**在 2.5G/10G 或高延迟链路下,单流可能跑不满,用多流:**
```null
iperf3 -c <NAS_IP> -P 8 -t 30 -i 1
```
`-P` = 并发流数量。
* * *
### 4.4 双向同时测(上行 + 下行)
```null
iperf3 -c <NAS_IP> --bidir -t 30 -i 1
```
**适合验证全双工链路或 NAT/防火墙策略。**
* * *
### 4.5 UDP 测吞吐 + 丢包 + jitter(常用于 Wi-Fi / 实时业务)
```null
iperf3 -c <NAS_IP> -u -b 300M -l 1400 -t 30 -i 1
```
* `-u` 使用 UDP
* `-b 300M` 目标速率(UDP **必须指定**)
* `-l 1400` 包长(避免超过 MTU 分片)
* * *
### 4.6 UDP 找上限(压到开始丢包)
**从小到大逐步加速率,例如:**
```null
iperf3 -c <NAS_IP> -u -b 500M -l 1400 -t 20 -i 1
```
**当丢包明显上升、jitter 飙升,即接近链路上限。**
* * *
### 4.7 长时间稳态(看是否降速/抖动)
```null
iperf3 -c <NAS_IP> -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
```
* * *