CaptiveMgr 中文文档 下载 App

校园网和酒店 WiFi 等强制门户网络的处理

什么是强制门户网络

连 WiFi 后自动弹出一个登录页或验证页的网络:

这类网络的技术实现是:HTTP 请求被劫持,返回 302 重定向到登录页。Captive Portal 检测机制就是为识别这种场景设计的。

CaptiveMgr 设置对强制门户的影响

保持检测开启 + 换国内服务器 → 正常

换国内服务器之后,探测请求能正常返回 204,系统判定「有网」。这没问题——因为强制门户网络会同时劫持所有 HTTP 请求,包括你设的国内服务器地址。这时候:

  1. 探测请求发到 connect.rom.miui.com/generate_204
  2. 校园网劫持了这个请求,返回 302 到登录页
  3. 系统收到 302(不是 204),判定「这是强制门户」
  4. 触发强制门户流程,弹登录页

所以保持检测开启、换服务器方案对强制门户网络是友好的——该弹的登录页照样弹。

关闭检测 → 手动触发

关掉检测之后,系统不再跑探测,自然也不会识别强制门户。连上校园网/酒店 WiFi 后:

推荐用这个 URL:http://connect.rom.miui.com/generate_204——它本来就是一个探测地址,强制门户网络会劫持它并返回登录页。

关闭检测用户的日常操作

每次连新的公共 WiFi,都要手动触发一次登录页。习惯了也不麻烦,但偶尔会忘——以为连上了就能上网,结果所有 HTTP 请求都被拦截,表现为「部分网站打不开」。

建议

特殊情况:强制门户网络不让用探测域名

极个别强制门户网络做了域名白名单,只有他们允许的 HTTP 请求能通。这种场景下连国内服务器 URL 也会被劫持——但这不影响 CaptiveMgr 的行为,因为系统仍然能收到非 204 的响应并触发登录页。真正的问题是登录完成后能不能让探测请求正确返回 204——取决于强制门户的认证逻辑,不是 CaptiveMgr 能解决的。