要在 OpenWrt 固件的路由器上实现连接 WiFi 后自动弹出登录页面(即 Captive Portal 认证),需配置以下组件:dnsmasq(DHCP/DNS 服务)、uhttpd(Web 服务器)、luci-app-guest-wifi(可选,用于隔离访客网络)和wifidog或CoovaChilli(认证服务)。以下是具体步骤:
通过 SSH 登录路由器,执行以下命令安装认证组件(以wifidog
为例):
opkg update
opkg install wifidog luci-app-wifidog # 安装wifidog及LuCI界面opkg install dnsmasq-full # 安装完整版本的dnsmasq
创建独立的访客网络(推荐,增强安全性):
登录 LuCI 界面(http://192.168.1.1
),进入 网络 → 无线;
点击 添加,选择与主网络不同的 SSID(如 "Guest-WiFi");
选择加密方式(如 WPA2-PSK)并设置密码;
在 高级设置 中,将 网络 指定为新创建的guest
接口。
配置防火墙规则:
基本设置:
自定义登录页面:
认证脚本(可选):
确保所有 HTTP 请求重定向到登录页面:
编辑/etc/dnsmasq.conf
,添加:
address=/#/192.168.1.1 # 将所有域名解析到路由器IP
重启 dnsmasq 服务:
/etc/init.d/dnsmasq restart
若需实现用户名 / 密码验证,可编写 Lua 认证脚本(/etc/wifidog/auth.lua
):
function auth_check(username, password)
-- 简单示例:验证用户名和密码是否匹配
if username == "admin" and password == "password" then
return 1 -- 认证通过
end
return 0 -- 认证失败end
重启服务:
/etc/init.d/wifidog restart
连接测试:
用手机连接访客 WiFi,尝试访问任意网站;
应自动跳转到登录页面,输入凭据后点击登录;
验证成功后,检查是否可正常访问互联网。
常见问题:
无法跳转登录页:检查 dnsmasq 配置和防火墙规则;
认证失败:查看/var/log/wifidog.log
排查错误;
性能问题:若 CPU 负载过高,可考虑升级硬件或改用轻量级认证方案(如nodogsplash
)。
若希望快速实现,可使用nodogsplash
(轻量级 Captive Portal):
opkg install nodogsplash luci-app-nodogsplash
配置方法类似,但界面更简洁,资源占用更低,适合 MT7621 等低性能设备。
通过以上配置,路由器将在用户连接 WiFi 后强制跳转登录页面,验证通过后才允许访问互联网。可根据需求扩展认证方式(如短信验证码、微信扫码)或集成广告系统。
版权声明:如无特殊标注,文章均为本站原创,转载时请以链接形式注明文章出处。