我的桌面开发机器是 Ubuntu 22.04.3 LTS,运行 apache2 作为 Web 服务器。我的 iPhone 是运行 iOS 版本 17.3.1 的 iPhone 12 Pro。Ubuntu 机器上禁用了 UFW。我家里只有一个网络,由 Ubiquiti 网关设备供电。
有时,我需要通过 iPhone 上的网络浏览器通过 IP 地址访问我的网络开发服务器。
从历史上看,这从来都不是问题。然而最近(我说不出具体是什么时候……),我的 iPhone 根本无法访问这个服务器。通过网络浏览器发出的 HTTP/HTTPS 请求最终都超时了,手机无法使用我安装的名为“iNetTools”的网络工具应用程序 ping 服务器
此网络上的其他机器(例如我的笔记本电脑)可以毫无问题地访问 Ubuntu Web 服务器,也可以 ping Ubuntu 机器。同样,Ubuntu 机器可以 ping iPhone。我已通过 Unifi 软件确认 iPhone 和 Ubuntu 服务器都在同一个 5ghz 频道上,甚至在同一个 AP(网状网络)上,只是为了消除这些细微差别作为潜在变量。
我发现,在从 Ubuntu 机器 ping iPhone 后,来自 iPhone 的 HTTP/HTTPS 请求突然开始工作,然后 iPhone 也能够 ping Ubuntu 机器。这种情况会持续一段时间,直到最终停止工作(iPhone 再次无法访问 Ubuntu 服务器),然后像时钟一样,从 Ubuntu 服务器 ping iPhone 恢复功能。
我觉得这表明我的 iPhone 上有某种隐私设置(可能是由于最近的 iOS 更新??)正如我提到的,其他设备能够持续与该服务器(以及彼此)通信而不会出现问题。
我看到 Ubiquiti/Unifi 客户端列表中列出了两个设备(Ubuntu 服务器和 iPhone)。除非 Ubuntu 服务器首先向 iPhone 发起 ping,否则我无法从 iPhone ping Ubuntu 服务器。此 ping 总是需要几秒钟才能成功;第一次响应通常约为 ~3000ms,然后是 ~2000ms,然后是 ~1000ms,之后响应时间符合您的预期,<10ms。