iOS 侧用 iperf3 打的是 Wi‑Fi/热点吞吐,不是 HCI。工程里没有内置 iperf,要在手机上另开 App,对端用命令行或者iperf应用。
准备
| 端 | 工具 | 来源 |
|---|---|---|
| iPhone / iPad | App Store 搜 iPerf3,选能当 Server + Client 的(例如 iPerf3 客户端与服务器) | App Store 官方 |
| Mac | brew install iperf3 | Homebrew 官方 |
| OPPO | 工程机/测试包里的 iperf3,或 Google Play 的 Magic iPerf | 官方商店;不要下不明 APK |
iPhone 首次打开 App:允许 本地网络。测试时 App 必须在前台,不要锁屏。
三种拓扑(按互传场景选)
A. OPPO 连 iPhone 热点(最常用)
- iPhone 开个人热点,iperf App 开 Server,端口
5201。 - OPPO 连上热点后看网关,一般是
172.20.10.1(就是 iPhone)。 - OPPO 当 Client:
# TCP,测 30s,每秒打一行(对齐互传 HTTP 大流)
iperf3 -c 172.20.10.1 -p 5201 -t 30 -i 1
# 反向:iPhone → OPPO(模拟 iOS 发文件)
iperf3 -c 172.20.10.1 -p 5201 -t 30 -i 1 -R
# 多流打满(Wi‑Fi 单流经常打不满)
iperf3 -c 172.20.10.1 -p 5201 -t 30 -P 4
B. iPhone 连 OPPO 热点(SoftAP)
- OPPO 开热点,跑 Server:
iperf3 -s -p 5201 - iPhone 连上,看对端 IP(常见
192.168.43.1/192.168.0.1) - iPhone App 当 Client,填这个 IP,端口
5201
C. 同网 WLAN(办公室 Wi‑Fi)
两端都连同一 AP,一侧 Server、一侧 iperf3 -c <对端IP>。这测的是办公室 AP,不是 互传 SoftAP 路径。
参数怎么对互传
| 目的 | 建议 |
|---|---|
| 对标互传 TCP 文件流 | TCP,-t 30,先 -P 1 再 -P 4 |
| 对标同网 UDP 测速失败 | UDP:iperf3 -c -u -b 50M -t 15,看丢包/抖动 |
| 模拟 iOS → OPPO 发文件 | Client 在 OPPO,加 -R(Server=iPhone 往外推) |
| 模拟 OPPO → iOS 发文件 | Client 在 OPPO,不加 -R(OPPO 往 iPhone 推) |
不要用 Speedtest / 浏览器测网:那走的是蜂窝或外网,和互传链路不是一条路。
读结果时注意
- 看 receiver bitrate,不要只看 sender。
- iPhone 热点开了 最大兼容性 时多半是 2.4G,iperf 往往只有几~十几 Mbps,和互传
wlanResult=0回退 SoftAP 对得上。 - 关掉最大兼容性、热点升 5G 后再打一轮,对比才有意义。
- 一端在热点 NAT 后面时,Server 放在开热点的那台(iPhone=
172.20.10.1),Client 连网关;反过来经常连不上。
OPPO 开热点,跑 Server:iperf3 -s -p 5201 -->怎么操作
这是 OPPO 当热点 + iperf3 Server 的实操。Server 必须一直挂着,关掉终端或退到后台,iPhone 就连不上。
1. 开热点
-
OPPO:设置 → 个人热点(有的版本在 连接与共享 / 更多连接)。
-
打开 个人热点。
-
建议:频段选 5GHz(不要最大兼容/仅 2.4G),记下 SSID、密码。
-
确认控制中心热点图标已亮。
先开热点,再起 Server。热点一关,网关 IP 会变。
2. 查热点 IP(给 iPhone 填)
电脑 USB 连 OPPO,开 USB 调试:
adb devices
adb shell ip addr | grep -A2 '192.168'
看 ap0 / wlan1 / softap0 上的地址。ColorOS SoftAP 常见是 192.168.43.1,以实际为准。
没有 adb 时:iPhone 连上该热点后,看 Wi‑Fi 详情里的 路由器/网关,那个就是 Server IP。
3. 起 Server:iperf3 -s -p 5201
方式 A:adb(实验室优先)
先看机子上有没有:
adb shell iperf3 -v
有版本号就直接:
adb shell iperf3 -s -p 5201
成功时终端会停住,类似:
-----------------------------------------------------------
Server listening on 5201
-----------------------------------------------------------
这扇窗口不要关,不要按 Ctrl+C,手机不要锁屏(可先开「充电时保持唤醒」)。
没有 iperf3 命令时,不要下不明 APK。改用方式 B。
方式 B:手机 App(无命令行时)
-
到 Google Play 装官方 Magic iPerf(或 OPPO 软件商店里能搜到的 iperf3)。
-
模式选 Server。
-
Port 填
5201,协议 TCP。 -
点 Start / Listen。
-
App 留在前台。
4. iPhone 侧怎么打
-
iPhone 连这个 OPPO 热点。
-
打开 iPerf3 App,当 Client。
-
Server 填刚才的 IP(例如
192.168.43.1),端口5201。 -
先 TCP、30 秒、1 条流。
对端一连上,OPPO 那侧会刷:
Accepted connection from 192.168.43.x
[ ID] Interval Transfer Bitrate
5. 常见卡住
| 现象 | 处理 |
|---|---|
| iperf3: not found | 系统没带二进制,改用 Play 官方 App |
| iPhone 连不上 5201 | Server 窗口已关 / App 进后台;或填错 IP(要用网关,不是 iPhone 自己的 IP) |
| 能连热点但不能测速 | 热点开在 2.4G;或 Server 绑到了别的网卡,先关 STA Wi‑Fi 再只开热点 |
| 测到 0 或秒断 | OPPO 省电杀后台;充电 + 前台 + adb 窗口别断 |
先在 OPPO 上看到 Server listening on 5201,再让 iPhone 去连。若 adb shell iperf3 -v 报 not found,把完整输出发我,我按你这台机改下一步。
Server 填刚才的 IP(例如 192.168.43.1),端口 5201。--> 刚才的 IP 是什么
刚才说的 192.168.43.1 只是 Android 热点的常见举例,不是这台机现在的地址。
当前这台已连接的 OPPO(PGEM10)热点网关是:
10.34.154.203
iPhone 里 Server 就填这个。热点网卡是 wlan2(不是办公室 Wi‑Fi 的 wlan0 10.103.53.87,那个不要填)。
端口按你实际跑的工具:
-
HE.NET 自带
iperf:5001 -
iPerf3 App:5201
iPhone 要先连上这台 OPPO 的热点,再开 Client。热点关了再开会变 IP,到时候重新查:
adb shell ip -4 addr show wlan2
PM3734899I:Downloads 3734899I$ adb shell ip -4 addr show wlan2
85: wlan2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc htb state UP group default qlen 3000
inet 10.34.154.203/24 brd 10.34.154.255 scope global wlan2
valid_lft forever preferred_lft forever
iPhone 里 Server 填 10.34.154.203。
接着:
- iPhone 连上这台 OPPO 的热点
- OPPO 上 Server 已经在听(窗口别关)
- iPhone 开 Client:
- HE.NET 的
iperf→ 端口 5001 - iPerf3 → 端口 5201
- HE.NET 的
10.34.154.255 是广播地址,不要填。wlan0 上的办公室 IP 也不要填。