小场景想省一台商用认证服务器,用开源路由系统自建 Portal 是可行路线,但要先认清它的能力边界。

在 OpenWrt 上自建 Portal 认证:方案对比与实�:â��
�
图片素材来自免费商用图库(pixabay,摄影师 ElasticComputeFarm),非本站项目实拍。

一、两类方案

NoDogSplash:轻量、规则简单、资源占用小,适合「点同意即放行」的门店与民宿;CoovaChilli:功能完整,可对接外部 RADIUS/Portal,支持账号、时长、计费,接近商用体验。两者都基于 iptables 拦截 + 本地服务进程实现,不需要额外硬件。

二、实现要点

① 拦截机制:未认证终端的流量被规则拦下,HTTP 请求被改写到本地登录页;② 白名单:DNS、Portal 自身接口、更新服务等必须先放行,否则登录页都打不开;③ HTTPS 的问题:无法透明重定向,依赖客户端探测(访问任意 HTTP 站点触发)或 DNS 劫持提示,个别终端仍会「连上但没反应」;④ 放行列表管理:按 MAC 或 IP,超时自动回收,避免长期占用;⑤ 多 SSID 分流:访客 SSID 走 Portal、内网 SSID 直连,隔离最干净。

三、和商用方案的差距在哪

差距主要在三处:并发规模与稳定性(嵌入式资源有限,客人一多就吃力)、管理体验(没有图形化的策略与报表)、以及合规能力(实名、短信、日志留存、审计这些商用系统有现成模块,开源要自己补)。所以适合小微与改造补位,不建议直接承担高端酒店整店的访客网。

四、上线前的自检

逐条实测:能弹登录页、能认证、认证后出网、认证前访问内网被拒、MAC 超时后自动重认证、终端多时的并发表现、以及重启后策略是否自动恢复。把它当小主机来运维——配置备份、定时重启监控、日志留存位置都要提前定好。

三、OpenWrt Portal 要点

  • 方案 → CoovaChilli/自建 iptables 重定向。
  • 实现 → 未认证标记+放行规则。
  • 上限 → 性能与并发有限,小场景够用。

OpenWrt 自建适合小门店/测试:零授权费但并发能力弱,几十人 OK、上百人就吃力。规模化访客认证还是上专业网关更稳。