- Purple
- Captive portals: a complete guide
- Android 上的 Captive Portal 登录:Cisco Meraki、HPE Aruba 和 Ubiquiti UniFi 的部署清单
Android 上的 Captive Portal 登录:Cisco Meraki、HPE Aruba 和 Ubiquiti UniFi 的部署清单
使用此清单,让 Android 登录通知在 Cisco Meraki、HPE Aruba 和 Ubiquiti UniFi 上稳定可靠地显示。您将划定一个严格的围墙花园、在登录前拦截流量、使用 HTTPS 保护登录页面并保持 DNS 正常工作。您还将选择会话超时时间、决定 DHCP option 114 并追溯每个访客症状以进行修复。
核心系列的一部分:Captive Portal 指南 →
- Android Captive Portal 登录的实际工作原理是什么?
- 连接性检查探测
- “登录到 WiFi 网络”通知
- Android 上的 Captive Portal 登录应用是什么?
- Captive Portal API 和 DHCP 选项 114
- 在开始之前,您需要准备什么?
- 如何在 Meraki、Aruba 和 UniFi 上为 Android 设置 captive portal 登录?
- 第 1 步:构建严格的围墙花园(Walled Garden)
- 第 2 步:在登录前拦截其他所有流量
- 第 3 步:重定向 HTTP,并使用 HTTPS 保护登录页面安全
- 第 4 步:为未认证设备保持 DNS 正常工作
- 第 5 步:设置符合访问时长的会话超时
- 第 6 步:决定是否使用 DHCP 选项 114
- 各项解决方案在您平台上的位置
- 如何检查 Android 登录页面是否正常工作?
- 为什么不显示 Android 连接 WiFi 网络登录通知,如何修复?
- 私有 DNS 会破坏 Captive Portal 吗?
- 为什么 Android 手机每次访问都必须重新登录?
- 案例场景 1:拥有 200 间客房并支持 Google 登录的酒店
- 操作案例 2:基于 UniFi 的议会图书馆网络
- 这需要多少成本,你能获得什么回报?
- 常见问题解答
- Purple Guest WiFi是否支持我现有的Cisco Meraki、HPE Aruba或Ubiquiti UniFi接入点?
- Android的私有DNS(Private DNS)会破坏Captive Portal吗?
- 为什么Android访客每次到访都需要重新登录?
- 我的Captive Portal需要SSL证书吗?
- 我的访客WiFi网络应该开放还是设置密码保护?
- 通过Captive Portal收集的数据是否符合GDPR合规要求?
- 解决 Android 上的 Captive Portal 问题需要多长时间?
- Android 的修复方法与 iPhone 的 Captive Portal 修复方法不同吗?
Android 登录页面无法显示的原因是 Google 的连接性检查在登录前就访问到了互联网,或者其重定向被阻止了。请将探测主机排除在您的围墙花园(walled garden)之外,仅允许展示页和登录域名,将 HTTP 探测重定向至 HTTPS 展示页,并在 Cisco Meraki、HPE Aruba 或 Ubiquiti UniFi 上设置会话超时。
Android Captive Portal 登录的实际工作原理是什么?
Captive Portal 是访客在网络授予互联网访问权限之前看到的展示页。它会呈现访客在联网前需要完成的登录选项。Purple 关于 Captive Portal 的支持文章描述了完整的交互流程。
每个主流操作系统都包含一个专属的网络助手(CNA)。CNA 是一个内置的微型浏览器,用于为访客处理门户页面。在 Android 系统上,CNA 有四个职责:
- 手机加入网络后,立即检查互联网连接性。
- 告知持机用户他们可能需要登录。
- 当用户点击通知时,为展示页打开一个浏览器会话。
- 登录成功后,确认在线状态。
当其中任何一个步骤中断时,访客就会看到一个已连接但无法正常工作的网络。他们通常会归咎于您的 WiFi,而不是他们的手机。
连接性检查探测
当 Android 手机加入网络时,它会向 Google 托管的连接性检查端点发送一个普通的 HTTP 请求。该端点通常会返回一个空的 HTTP 204 响应。如果手机收到 204,它会判定互联网可达,并且不会显示任何登录提示。
在访客网络上,您的控制器会在登录前拦截该请求,并返回重定向至展示页的响应。手机收到这个意外的答复,从而判定其处于 Captive Portal 限制之后。整个检测过程完全取决于该探测是被拦截,而不是被放行。
“登录到 WiFi 网络”通知
一旦探测失败,Android 就会显示一条通知,告知访客他们可能需要登录。点击该通知即可启动 CNA 浏览器会话。如果访客将通知划走,手机将保持连接但无法访问互联网。针对这种情况,Purple 建议打开浏览器并访问 neverssl.com。这个第三方网站保持使用普通 HTTP,因此控制器可以对其进行重定向而不会产生证书错误。
Android 上的 Captive Portal 登录应用是什么?
Captive Portal 登录应用就是 Android 的 CNA。它是一个精简版浏览器,没有杂乱的地址栏或扩展程序。Purple 的支持文档将其描述为一个“白板画布”,可以让 Captive Portal 重定向不受阻碍地完成。原生 Android 会在身份验证成功后自动关闭该窗口。一些手机制造商修改了这一默认设置,因此在这些手机上,访客可能需要手动关闭窗口。在窗口背后,有三个系统协同工作。控制器负责管理与 Purple 的 splash 页面服务器之间的交互。Splash 页面负责收集访客的信息并签发一次性登录凭证。然后,控制器将该登录凭证传递给 Purple 的 RADIUS 服务器(负责授权访问的身份验证服务),以完成登录。
Captive Portal API 和 DHCP 选项 114
较新版本的 Android 也可以在无需探测的情况下了解门户。网络通过 RFC 8910 中定义的 DHCP 选项 114 播发 Captive Portal API 地址。DHCP 是分发 IP 地址的服务。手机通过 HTTPS 查询该 API,而 RFC 8908 中定义的响应则会说明该设备是否处于受限状态以及门户所在的位置。这完全避免了重定向技巧。只有当该选项背后的 API 端点处于活动状态且已正确认证时,该方式才能生效。
在开始之前,您需要准备什么?
在操作任何接入点之前,请先收集以下信息:
- 控制器或管理平台的管理员访问权限:Cisco Meraki Dashboard、HPE Aruba(Instant、Central 或 Mobility Controller)或 UniFi 网络应用。
- 开放的访客 SSID。Purple 建议通过开放网络提供访客 WiFi。开放网络目前已成为标准惯例,可减少访客的连接阻碍。
- 专用访客 VLAN。VLAN 是一个逻辑网络分段。访客流量绝不能与员工或支付系统共享同一个网段,这可以确保您符合 PCI-DSS 的范围规则。
- Purple 的围墙花园(Walled Garden)列表和 splash 页面 URL。请从 captive portal 支持文章 中获取当前的数值。请勿从旧的部署中复制它们。
- 适用于 Purple 身份验证服务器的 RADIUS 详细信息(从您的 Purple 帐户中获取)。
- 测试手机。至少使用三部来自不同制造商的 Android 手机,外加一部 iPhone 进行对比。
Purple 与硬件无关。它以云端覆盖层(overlay)的方式运行在 Cisco Meraki、HPE Aruba、Ruckus、Juniper Mist、Ubiquiti UniFi、Cambium、Extreme 和 Fortinet 上。您只需配置您已拥有的控制器,无需拆除和更换设备。
如何在 Meraki、Aruba 和 UniFi 上为 Android 设置 captive portal 登录?
请按顺序配置以下五个设置。每一个设置都对应着每个平台上一个特定名称的功能。有关确切的菜单路径和当前的数值,请遵循 Purple 支持文章,而不是此处的简要概述。
第 1 步:构建严格的围墙花园(Walled Garden)
围墙花园是访客在登录前可以访问的域名列表。它必须包含 Purple 的 splash 页面域名以及您提供的任何社交媒体登录域名。它绝不能包含 Google 的连接性检查主机。
常见的错误是使用宽泛的通配符。添加每个 Google 域名以支持 Google 登录同时也会让 Android 的探测请求通过。手机收到 204 响应后,会判定自己已联网,从而绝不会显示通知。请将社交媒体登录条目的范围限制在提供商允许的最窄范围内。如果您需要同时支持 Google 登录和 Android 探测,请在每次更改围墙花园后对两者进行测试。
第 2 步:在登录前拦截其他所有流量
控制器必须拦截来自未认证设备的所有网页流量。任何留空开放的通道都会给 Android 提供一条通往虚假“已联网”结果的路径。
在 Cisco Meraki 上,将 Captive Portal 强度设置为拦截所有访问直至登录。在 HPE Aruba 上,确保认证前角色拒绝除围墙花园和 DNS 之外的一切。在 Ubiquiti UniFi 上,确认访客网络在授权前限制了除预授权允许列表之外的所有访问。
第 3 步:重定向 HTTP,并使用 HTTPS 保护登录页面安全
控制器无法在不触发证书错误的情况下干净地拦截 HTTPS 流量。Android 的探测使用的是明文 HTTP,控制器可以对其进行重定向。请保持对探测的 HTTP 拦截处于启用状态。
访客到达的页面则是另一回事。Purple 关于 Cisco WLC Captive Portal 证书设置 的文章展示了当控制器重定向到未加密的 HTTP 登录地址时会发生什么。浏览器会显示“您的连接不是私密连接”之类的警告,访客会认为该网络不安全。解决方法是在控制器上安装公开信任的 SSL/TLS 证书。控制器的虚拟主机名必须与证书的通用名称(Common Name)匹配。同样的原理也适用于自行托管登录页面的 Aruba 控制器。
第 4 步:为未认证设备保持 DNS 正常工作
访客在登录前必须能够解析 Portal 页面的主机名。请在预认证策略中允许指向您所选解析器的标准 DNS。如果没有这一步,重定向就会指向一个手机无法查询的名称。
Android 的私有 DNS 设置引入了第二种考量,这将在下面的故障排查部分中进行介绍。
第 5 步:设置符合访问时长的会话超时
会话超时决定了登录在访客必须重新登录之前持续多久。请将其与访客的停留时间相匹配。咖啡店可以使用几个小时。酒店则应覆盖整个住宿期间。
第 6 步:决定是否使用 DHCP 选项 114
仅在有运行正常、符合 RFC 8908 标准的 API 端点支持时,才宣告选项 114。指向一个无法正确响应的端点的值不仅不能消除故障点,反而会增加故障点。如果您不确定,请保持未设置状态。Android 会回退到连通性探测,而第 1 步到第 4 步已经支持了该探测。在启用它之前,请先向 Purple 技术支持确认。
各项解决方案在您平台上的位置
| 解决方案 | Cisco Meraki | HPE Aruba | Ubiquiti UniFi |
|---|---|---|---|
| 允许登录前的着陆页和登录域名 | SSID 的着陆页设置中的 Walled garden 范围 | Captive Portal 配置文件或预认证角色中的 Walled garden 白名单 | 访客热点上的预授权准许列表 |
| 保持探测主机处于被阻止状态 | 从 Walled garden 范围中移除宽泛的 Google 通配符 | 从白名单中移除宽泛的 Google 通配符 | 从准许列表中移除宽泛的 Google 通配符 |
| 登录前阻止所有其他流量 | Captive Portal 强度:在登录前阻止所有访问 | 预认证角色拒绝除 Walled garden 和 DNS 以外的所有访问 | 授权前的访客网络限制 |
| 保护登录页面安全 | 重定向到 Purple 的 HTTPS 着陆页 URL | 控制器上公开受信任的证书 | 重定向到 Purple 的 HTTPS 着陆页 URL |
| 会话时长 | 着陆页频次和 RADIUS 会话超时 | Captive Portal 或 RADIUS 配置文件中的会话超时 | 热点上的授权过期时间 |
| DHCP 选项 114 | MX 或上游 DHCP 服务器上的自定义 DHCP 选项 | 控制器或上游服务器上的 DHCP 范围 | UniFi 网关网络上的自定义 DHCP 选项 |
如何检查 Android 登录页面是否正常工作?
每次测试都从干净的状态开始。记住网络或保持活动会话的手机会掩盖您试图寻找的问题。
- 在每部测试手机上忽略该网络,然后重新连接。
- 在加入后几秒钟内观察通知。如果没有通知,说明探测已到达互联网,或者 DNS 失败。
- 点击它并完成登录。 着陆页加载时应不出现证书警告。
- 确认窗口行为。 在原生 Android 系统上,它会自动关闭。在某些制造商的定制版本上,您需要手动关闭,这是正常现象。
- 浏览普通的 HTTPS 网站以确认完全访问。
- 在一台手机上将私有 DNS 设置为严格模式后重复测试,以便了解使用该设置的访客会看到什么。
- 检查日志。 在 Purple 中确认 RADIUS 接受状态,并在控制器上确认客户端的已授权状态。
在至少三个不同制造商的 Android 手机上进行测试。iPhone 使用不同的探测主机和 CNA,Purple 的配套 iPhone Captive Portal 指南中对此进行了介绍,但控制器端的根本原因是一样的。一次测试会话即可捕获两个平台上的问题。
对您的具体配置有疑问吗?
我们的团队与 80,000 多个场所的运营方、IT 经理和网络工程师保持合作。预约 20 分钟的通话,我们将为您展示同行是如何解决类似问题的。
为什么不显示 Android 连接 WiFi 网络登录通知,如何修复?
大多数故障都可以追溯到以下五个原因之一。请从访客反馈的症状开始排查。
| 症状 | 可能的原因 | 解决方法 |
|---|---|---|
| 已连接,无通知,无互联网 | 探测被宽泛的 Walled garden 条目放行 | 从 Walled garden 中移除通配符 Google 条目 |
| 出现通知,但着陆页始终无法加载 | 登录前 DNS 被阻止,或 Walled garden 中缺失着陆页域名 | 允许 DNS 预授权;添加 Purple 的着陆页域名 |
| 证书或“连接不安全”警告 | 控制器登录页面通过 HTTP 或使用不受信任的证书提供服务 | 安装与主机名相匹配且受公开信任的证书 |
| 登录成功,但窗口保持打开状态 | 制造商更改了 CNA 默认设置 | 手动关闭窗口;无需更改网络设置 |
| 访客每次访问都必须重新登录 | 新的随机 MAC 地址或较短的会话超时时间 | 延长超时时间;说明随机 MAC 设置 |
| 访客忽略了通知 | 没有可回退的提示 | 打开浏览器并访问 neverssl.com |
私有 DNS 会破坏 Captive Portal 吗?
有可能会。Android 的私有 DNS 设置使用 DNS over TLS 来加密 DNS 查询。它有两种活动模式,在访客网络中的表现各不相同。
在“自动”模式下,当网络支持时,Android 会使用加密 DNS;当网络不支持时,则会回退到网络自身的 DNS。Captive Portal 可以正常加载。
在“严格”模式下,访客会指定一个特定的 DNS 提供商主机名。在登录之前,该提供商是无法访问的,因为您的预身份验证策略阻止了它。手机可能无法解析 Welcome Portal 页面,且 Android 可能会警告无法访问私有 DNS 服务器。
您无法合理地将每一个公共加密 DNS 提供商都添加到您的围墙花园中。实际的解决方法是引导访客。在您的指示牌或帮助页面上添加一行说明:将私有 DNS 切换为自动,完成登录,然后切换回来。
为什么 Android 手机每次访问都必须重新登录?
默认情况下,Android 会针对每个网络使用一个随机 MAC 地址。MAC 地址是您的控制器用于识别设备的硬件标识符。随机地址通常在同一个 SSID 下保持稳定。但如果访客忽略该网络、重置网络设置或更改隐私设置,它就会发生改变。对于您的控制器来说,该手机就变成了一个全新的设备。
第二个原因是以您自己的会话超时时间设置。无论 MAC 地址多么稳定,较短的超时时间都会在会话过期时强制重新登录。在认定是手机问题之前,请先检查这两项设置。对于注重回头客的场所,OpenRoaming 提供了自动、安全的重新连接,无需 Welcome Portal 页面。它非常适合交通枢纽和多场地物业。
案例场景 1:拥有 200 间客房并支持 Google 登录的酒店
说明性场景,数据仅供参考。
背景。 一家拥有 200 间客房的城市酒店在其 Welcome Portal 页面上添加了 Google 登录。在一周内,前台员工多次记录了 Android 访客的投诉。手机显示信号满格,但无法加载任何页面,也没有出现登录提示。而 iPhone 访客报告的问题则少得多。
具体做法: 网络团队重新审查了 Meraki 的围墙花园(walled garden)。一名承包商曾添加了一个涵盖所有 Google 域名的大型通配符,以支持新的登录选项。该条目导致 Android 的连接性探测直接通过。团队将该通配符替换为了 Purple 支持文章中列出的更窄范围的条目。随后,他们在三个不同制造商的手机上进行了重新测试。
结果: 在首次连接时,每台测试手机都显示了登录通知。在接下来的两周内,前台没有再收到关于 Android WiFi 的投诉。该酒店还延长了其会话超时时间,以覆盖典型的三天住宿。这为再次光临的宾客免去了每日重新登录的麻烦。了解 Purple 如何为 酒店餐饮与款待业 场所提供支持。
操作案例 2:基于 UniFi 的议会图书馆网络
说明性场景,数据仅供参考。
背景: 某议会在 12 个分支图书馆运行基于 Ubiquiti UniFi 的访客 WiFi。使用较新 Android 手机的访客反馈称,出现“无法访问私有 DNS 服务器”的警告,且展示页面(splash page)无法加载。分支机构的工作人员花费了大量时间指导访客操作他们不理解的设置。
具体做法: IT 团队确认在授权之前已允许 DNS,因此标准查询是正常工作的。受影响的手机都将私有 DNS 设置为使用指定提供商的“严格”模式。团队在展示页面的帮助文本和分支机构的海报上添加了一条简短的说明。它指导访客将私有 DNS 切换为“自动”,登录后再切换回原设置。他们还保持 DHCP 选项 114 未设置,因为当时尚未部署合规的 API 端点。
结果: 分支机构工作人员反馈称,大多数受影响的访客现在都能根据海报说明自行登录。中央 IT 服务台收到的关于图书馆 WiFi 的支持请求减少到每月仅有几次。公共部门场所与 交通运输 和 医疗保健 场所共享许多相同的模式。
这需要多少成本,你能获得什么回报?
大多数 Android Captive Portal 修复工作消耗的是员工时间,而不是硬件。围墙花园条目、Captive Portal 强度、会话超时和 DNS 规则都是您已有控制器上的配置更改。主要直接成本是公开受信任的证书(在您的控制器托管其自己的登录页面时)。
Purple 访客 WiFi 提供三种方案:Connect、Capture 和 Engage。定价取决于场所数量和方案,因此请联系 Purple 获取针对您资产的报价。
回报是每一位成功登录而不是选择放弃的 Android 访客。每次完成登录都意味着一位已连接的访客,在 Capture 和 Engage 方案中,它也是通过自觉选择加入收集的第一方数据。这些数据可接入您已在使用的 WiFi 分析、CRM 和营销平台。Purple 自身的数据显示,2024 年在 80,000 多个活跃场所中共有 4.4 亿次登录。在这种规模下,单个访客 SSID 上的检测故障都会导致已连接访客的显性流失。
此外,您还能避免潜在的品牌形象损失。当访客看到证书警告或网络未连接时,他们往往会质疑您场所的服务质量,而不是他们自己的手机。对于 零售 和酒店餐饮品牌而言,第一印象在他们跨入门店的那一刻就已经形成。
如果员工也需要与访客一起访问网络,请将他们运行在独立的且启用了基于身份验证的SSID上。Purple的博客文章 如何启用单点登录 详细介绍了如何对接Microsoft Entra ID、Okta和Google Workspace。
常见问题解答
Purple Guest WiFi是否支持我现有的Cisco Meraki、HPE Aruba或Ubiquiti UniFi接入点?
是的。Purple不依赖特定硬件,而是作为云端覆盖层运行在Cisco Meraki、HPE Aruba、Ruckus、Juniper Mist、Ubiquiti UniFi、Cambium、Extreme和Fortinet等系统之上。您可以保留现有的接入点和控制器。只需将访客SSID的Captive Portal指向Purple的登录页面,添加Purple帮助文档中的围墙花园(Walled Garden)白名单条目,并设置Purple的RADIUS服务器进行身份验证即可。无需进行任何硬件更换。
Android的私有DNS(Private DNS)会破坏Captive Portal吗?
在“严格”模式下可能会。在“自动”模式下,Android会回退到网络自身的DNS,页面将正常加载。在指定了服务商主机名的“严格”模式下,手机在登录前可能无法解析登录页面,因为在访客通过身份验证之前,该服务商是无法访问的。最快的解决方法是让访客切换到“自动”模式,完成登录后再切换回去。建议将此操作指南印在您的现场标牌上。
为什么Android访客每次到访都需要重新登录?
这通常是因为手机提供了一个新的随机MAC地址,或者是因为会话已过期。Android会针对每个网络随机生成MAC地址,而忽略该网络或重置设置都会产生一个新的MAC地址。此外,您的会话超时设置也决定了登录状态的保持时间。建议将其设置为与访客的到访规律相匹配,例如设置为整个酒店住宿期间,而不是单杯咖啡的时间。OpenRoaming为再次到访的访客提供自动重新连接功能。
我的Captive Portal需要SSL证书吗?
需要,适用于您控制器自身托管的所有登录页面。现代浏览器要求登录页面使用HTTPS,并在遇到不安全的HTTP链接时发出警告,这会让安全的网络看起来不够安全。Purple针对Cisco控制器的建议是使用公共受信任的证书,并使虚拟主机名与证书的通用名称(Common Name)相匹配。Android的探测仍然使用HTTP,因此拦截重定向将继续有效。
我的访客WiFi网络应该开放还是设置密码保护?
建议使用带有Captive Portal的开放网络。Purple建议通过开放网络提供访客WiFi,因为这已成为当前的行业标准,且能减少访客的连接阻碍。Android和iPhone都能在开放SSID上检测到Captive Portal,并提示访客进行登录。请将访客流量保持在独立的VLAN中。对于员工或常驻人员的访问,请在独立的SSID上运行并使用基于身份验证的认证。
通过Captive Portal收集的数据是否符合GDPR合规要求?
是的。Purple 已获得 GDPR、CCPA、ISO 27001 和 Cyber Essentials 认证。展示页面采用明示选择勾选框,因此每位访客都可以决定自己分享什么以及是否接收营销信息。您所收集的数据是第一方数据,是在登录时经授权同意后收集的。与您控制的任何个人数据一样,您仍需制定自己的隐私声明和保留政策。
解决 Android 上的 Captive Portal 问题需要多长时间?
大多数修复工作只是对访客 SSID 进行单一配置更改,然后进行测试。Walled garden 编辑、Captive Portal 强度、DNS 规则和会话超时不需要新硬件。您需要将大部分时间预算用于在至少三个品牌的 Android 手机上进行全新状态下的测试。某些品牌会改变登录窗口的行为,您需要在访客发现之前找出这些变化。
Android 的修复方法与 iPhone 的 Captive Portal 修复方法不同吗?
部分不同。在控制器端的起因在两个平台上是相同的:walled garden 范围、被拦截的 DNS、HTTP 重定向和会话超时。不同之处在于设备端。Android 探测 Google 托管的端点,而 iPhone 探测 Apple 的端点。Android 还增加了私有 DNS 行为以及制造商对登录窗口的更改。Purple 随附的 iPhone Captive Portal 指南详细介绍了 Apple 方面的细节。
关键定义
Captive Portal
一个拦截来自未认证设备的网页流量并对其进行拦截,直至访客登录的闪屏页面。IETF 在 RFC 8952 中描述了 Captive Portal 架构和信令,在 RFC 8908 中描述了 Captive Portal API。
在 Meraki、Aruba 或 UniFi 上配置访客 SSID 的闪屏页面设置时,您会遇到它。此清单中的每个修复方案都是为了让 Android 检测并打开它。
Captive Network Assistant (CNA)
操作系统内置的微型浏览器,用于检测 Captive Portal、通知访客并打开闪屏页面。在 Android 上,它是 Captive Portal 登录应用,原生 Android 会在认证成功后自动将其关闭。
您的测试会检查其行为。一些手机制造商修改了默认的自动关闭设置,因此窗口保持打开状态是预期行为,而非网络故障。
连接性测试探测
Android 在加入网络时向 Google 托管的终结点发送的纯 HTTP 请求。HTTP 204 No Content 响应 (RFC 9110) 表示在线;任何其他回答(例如重定向)都表示存在 Captive Portal。
检测取决于您的控制器拦截此探测。如果围墙花园条目放行了它,手机就会看到 204 响应,而再也不会显示登录通知。
围墙花园
设备在登录前可以访问的预身份验证域名或范围允许列表。在 Meraki 上称为 walled garden ranges,在 Aruba 的 Captive Portal 配置文件或预验证角色中称为白名单,在 UniFi 上则称为预授权允许列表。
它必须包含 Purple 的闪屏和社交登录域名,但不能包含探测主机。在此处使用宽泛的 Google 通配符是导致 Android 提示缺失最常见的原因。
DHCP option 114
RFC 8910 中定义的一个 DHCP 选项,在地址分配期间向客户端通告 Captive Portal API 的 URI,使其无需探测即可了解门户网站。
您可以在网关或上游服务器上将其设置为自定义 DHCP 选项。仅在背后存在处于活动状态且正确认证的端点时才对其进行通告,否则会增加故障点。
Captive Portal API
RFC 8908 中指定的 HTTPS JSON 接口,用于告知客户端其是否受限以及用户门户所在位置,从而取代了基于重定向的检测方法。
它是 DHCP option 114 所指向的端点。如果您无法确认符合 RFC 8908 规范的端点,请保持该选项未设置并依赖探测。
RADIUS
远程用户拨号认证服务(Remote Authentication Dial In User Service),是 RFC 2865 中指定的认证、授权和计费协议。控制器将凭据发送到 RADIUS 服务器,后者返回 Access-Accept 或 Access-Reject。
您的控制器将来自 Purple 引导页的一次性登录信息传递给 Purple 的 RADIUS 服务器。您可以在测试期间在 Purple 的日志中确认 RADIUS 接受状态,并在 RADIUS 配置文件中设置会话超时。
私有 DNS (DNS over TLS)
Android 中用于使用 DNS over TLS 加密 DNS 查询的设置,在 RFC 7858 中指定。自动(Automatic)模式会回退到网络的 DNS;严格(Strict)模式仅使用指定的提供商主机名。
在严格(Strict)模式下,指定的提供商在登录前无法访问,因此引导页可能无法解析。您需要通过访客端提示来处理此问题,而不是通过 walled garden 条目。
VLAN
虚拟局域网(Virtual LAN),一种由 IEEE 802.1Q 帧标记定义的逻辑网络分段,用于在共享交换基础设施上隔离流量。
您需要将访客流量划分到专用的 VLAN 中,与员工和支付系统隔离,以符合 PCI-DSS 的范围规则。
随机 MAC 地址
Android 为每个网络生成的本地管理硬件地址,用以代替设备的出厂 MAC,以限制追踪。在访客忽略网络、重置设置或更改隐私设置之前,它在每个 SSID 下保持稳定。
对于您的控制器而言,新的随机地址看起来像是一个全新的设备,从而强制重新登录。在责怪手机之前,请结合您的会话超时设置一起检查此项。
OpenRoaming
一个基于 Passpoint (Hotspot 2.0) 构建的无线宽带联盟(Wireless Broadband Alliance)联合体。Passpoint 是 Wi-Fi Alliance 基于 IEEE 802.11u 的规范,允许设备自动、安全地加入参与的网络,无需引导页。
您可以在交通枢纽和多场所物业中考虑使用它,因为在这些地方,回头客非常重要,而重复的 Captive Portal 登录会导致摩擦。
受公众信任的 SSL/TLS 证书
由证书颁发机构颁发的、浏览器默认信任的 X.509 证书,用于通过 HTTPS 保护登录页面的安全。控制器的虚拟主机名必须与证书的通用名称(Common Name)匹配。
只要您的控制器(如 Cisco WLC 或 Aruba 控制器)托管了自己的登录页面,您就需要一个证书。如果没有它,访客会看到连接不安全的警告。
应用实例
一家拥有 200 间客房的城市酒店在 Meraki 闪屏页面上添加了 Google 登录。在一周内,Android 访客报告信号满格但无法加载网页且无登录提示,而 iPhone 访客报告的问题则少得多。问题出在哪里,又是如何解决的?
网络团队检查了 Meraki 围墙花园,发现一名承包商添加了一个涵盖所有 Google 域名的宽泛通配符。该条目使 Android 的连接性测试探测成功到达互联网,因此手机收到了 204 响应,再也没有显示通知。该团队将该通配符替换为 Purple 支持文章中列出的较窄条目,然后在来自三个制造商的手机上进行了重新测试。每部手机在首次连接时都显示了登录通知,在前台两周内没有再记录到其他 Android WiFi 投诉。酒店还将其中断会话超时延长至覆盖典型的三晚住宿,为再次光临的访客免去了每日重新登录。这些数据均为说明性数据。
一个市政委员会在 12 个图书馆分馆运行基于 Ubiquiti UniFi 的访客 WiFi。使用较新 Android 手机的访客会看到“无法访问私有 DNS 服务器”警告,且闪屏页面无法加载。IT 团队应该如何应对?
该团队首先确认在授权前允许 DNS 解析,因此标准查询可以正常工作。每部受影响的手机都将“私有 DNS”设置为带有命名提供商的“严格”模式,这在登录前是无法访问的。由于将每个公共加密 DNS 提供商都添加到围墙花园中并不实际,因此该团队选择在访客端进行引导。他们在闪屏页面的帮助文本和分馆海报中添加了说明:将“私有 DNS”切换为“自动”,登录后再切换回。因为不存在兼容的 API 终结点,所以他们保持 DHCP option 114 未设置。大多数受影响的访客随后在没有协助的情况下成功登录,向中央 IT 提交的支持请求减少到每月仅有几次。这些数据均为说明性数据。
常见问题
Purple 访客 WiFi 是否兼容我已有的 Cisco Meraki、HPE Aruba 或 Ubiquiti UniFi 接入点?
是的。Purple 独立于硬件,可作为云端叠加方案运行在 Cisco Meraki、HPE Aruba、Ruckus、Juniper Mist、Ubiquiti UniFi、Cambium、Extreme Networks 和 Fortinet 上。您可以保留现有的接入点和控制器。只需将访客 SSID 的 Captive Portal 指向 Purple 的登录页面,添加 Purple 支持文档中列出的 walled garden 条目,并设置 Purple 的 RADIUS 服务器进行认证即可。无需拆除或更换现有设备。
Android 的私人 DNS 会破坏 Captive Portal 吗?
在“严格”模式下可能会受到影响。在“自动”模式下,Android 会回退到网络自身的 DNS,页面可以正常加载。在配置了指定提供商主机名的“严格”模式下,由于在访客通过认证之前该提供商无法访问,手机在登录前可能无法解析登录页面。最快的解决办法是让访客切换到“自动”模式,完成登录后再切换回去。建议将此操作说明放在您的指示牌上。
为什么 Android 访客每次到访都需要重新登录?
这通常是因为手机使用了新的随机 MAC 地址,或者会话已过期。Android 会针对每个网络随机生成 MAC 地址,忽略该网络或重置设置都会产生一个新的地址。此外,您的会话超时设置也决定了登录状态的保持时间。请将其设置为与访客的停留规律相匹配,例如设置成满足整个酒店住宿期间的长度,而不是单次喝咖啡的时间。OpenRoaming 为再次到访的游客提供自动重连功能。
我的 Captive Portal 需要 SSL 证书吗?
是的,对于由您的控制器自己托管的任何登录页面都是如此。现代浏览器要求登录页面使用 HTTPS,并在遇到未加密的 HTTP 链接时发出警告,这会让安全的网络看起来不够安全。Purple 针对 Cisco 控制器的建议是使用公共信任的证书,且虚拟主机名要与证书的常用名(Common Name)相匹配。Android 的探测依然使用 HTTP,因此拦截重定向机制仍能正常工作。
我的访客 WiFi 网络应该是开放的还是有密码保护的?
建议使用开放网络配合 Captive Portal。Purple 建议通过开放网络提供访客 WiFi,因为这已成为当前的行业标准标准,并能减少访客的连接阻碍。Android 和 iPhone 都能自动检测开放 SSID 上的 Captive Portal 并提示访客登录。请将访客流量隔离在独立的 VLAN 中。员工或常驻人员的接入则应在另一个使用基于身份认证的单独 SSID 上运行。
通过 Captive Portal 收集的数据是否符合 GDPR 规范?
是的。Purple 已通过 GDPR、CCPA、ISO 27001 和 Cyber Essentials 认证。登录页面采用自主选择的同意选项,因此每位访客都可以自己决定分享哪些信息以及是否接收营销信息。您收集的数据属于在登录时征得同意而获取的一手数据。与您控制的任何个人数据一样,您仍然需要制定自己的隐私声明和数据保留政策。
解决 Android Captive Portal 问题需要多长时间?
大多数修复都只需对访客 SSID 进行单一的配置更改,然后进行测试。修改 walled garden、调整 Captive Portal 强度、DNS 规则和会话超时都不需要新的硬件。请将大部分时间用于在至少三款不同厂商的 Android 手机上进行全新状态下的测试。某些品牌会改变登录窗口的交互行为,您需要在访客遇到问题之前发现这些问题。
Android的修复方法与iPhone Captive Portal的修复方法不同吗?
部分相同。控制器端的起因在两个平台上是一致的:walled garden 范围、被拦截的 DNS、HTTP 重定向和会话超时。不同之处在于设备端。Android 探测的是 Google 托管的端点,而 iPhone 探测的是 Apple 的端点。此外,Android 还引入了私人 DNS 行为以及不同厂商对登录窗口的定制修改。Purple 配套的 iPhone Captive Portal 指南详细介绍了 Apple 方面的内容。
来源
- Purple support: Captive Portal
- Purple support: Cisco WLC Captive Portal Certificate Setup
- RFC 8910: Captive-Portal Identification in DHCP and Router Advertisements
- RFC 8908: Captive Portal API
- RFC 7858: Specification for DNS over Transport Layer Security (TLS)
- RFC 2865: Remote Authentication Dial In User Service (RADIUS)
- PCI Security Standards Council
- Purple blog: How to Enable Single Sign On
继续阅读本系列
Cisco Meraki Captive Portal 故障排除:宣传页、Walled Garden 和 RADIUS 检查清单
使用此检查清单来确定是哪四个故障导致您的 Cisco Meraki Captive Portal 中断:宣传页类型、Walled Garden、授权 URL 对接或 RADIUS 可达性。您将能够读取 Meraki 事件日志,将症状与原因进行匹配,并应用正确的修复方法,而无需重复设置 SSID。
故障排除 Captive Portal 重定向:解决访客 WiFi 连接失败问题
当访客连接到您的 WiFi 但无法访问互联网时,原因几乎总是配置错误的 Captive Portal 重定向,而不是硬件故障。本指南为 IT 经理、网络架构师和 CTO 提供深入的技术参考,以诊断和解决完整的故障链:从操作系统级的连接性探测和 HSTS 证书冲突,到 RADIUS 授权漏洞和 DHCP 耗尽。它将每种故障模式映射到具体的修复方案,并展示了 Purple 的硬件无关云端覆盖层如何消除 Cisco Meraki、HPE Aruba、Ruckus、Juniper Mist、Ubiquiti UniFi、Cambium、Extreme 和 Fortinet 部署中的这些问题。
公共 WiFi 故障排除:解决“已连接但无互联网”及展示页面重定向失败问题
本权威技术参考指南详细阐述了 Captive Portal 检测的底层机制,并剖析了导致访客 WiFi 无法连接的六种主要失效模式。它为 IT 经理和网络架构师提供了一个实用的故障排除框架,用于解决 HTTP 重定向问题、DNS 冲突以及 MAC 地址随机化带来的挑战。
对您的具体配置有疑问吗?
我们的团队与 80,000 多个场所的运营方、IT 经理和网络工程师保持合作。预约 20 分钟的通话,我们将为您展示同行是如何解决类似问题的。