本指南旨在为管理员提供一套系统化的排查流程,用于解决用户(员工、访客等)连接 Portal Wi-Fi 后,无法自动弹出认证页面、登录页面加载报错、或完成身份核验(账号登录/短信验证/扫码)后依然无法上网等问题。
Portal 认证的排查路径由以下四个逻辑阶段组成:
Portal 页面弹出的前提是终端与网络设备之间已建立基础的 IP 通信。在调整认证配置前,必须首先确认终端已完成预连接。
在开始 Portal 排查前,请确保终端已成功连接网络并获取合法身份,避免将底层网络问题误判为认证故障:
169.254.x.x),说明网络链路不通,Portal 认证流程将无法触发。Portal 弹窗的原理是:网络设备(AC)拦截终端发起的 HTTP 请求,并强制将其重定向至认证页面 URL。
http://www.baidu.com)进行手动访问,观察是否发生跳转。若手动访问能弹出页面而自动不弹,说明终端的探测机制(CNA)受阻。请确认网络设备(AC)的 Portal 白名单内已包含以下关键地址。若缺失,将导致重定向流程中断或页面加载失败:
在网络设备详情中,分别查看员工 Wi-Fi 和访客 Wi-Fi 的认证页面地址。以下两图标出了浏览器加载登录页面时访问的地址,请核对该地址是否已加入 Portal 白名单。
员工 Wi-Fi:认证页面地址

访客 Wi-Fi:认证页面地址

在同一设备详情中,分别查看员工 Wi-Fi 和访客 Wi-Fi 的认证信息接收地址。以下两图标出了用户提交认证信息的目标地址,请结合上面的 Portal Server 方案核对需要放行的地址。
员工 Wi-Fi:认证信息接收地址

访客 Wi-Fi:认证信息接收地址

若以上配置均正确但仍不弹窗,请检查是否存在以下环境干扰:
当终端成功触发重定向并打开 Portal 页面后,需重点排查“页面加载状态”与“身份凭证校验”两个环节。
若页面显示“获取配置失败,请刷新重试”,或后台返回代码 {"code":174003, "message":"无法匹配到当前AP"},说明飞连后台无法识别当前发起认证请求的网络设备。
apmac 参数与后台配置的设备 MAC 地址进行比对。
apmac 参数,且该参数的值是否与管理后台【网络设备】列表中录入的 MAC 地址完全一致。apmac 匹配逻辑。若 URL 中既有 ID 也有 apmac,系统将优先根据设备 ID 进行关联。用户在 Portal 页面输入的账号密码,需通过飞连后台的身份源校验。
当用户在 Portal 页面输入账号密码并单击“登录”后,浏览器会重定向至一个用于处理认证请求的地址(即“认证信息接收地址”)。通过识别这个地址的归属,您可以确定当前系统运行的模式,并选择后续的排查分支。
单击登录时,请密切观察浏览器地址栏变化,或通过浏览器的开发者工具(F12 - Network 标签页)查看请求的目标 URL。
http://[AC-IP]:8000/login 或 http://[AC-IP]/portal/logon.cgi,表示您的环境正在使用 AC 内置 Portal Server 认证方案,浏览器尝试将账密直接发往 AC。请直接进入 AC 内置 Portal 认证深度排查,重点核对各厂商特定的字段名称格式及 RADIUS 对接密钥。http://[飞连节点IP]:9100/login,表示您的环境正在使用飞连 Portal Server 认证方案,浏览器尝试将账密发往飞连服务器处理。请直接进入飞连 Portal Server 认证深度排查,重点检查 9100 端口存活状态、URL 中的 userip/nasip 参数以及 Portal 协议握手。飞连 Portal Server 加载 HTTPS 证书后,认证信息接收地址应使用 https://portal-server-ip:9100/login,并确认所配置的证书路径和内容正确。若地址使用域名,请确认域名解析到对应的 RADIUS 节点 IP。端口以实际配置为准。
无论属于哪种模式,如果单击登录后页面长时间无响应或显示“连接超时”,请执行以下排查:
telnet 或 tcping 工具探测目标地址的端口(AC 的 80/8000 端口或飞连的 9100 端口)是否处于开放状态。当 RADIUS 使用飞连 Server 内置服务时,若 Portal 服务已监听,但终端仍无法访问且抓包显示 TCP SYN 持续重传,请检查服务器入站防火墙规则是否拦截了 Portal 监听端口(例如 TCP 9100)。按实际配置放通端口后,保存防火墙规则,避免服务器重启后失效。
如果您在步骤三中确认浏览器跳转的地址是 AC 自身的 IP(如 8000 端口),请按照本路径进行深度排查。
AC 内置服务对表单提交的字段名(username/password)有严格固定要求。请检查飞连管理后台网络设备配置中的“认证用户名字段”和“认证密码字段”。必须与厂商要求(见下表)完全一致,大小写敏感。
| 厂商 | 认证信息接收地址示例 | 用户名字段名 | 密码字段名 |
|---|---|---|---|
| 华为 (Huawei) | http://ac-ip:8000/login | username | password |
| 华三 (H3C) | http://ac-ip/portal/logon.cgi | PtUser | PtPwd |
| Aruba | https://securelogin.arubanetworks.com/cgi-bin/login | user | password |
| 思科 (Cisco) | http://192.0.2.1/login.html | username | password |
| ruckus | http://ac-ip:9997/login | username | password |
AC 成功接收凭据后,会作为 RADIUS 客户端向飞连发起认证请求。若此时失败,通常体现为 RADIUS 端的拒绝。

/var/log/feilian/radius.event.log 中观察到以下报错,说明对接存在问题:
client authentic failed:表示 RADIUS 共享密钥配置错误。get client err:表示飞连后台未正确录入该 AC 设备的 IP 地址。如果您在步骤三中确认浏览器跳转的地址是飞连节点的 9100 端口,请按照本路径进行深度排查。
在此方案中,飞连 Portal 模块充当转发中间人,对 URL 参数有极高要求。
lsof -i:9100,核验 Portal 服务是否正常监听 9100 端口。
# 执行命令 root@radius-node:~# lsof -i:9100 # 预期输出示例 COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME feilian-r [PID] root 25u IPv6 1234567 0t0 TCP *:9100 (LISTEN)
userip:AC 重定向时必须携带此参数。若缺失,Portal 模块无法定位发起请求的终端 IP,会返回错误 {"error":"portal http request do not contain arg userip"}。nasip:未携带该参数时,飞连 Portal Server 默认使用管理后台配置的无线控制器对接地址作为目标 AC 地址。若需从 Portal 认证 URL 提取其他控制器地址,可通过控制器 IP 地址字段名指定参数;该参数的取值优先于默认对接地址。请核对实际目标地址是否正确,并确认其 UDP 2000 端口可达。apmac:用于识别设备资产。如步骤二所述,这是匹配后台配置的前提。未携带 nasip 时,日志可能出现以下提示,表示服务正在使用默认对接地址。该提示本身不代表认证失败,应核对日志中的目标地址是否符合预期。
portal http request do not contain argument nasip using default bas address 192.168.1.1:2000
Portal 模块收到凭据后,会通过 UDP 2000 端口与 AC 进行“Portal 协议”握手。
说明
若 Wireshark 无法解析 Portal 报文详情,可使用 portal.lua 插件。将文件复制到 Wireshark 插件目录;例如 Windows 下 Wireshark 4.6 的目录为 C:\Program Files\Wireshark\plugins\4.6。目录随安装位置和版本变化,请以实际环境为准。

在飞连 RADIUS 节点按认证对象执行以下抓包命令,复现问题并保存报文。TCP 9100 对应终端提交认证信息,UDP 2000 对应 Portal 协议,UDP 1812 和 3812 分别对应员工、访客 RADIUS 认证;如已修改端口,请替换为实际值。
# 员工 Portal 认证 sudo tcpdump -i any '((tcp port 9100) or (udp port 2000) or (udp port 1812))' -v -w 1.pcap # 访客 Portal 认证 sudo tcpdump -i any '((tcp port 9100) or (udp port 2000) or (udp port 3812))' -v -w 2.pcap
观察报文流向:
REQ_AUTH(认证请求):Portal 模块 ➔ AC。若 AC 没收到或没反应,检查 AC 的 Portal 协议监听是否开启。
ACCESS-REQUEST / ACCEPT):ACCESS-REQUEST,RADIUS 节点校验通过后返回 ACCESS-ACCEPT。只有收到此返回,AC 才会进行下一步。REQ_AUTH,未观察到 ACCESS-REQUEST,请检查 AC 是否收到并处理 Portal 请求,以及是否向正确的 RADIUS 地址和端口发起认证。结合 AC 侧配置和抓包结果定位原因。ACCESS-REJECT,AC 随后发送的 Portal 结果必为失败。请跳转至步骤五:RADIUS 认证结果与审计日志排查查看日志中的拒绝原因(如密码错误、权限不足)。

3. ACK_AUTH(认证响应):AC ➔ Portal 模块。若返回的 ErrCode 不为 0,需根据 AC 的错误提示进行分析:
| 错误码 | 含义 | 排查方向 |
| --- | --- | --- |
| ErrCode=0 | 认证成功 | 认证成功。若仍无法上网,请参见认证结果报告分析,检查认证后的网络访问。 |
| ErrCode=1 | 认证被拒绝 | AC 侧接收到了请求,但出于某种原因拒绝。请检查 AC 侧的 Portal 安全配置,或是否超过了最大连接数。 |
| ErrCode=2 | 链接已建立 | 用户已在线。请核对 AC 上该用户的在线状态;需要处理已有会话时,按对应厂商的操作说明执行。 |
| ErrCode=3 | 正在认证中 | AC 正在处理该终端的并发请求。建议用户稍等片刻,避免连续频繁单击登录。 |
| ErrCode=4 | 发生错误 | AC 系统内部错误或协议解析异常。请检查 AC 与飞连间的协议版本(Portal 1.0/2.0)是否匹配。 |
4. AFF_ACK_AUTH(确认应答):Portal 模块 ➔ AC。完成最后的三次握手确认。
若模块发出了请求但长时间未收到 AC 的回包:
tcpdump -i any port 2000 -v 观察。若只看到 REQ_AUTH 发出而无回包,说明报文在传输路径中被阻断,或 AC 未响应。使用飞连 Portal Server 时,AC 收到 Portal 认证请求后,向 RADIUS 节点发起认证,再将认证结果返回给 Portal Server。使用 AC 内置 Portal Server 时,由 AC 接收认证信息并发起 RADIUS 认证。请结合 RADIUS 报文和事件日志确认认证结果。
请登录 RADIUS 节点,查看 /var/log/feilian/radius.event.log。在寻找具体的认证结果前,请先观察是否存在以下高频报错。 这些报错通常意味着 RADIUS 通信阶段就已出现异常:
| 报错类型 (Log Message) | 日志解释与对策 |
|---|---|
get client err xxx | RADIUS 未获取到 AC 设备。检查后台配置的设备 IP 是否正确。 |
client authentic failed | 共享密钥错误。检查 AC 与后台配置的 RADIUS Secret 是否一致。 |
client message authentic failed | 共享密钥错误导致的消息校验失败。 |
parse packet err | 解析包失败。报文格式异常。 |
get config: json unmarshal failed | 拉取配置时返回的 JSON 解析失败。系统内部配置异常。 |
http error: xxxx | 请求后台 API 接口失败。检查节点间网络通信。 |
receive tls error | TLS 握手失败。多为证书错误(如 Windows 泛域名或自签证书问题)。 |
Eap check: not contain... | 报文非 EAP 类型。若误选了 802.1X 认证,请检查配置。 |
MSCHAP Failure | 802.1X 认证输入的密码错误(仅在兼容 802.1X 时出现)。 |
get user error: forbidden | 权限拦截。该用户无权限或已被禁用。 |
recv duplicate request | 收到重复请求。通常由于 RADIUS 未能在短时间内回包,需检查网络延迟。 |
chap user password wrong | CHAP 认证密码错误。 |
若上述底层通信日志正常,请在日志中搜索关键词 user conn report。该记录反映了业务层面的最终处理结果,请根据 connResult 的取值进行排查:
访客 RADIUS 认证默认使用 UDP 3812。若 Wireshark 未将该端口的报文识别为 RADIUS,可手动指定解析协议。
在 Wireshark 中找到 UDP 3812 端口的报文,右键选择 Decode As…。

在弹出的窗口中,将 UDP port 3812 对应的 Current(当前) 列设为 RADIUS,单击 OK(确定)。

配置后,可查看 RADIUS 报文的属性、Code 和 Identifier 等字段。若访客认证使用了其他端口,请对实际端口设置解析协议。
如果已完成上述所有排查步骤但问题仍未解决,请准备以下信息并联系飞连技术支持团队,以便我们高效地为您定位问题。
/var/log/feilian/radius.event.log。pcap 格式抓包文件。为了规避潜在的认证故障,建议在部署及维护阶段重点落实以下预防工作:
REQ_AUTH、ACCESS-REQUEST 等关键报文的往返情况。