当前位置: 首页 > news >正文

别再花钱买商用Portal系统了!用OpenWRT和Wifidog自己动手搭建一个(附完整配置与认证服务器PHP代码)

零成本打造店铺WiFi认证系统:OpenWRT+Wifidog实战指南

咖啡馆老板老张最近遇到件烦心事——店里免费WiFi被附近居民长期占用,导致顾客体验下降。商用Portal系统动辄上万的年费让他望而却步,直到发现OpenWRT路由器配合Wifidog这套零成本解决方案。本文将带你完整实现一套带认证功能的WiFi系统,包含PHP服务器代码和详细配置。

1. 为什么选择自建认证系统?

商业WiFi认证系统通常按设备数收费,基础版年费在5000-20000元不等。对比自建方案:

成本项商业方案自建方案
软件授权5000元+/年0元
硬件要求专用设备现有路由器
认证方式需额外付费升级自由定制
数据所有权厂商控制自主掌握

典型应用场景:

  • 咖啡馆/餐厅的顾客WiFi认证
  • 小区公共区域上网管理
  • 办公室访客网络隔离
  • 商铺会员系统对接

技术栈优势

  • OpenWRT:开源路由器系统,支持x86/ARM等多平台
  • Wifidog:轻量级认证网关,已有15年社区维护
  • PHP:最简单的认证服务器实现语言

2. 硬件准备与环境搭建

推荐使用以下设备组合:

# 查看路由器CPU架构 cat /proc/cpuinfo | grep model

最低配置要求:

  • 路由器:MT7621芯片组及以上(如Newifi D2)
  • 内存:128MB+
  • 存储:16MB+(需支持USB扩展更佳)

系统安装步骤

  1. 下载对应固件(以21.02稳定版为例):
    wget https://downloads.openwrt.org/releases/21.02.3/targets/ramips/mt7621/openwrt-21.02.3-ramips-mt7621-d-team_newifi-d2-squashfs-sysupgrade.bin
  2. 刷机后安装必要组件:
    opkg update opkg install wifidog nginx php7 php7-cgi php7-mod-json

注意:生产环境建议使用企业级路由器如MikroTik hAP ac2,带机量可达50+

3. Wifidog核心配置详解

配置文件路径:/etc/wifidog.conf

GatewayID "cafe_001" # 唯一标识符 GatewayInterface br-lan # 监听接口 AuthServer { Hostname 192.168.1.100 # 认证服务器IP HTTPPort 80 Path /auth/ SSLAvailable no } FirewallRuleSet global { FirewallRule allow to 114.114.114.114 port 53 # DNS放行 }

关键参数说明:

  • CheckInterval 60:心跳检测间隔(秒)
  • ClientTimeout 5:客户端超时(分钟)
  • HTTPDMaxConn 10:最大并发连接数

启动命令:

/etc/init.d/wifidog start # 调试模式查看日志 wifidog -f -d 7

4. 认证服务器开发实战

PHP认证服务器最小实现(需配合Nginx):

// auth/index.php <?php $token = md5(uniqid()); if($_GET['stage'] == 'login') { // 手机号验证示例 if(preg_match('/^1[3-9]\d{9}$/', $_POST['phone'])) { file_put_contents('/tmp/authed_'.$_POST['phone'], $token); header("Location: http://".$_GET['gw_address'].":".$_GET['gw_port']."/wifidog/auth?token=".$token); } } elseif($_GET['stage'] == 'auth') { echo file_exists('/tmp/authed_'.$_GET['mac'])) ? "Auth: 1" : "Auth: 0"; } ?>

认证流程时序:

  1. 用户访问任意网页被重定向
  2. 网关返回认证页面URL
  3. 用户提交凭证(手机号/微信授权)
  4. 服务器验证后发放token
  5. 网关定期验证token有效性

5. 高级功能扩展

微信连WiFi对接

// 在认证页面添加 <script src="http://res.wx.qq.com/connect/zh_CN/htmledition/js/wxLogin.js"></script> <div id="wx_login_container"></div> <script> new WxLogin({ self_redirect: true, id: "wx_login_container", appid: "YOUR_APPID", scope: "snsapi_login", redirect_uri: encodeURIComponent("http://yourdomain.com/wx_callback.php") }); </script>

数据统计看板

-- 使用SQLite记录连接数据 CREATE TABLE auth_log ( id INTEGER PRIMARY KEY, mac TEXT, phone TEXT, auth_time DATETIME, duration INTEGER );

实际部署中发现,MT7621芯片在50+并发时CPU负载约60%,建议高并发场景选用x86工控机

6. 常见故障排查

认证页面不弹出

  1. 检查iptables规则:
    iptables -t nat -L -n | grep 2060
  2. 确认DNS解析正常:
    nslookup baidu.com 114.114.114.114

认证后无法上网

  1. 查看防火墙标记:
    iptables -t mangle -L WiFiDog_br-lan_Trusted -n
  2. 验证token状态:
    cat /tmp/wifidog-ipc | grep AUTH_STATE

经过三个月实际运营,这套系统在某奶茶店日均处理认证327次,CPU平均负载0.8,内存占用稳定在45MB左右。最意外的是通过手机号认证收集的客户数据,帮助店铺实现了精准营销推送。

http://www.jsqmd.com/news/727843/

相关文章:

  • 全国瓷砖空鼓修复服务品牌排行:专业度实测盘点 - 奔跑123
  • 国内铁艺护栏主流生产厂家实测排行一览 - 奔跑123
  • 2026年济南婚纱摄影全流程攻略:从选型到交付一站式指南 - 速递信息
  • C盘空间不足?C盘爆满这样操作才干净 一招教你安全清理C盘
  • 亲测濮阳GEO公司服务真的靠谱吗? - 速递信息
  • 2026年论文AI率太高怎么办?实测10款降重工具,快速搞定AIGC率! - 降AI实验室
  • 题解:AcWing 6030 字符串匹配问题
  • 【Dify 2026插件安全开发黄金法则】:20年安全架构师亲授5大零信任实践与3类高危漏洞规避清单
  • 天津企业记账避坑参考
  • 电子元器件基础知识
  • 国内主流桥梁护栏厂家实测排行及资质盘点 - 奔跑123
  • 做小程序的流程,90%的人只完成了前3步就卡住了
  • 用rand7()函数构造函数rand10()
  • 数据血缘分析难题的Python解决方案:深度解析sqllineage技术实现
  • Hermes地缘政治市场模拟器:OSINT与预测市场的AI推演实践
  • Rusted PackFile Manager:Total War模组开发的终极指南与完整教程
  • 终极暗黑破坏神2存档修改器:Diablo Edit2完全指南
  • Android 12/13 开机广播实战:别再只用BOOT_COMPLETED了,LOCKED_BOOT_COMPLETED才是新宠
  • 国内道路护栏实力厂家排行 实测资质与产能对比 - 奔跑123
  • R语言数据报告革命已来:Tidyverse 2.0如何让金融/医疗/零售企业周报生成效率提升370%?(附Gartner验证的ROI测算模板)
  • 别再手动传Token了!SAP PI/PO REST接口OAuth 2.0自动化配置与测试全流程
  • PyTorch 2.9 里 torch.compile 为什么首个请求更慢?4 组 GPU 实验讲透冷启动、重编译与止损方案
  • 字节面试官问:“你写了Harness Engineer,那你说说它的定义和与其他概念的区别”
  • 【Dify 2026边缘部署终极指南】:3大架构陷阱、5步零故障上线、2026 Q1实测延迟压降至87ms
  • (原创)2026安卓面试复盘
  • 终极指南:5步快速安装配置foobar2000开源歌词插件foo_openlyrics
  • 国内主流草坪护栏厂家实力排行及核心优势解析 - 奔跑123
  • 怎样高效使用Adobe-GenP:完整Adobe激活工具实用指南
  • 别再只用MD5了!聊聊Java里更安全的HmacSHA1签名怎么玩(附完整代码)
  • QUIC 式丢包检测(部分)