利益相关声明:作者与文中产品有直接的利益相关(开发者、自家产品等)

家里网络出问题时,很多人的第一反应都是先看手机右上角:Wi-Fi 还连着,信号也正常。然后打开手机测速软件,可是速度依然有几百兆,就会产生一个疑惑:既然 Wi-Fi 没断、速度也不慢,那到底哪里出了问题?

这类情况我自己过去也遇到过很多次。有时是网页打开加载缓慢,有时是 NAS 传输速度不稳定,有时从客厅走到卧室之后,Wi-Fi 名字完全没变,但网络体验明显变差。让人感到困惑的场景是那些非完全断网,“看起来没坏,但就是不太对”的情况。后来我做 WiFi Health Check,最初就是想解决这个问题。

Wi-Fi 正常,其实含义不一样

我们平时很容易把问题统一归结成“Wi-Fi 不好”,但真正排查时会发现,手机连接无线网络、局域网通信、DNS 解析和公网访问其实是几件不同的事。

比如 NAS 无法访问时,网页可能依然正常;手机可以连接路由器,也不代表 Internet 一定正常。如果家里有多个 AP,手机虽然始终显示相同的 Wi-Fi 名称,背后实际连接的无线节点也可能不同。

所以后来我不太习惯直接问“Wi-Fi 好不好”,而是会拆成几个更具体的问题:外网能不能访问?DNS 是否正常?网关是什么?局域网中的目标设备是否稳定?如果有多个 AP,手机现在到底连在哪一个节点上?

WiFi Health Check 的设计基本就是围绕这些问题展开的。

测速app有用吗?

测速很有价值,但它主要回答的是“网络现在能跑多快”。而我更想知道的是“问题到底在哪里”。
如果 NAS 连不上,即使测速显示 500 Mbps,也无法解释 NAS 为什么异常。如果从客厅走到卧室后网络变差,再测一次下载速度,也不一定能告诉我手机是不是仍然连接着远处的 AP。

所以 WiFi Health Check 的一键诊断更关注公网连通性、DNS、本机 IP、SSID、BSSID、Wi-Fi 安全类型和网关等基础信息。它们单独看都不复杂,但放在一起,可以快速还原当前网络环境。

在判断网络状态时,我也尽量避免过度下结论。比如 Gateway TCP 探测 出现 Timeout,并不意味着 Internet 一定断了。某些路由器本身就不会响应特定 TCP 端口,因此网关探测更多只是辅助信息。如果公网网站仍然可以访问,就不能简单把整个网络判定为故障。

对我来说,网络诊断工具不仅要找到异常,也应该尽量避免把正常现象误判成问题。

LAN 的问题,与测速无关

我的日常网络里有 NAS、MINI服务器、AP 和虚拟化主机,所以很多所谓的“网络问题”其实和公网完全无关。如果网页正常,DNS 也正常,但某台 NAS 时通时不通,那么排查重点已经应该回到局域网。因此我后来加入了 LAN TCP Continuous Test。输入一个 IP 地址和 TCP 端口后,可以持续观察连接的延迟、超时和稳定性。

相比只测试一次,我更喜欢连续测试,因为很多问题并不是完全掉线,而是偶尔 Timeout。单次检查可能正好成功,看起来没有问题,但连续运行一段时间后,这类间歇性异常就更容易被发现。

同一个 Wi-Fi 名字,不代表同一个 AP

WiFi Health Check 里我自己比较喜欢的另一个功能是 Roaming Test。现在很多家庭都会使用多个 AP 或 Mesh,并让它们使用相同的 SSID。从客厅走到卧室,iPhone 上看到的可能一直都是同一个 Wi-Fi 名称,但真正连接的 AP 已经变化,或者应该变化却没有变化。

这里需要看的就是 BSSID。可以简单理解为,SSID 是 Wi-Fi 网络的名字,而 BSSID 更接近当前实际连接的无线节点。Roaming Test 会在移动过程中持续记录 SSID 和 BSSID。拿着手机从一个房间走到另一个房间,回来以后就可以看到手机到底有没有完成 AP 切换。

对于排查家庭多 AP 覆盖和漫游问题,这比单纯看到“Wi-Fi 满格”更有意义。

为什么没有 RSSI 和信道信息?

既然是一款 Wi-Fi 工具,很自然会有人问,为什么不显示 RSSI、Channel、频段或者 PHY Rate。原因主要来自 iOS 的限制。普通 App Store 应用无法像专业无线分析设备那样稳定获得完整的底层 Wi-Fi 信息。所以我没有为了让界面看起来更“专业”,加入一堆并不能可靠获取的数据。WiFi Health Check 也不是无线频谱分析仪,它更关注 iPhone 实际能够观察到的网络行为:公网、DNS、LAN TCP、SSID、BSSID 和漫游。

后来我还加入了 LAN Scan,用来快速看看当前局域网里能发现哪些设备和部分常见开放端口。它同样不是为了代替专业网络扫描器,而是满足一个很简单的现场需求:NAS 还在不在?打印机是不是在线?某台设备还能不能找到?

最后

WiFi Health Check 不是后台监控系统,也不是抓包或无线频谱分析工具。我更愿意把它理解成一个放在 iPhone 里的网络排障小工具箱。

当 Wi-Fi 明明还连着,但网络体验就是不太对的时候,它不一定能够直接替你解决问题,但至少可以先把问题拆开:是公网、DNS、局域网设备,还是 AP 漫游?

对我来说,这比一句“Wi-Fi 明明是满格啊”更有用。