以下是适配普通AP的ROS扫码放行+时长限制的完整详细配置,适配ROS v7版本,全程用Winbox操作,步骤清晰且无复杂依赖,普通AP或家用路由纯AP模式均适用:
前提准备
1. 连接ROS:用网线连接电脑与ROS路由器LAN口,打开Winbox,通过ROS的MAC地址或IP连接设备。
2. AP部署:将普通AP(或家用路由切纯AP模式)用网线连ROS的LAN口,AP仅需设置SSID(如“门店免费WiFi”),关闭DHCP和路由功能,仅做无线信号转发。
第一步:配置ROS基础网络(保障内网通信)
1. 配置内网IP
1. 点击左侧【IP】-【Addresses】,点击“+”新建;Address填192.168.3.1/24(内网网关),Interface选ROS连接AP的LAN口(如ether2),点击OK。
2. 点击【IP】-【Routes】,新建默认路由:Dst.Address填0.0.0.0/0,Gateway填外网网关(如运营商给的10.0.0.1),确保ROS能上网。
2. 配置DHCP服务器(给终端分配IP)
1. 点击【IP】-【Pool】,新建地址池:Name填wifi_pool,Addresses填192.168.3.10-192.168.3.200,点击OK。
2. 点击【IP】-【DHCP Server】,点击“DHCP Setup”向导;选择内网接口(ether2)→地址池选wifi_pool→网关填192.168.3.1→DNS填223.5.5.5→租约时间默认即可,完成向导。
第二步:搭建Hotspot基础框架(拦截未认证终端)
1. 点击【IP】-【Hotspot】,点击“Hotspot Setup”启动向导:
1. Interface选内网接口(ether2);Local Address填192.168.3.1;Address Pool选wifi_pool。
2. Certificate选none;DNS保持223.5.5.5;后续管理员账号可默认,完成向导生成Hotspot服务(默认名为hotspot1)。
2. 双击生成的hotspot1服务,在General标签页勾选Enabled,Idle Timeout设为00:05:00(未认证终端5分钟空闲断开),点击OK。
第三步:制作并上传扫码放行页面
1. 编写简易认证页面
新建文本文档,改后缀为login.html,内容如下(仅提示扫码),保存到电脑:
<html>
<body style=”text-align:center;padding-top:50px;”>
<h2>请扫描门店二维码上网</h2>
<a href=”http://192.168.3.1:8080/scan_ok” style=”font-size:18px;”>扫码后点击此链接上网</a>
</body>
</html>
2. 上传页面到ROS
1. 在Winbox左侧点击【Files】,进入hotspot文件夹;
2. 拖动电脑上的login.html到该文件夹,完成上传。
3. 生成门店二维码:用在线二维码生成器,输入页面中的链接http://192.168.3.1:8080/scan_ok,生成后打印作为门店立牌。
第四步:配置扫码放行脚本与服务(核心功能)
1. 新建放行脚本(控制上网时长)
1. 点击【System】-【Scripts】,点击“+”新建;Name填scan_allow。
2. 脚本内容如下(timeout=2h为上网时长,可改1h、4h等),粘贴后点击OK:
:local clientIp [/ip hotspot active get [find where server=hotspot1] address]
# 添加设备到放行列表,设置时长
/ip firewall address-list add address=$clientIp list=wifi_allowed timeout=2h comment=”扫码放行”
# 记录放行日志
:local logMsg (“放行设备IP:” . $clientIp . ” 时间:” . [/system clock get time])
/log info $logMsg
2. 新建服务接收扫码请求
1. 点击【IP】-【Services】,点击“+”新建;Name填wifi_auth_service,Port填8080,Protocol选tcp。
2. 在脚本下拉框选scan_allow,点击OK,实现访问8080端口链接时触发放行脚本。
第五步:配置防火墙规则(管控上网权限)
1. 放行已扫码设备流量
1. 点击【IP】-【Firewall】-【Filter Rules】,点击“+”新建;General标签:Chain选forward,Src.Address List选wifi_allowed。
2. Action标签:Action选accept;Comment填“放行扫码设备”,点击OK。
2. 阻断未认证设备流量
1. 再新建一条规则;General标签:Chain选forward,Src.Address填192.168.3.0/24。
2. Action标签:Action选drop;Comment填“阻断未扫码设备”,点击OK。
3. 重定向到认证页面
1. 新建规则;General标签:Chain选dstnat,Src.Address填192.168.3.0/24,Src.Address List选!wifi_allowed,Dst.Port填80,443。
2. Action标签:Action选redirect,To Ports填80;点击OK,确保未放行设备连WiFi后自动跳认证页。
第六步:关联认证页面与Hotspot
1. 点击【IP】-【Hotspot】-【Server Profiles】,双击默认的default配置文件。
2. 切换到HTML标签,Login Page填login.html,HTML Directory默认hotspot(与上传页面的文件夹一致),点击OK。
第七步:功能测试与参数调整
1. 测试流程:手机连“门店免费WiFi”→自动跳认证页→扫门店二维码打开链接→触发脚本后正常上网。
2. 调整时长:若要改上网时长,只需编辑【System】-【Scripts】中的scan_allow,修改timeout参数即可。
3. 查看记录:点击【System】-【Log】,可查看所有设备的扫码放行时间和IP记录。
