HTTPS 检测选项的作用与安卓版本关系
什么是 HTTPS 检测
安卓 7(Android N)引入了 HTTPS 探测通道——在原有的 HTTP 探测之外,系统还会发一个 HTTPS 请求到同一个(或不同的)验证服务器。两个请求都返回 204 才算判定「有网」。
HTTPS 探测的好处:
- HTTP 探测可能被强制门户的登录页(也是 HTTP)干扰,误判成「没有强制门户」
- HTTPS 探测更难被中间人劫持,判定更可靠
CaptiveMgr 里的 HTTPS 选项
主界面里有一个 HTTPS 开关(或「启用 HTTPS 检测」):
- 开——系统会同时跑 HTTP 和 HTTPS 两个探测
- 关——只跑 HTTP 探测(Android 6 及以下的行为)
建议保持开启。HTTPS 探测只会更准确,没什么坏处。
HTTP 和 HTTPS 地址可以不同
在 Android 7+ 的系统里,settings global 里存了两个独立的参数:
captive_portal_http_urlcaptive_portal_https_url
可以指向同一个服务器(同一个域名,HTTP 和 HTTPS 协议各一条),也可以分别指向不同服务器。CaptiveMgr 允许你分别设置。
哪些服务器支持 HTTPS
国内主要厂商的验证服务器 HTTPS 版本都可用:
| 服务器 | HTTP | HTTPS |
|---|---|---|
| 小米 | http://connect.rom.miui.com/generate_204 | https://connect.rom.miui.com/generate_204 |
| 华为 | http://connectivitycheck.platform.hicloud.com/generate_204 | https://connectivitycheck.platform.hicloud.com/generate_204 |
| Vivo | http://wifi.vivo.com.cn/generate_204 | 官方可能未提供 HTTPS 版本 |
| 高通中国 | http://www.qualcomm.cn/generate_204 | HTTPS 版本不一定可用 |
选服务器时记得用测速工具分别测 HTTP 和 HTTPS 地址的可达性。
安卓 6 及以下
Android 6(Marshmallow)及更早版本不支持 HTTPS 探测,只有 HTTP 通道。CaptiveMgr 在这些系统上会自动隐藏 HTTPS 相关选项。