行业动态与技术知识
captive portal弹不出页面:Portal认证系统最常见的故障排查
Portal认证系统上线后,最高频、最容易被误判的故障,是用户连上WiFi却不弹认证页。一线客服接到这种投诉,第一反应往往是认证系统坏了。其实多数时候不是系统坏了,是网络策略、终端行为或者DNS配置把弹页这一环挡住了。把captive portal弹不出的常见原因理清楚,能省掉一大半无效报修。
先分清是真没弹还是弹了没看到
有些情况是认证页其实弹了,但用户没注意,或者被浏览器拦截在后台标签。iOS和安卓的captive network detection机制不一样,iOS会主动探测一个苹果域名,安卓探谷歌域名,探测不通才弹页。如果探测域名被放行能直接上网,系统就认为不需要认证,页面自然不弹。所以先确认是真不弹,还是系统判定已联网。
排查第一步让用户开浏览器随便输个http网址,看会不会被重定向到Portal。能重定向说明认证服务正常,只是系统级探测没触发。这种一般不影响使用,手动开浏览器就能上网。只有连重定向都没有,才往网络层查。
网络层最常见的三处拦法
第一,认证服务器或者重定向地址没在ACL里放行。Portal靠拦截未认证流量并302重定向到认证页,如果重定向目标IP被防火墙挡了,用户看到的就是打不开。这类问题常在改了网络架构、加了新VLAN之后出现,旧ACL没跟着更新。
第二,DNS被劫持或者没指到认证系统。终端要解析认证页域名,得靠Portal把DNS请求劫到本地。如果上游DNS直接返回了真实IP,终端绕过认证直连外网,页面就不弹。检查DNS劫持是否对所有未认证终端生效,是排查的关键一步。
第三,HTTPS拦截导致浏览器不弹。现在主流网站全是HTTPS,部分终端对证书不信任会直接报错而不弹页。Portal通常只拦截HTTP做重定向,HTTPS默认放行,这本身没错,但会让用户以为没连上。有些方案对HTTPS也做友好重定向,体验更顺,但配置要小心证书信任。
给一线的排查清单
遇到不弹页,按顺序查:终端连的是不是正确SSID;手动开http网页是否被重定向;认证服务器IP在ACL里通不通;DNS劫持是否生效;终端系统探测域名是否被误放行。这五步能覆盖八成以上case。剩下的两成才是认证系统自身的bug,比如服务进程挂了、重定向模块异常,那种在后台日志一眼能看出来。
最后说个容易被忽视的点:大面积不弹页,优先怀疑刚改过的网络策略,而不是认证系统。我们处理过的故障里,十次有七次是某人改了ACL或者换了出口,忘了Portal依赖的那几个放行规则。弹不出页面不是玄学,按层查很快能定位。
批量不弹页的应急处理
如果突然一片区域都不弹页,先别急着重启认证服务。按前面说的五步快速定位:是不是刚改过ACL,是不是出口换了,DNS劫持是不是掉了。多数批量故障都能在十分钟内找到是哪条网络策略变了。盲目重启认证服务,可能把正在认证的会话全踢掉,本来部分人能上的也上不了,反而扩大影响。先定位再动手,是处理批量故障的基本纪律。
把排查沉淀成内部文档
每次处理完不弹页的case,把现象、原因、改了什么记下来,久了就是一份一线排障手册。新来的运维照着查,不用每次从头摸索。我们见过最稳的团队,排障手册按症状分类,每条附带当时抓的日志片段,新人半小时能独立处理七成工单。知识不沉淀,人就永远是被故障追着跑。
终端侧也能帮一把
不弹页有一部分责任在终端系统行为,Portal系统能做的有限,但可以在Portal页给引导。比如检测到用户可能卡在探测阶段,提示手动开浏览器访问任意网址;提供一键诊断链接,帮用户看自己连的是不是正确SSID。这些引导不能解决所有问题,但能减少一线客服被问基础问题的频率。终端的怪行为堵不住,至少让用户知道下一步干嘛。
监控前置比救火强
不弹页的故障,如果等用户投诉才知道,已经影响一批人。可以在后台监控认证页的访问量和重定向成功率,某区域突然掉到零,系统自己报警,运维在投诉电话打爆前就介入。监控不是看设备在线就行,要看认证相关的业务指标。把故障发现从被动接诉变成主动告警,运维节奏完全不一样。
和用户沟通的话术
不弹页的投诉,客服怎么回很关键。上来就说系统坏了,用户更慌;说请开浏览器试试,多数能解决。一线话术要简短可操作:连对WiFi没、开浏览器有没有被带去登录页、换手机热点对比一下。三句话能排除大部分非故障情况。话术培训半小时,能拦掉一半无效上门。用户要的不是技术解释,是一个马上能试的动作。
别忽视移动端的差异
iOS和安卓在captive检测上的行为差异,是弹页故障里最容易被忽略的一块。iOS探测苹果域名,安卓探谷歌,系统版本升级还可能改探测逻辑。同一套Portal配置,旧安卓弹得顺,新iOS不弹,这种case不少见。排障时要把主流系统和版本都覆盖测一遍,别只在自己手机上验。移动端的行为厂商会改,Portal的兼容策略也得跟着看,这是持续的活。