ROS WEB认证全链路拆解:从抓包到放行、RADIUS对接与限速落地
简介这份资源围绕RouterOSROS的Web认证功能展开面向网络管理员、运维人员及无线热点部署学习者用于解决公共场所网络接入的授权与管控问题。压缩包共71个文件约95KB以19个html登录与状态页面、21个jpg与18个png界面素材、8个gif按钮图标为主另含css样式表、js脚本、xsd参数定义及txt错误说明构成一套可直接套用的热点认证页面模板。资源涵盖login、alogin、logout、status、error、redirect等完整认证流程页面并附带WISPAccessGatewayParam.xsd与md5.js便于对接认证服务器与定制品牌化登录界面。目前已有306人学习下载适合需要快速搭建ROS热点Web认证环境、参考页面结构与排错思路的读者借鉴使用。1. ROS WEB认证从抓包到放行的完整链路拆解很多人第一次接触 ROS WEB认证是在一个已经跑了半年、突然被要求“加个上网认证页”的现场。路由器是 RouterOS底下挂了几十台终端老板要求没认证的不能上网认证过的按账号限速。听起来简单但真动手才发现ROS 的 hotspot 认证和常见的 captive portal 完全是两套逻辑——它不是简单弹个页面而是靠一套基于 HTTP 重定向、IP 绑定和防火墙标记的联动机制在跑。这份资源包围绕的正是这条链路从 hotspot 服务端配置、认证页面模板、RADIUS 对接到用户组限速和放行策略把“认证前只放行认证流量、认证后按组放行”这件事拆成了可复现的步骤。适合手里有 RouterOS 设备、需要落地访客认证或员工上网审计的运维和网络工程师也适合想搞懂 hotspot 底层怎么跑的人。下面按“先跑通最小闭环再补限速和排错”的顺序来。2. 最小闭环hotspot 服务端与认证页怎么配2.1 先理解 hotspot 的三层结构ROS 的 hotspot 不是单一功能它由三部分组成hotspot 服务端监听认证请求、下发重定向、用户与用户组决定谁能过、过完什么待遇、以及防火墙里的 hotspot 链自动生成的放行规则。认证前所有流量被 hotspot 链拦下只放行到认证服务器的 80/443 和 DNS认证后用户 IP 被加入hotspot地址列表防火墙按用户组策略放行。理解这一点后面所有配置都是围绕“怎么让用户从被拦到被放”展开。常见做法是先用ip hotspot setup向导跑一遍生成基础配置再手动改。向导会问接口、IP 段、DNS 名称、认证方式选HTTP CHAP或HTTPS都行但要注意如果认证页要跑在 HTTPS 上证书得自己配否则浏览器会拦。2.2 用命令建一个可用的 hotspot 实例下面这段是在/ip hotspot下建一个最小实例接口是bridge-lan认证网段192.168.88.0/24网关192.168.88.1# 建 hotspot 实例绑定到内网桥接口 /ip hotspot add namehs-guest interfacebridge-lan address-poolhs-pool profilehsprof # 建地址池给未认证终端分配临时 IP /ip pool add namehs-pool ranges192.168.88.10-192.168.88.200 # 建 hotspot 配置文件指定认证页和 DNS 名称 /ip hotspot profile add namehsprof hotspot-address192.168.88.1 dns-nameauth.local login-byhttp-chap,http-pap # 建用户组认证后限速 2M/2M /ip hotspot user profile add nameguest-2m rate-limit2M/2M shared-users1 # 建一个测试用户 /ip hotspot user add nametest01 passwordtest123 profileguest-2m逻辑说明address-pool是给未认证终端用的临时地址池认证通过后终端会拿到正式 DHCP 地址如果 DHCP 和 hotspot 在同一接口ROS 会自动处理。login-by里http-chap比http-pap安全但部分老终端只支持 pap两个都开兼容性更好。rate-limit的格式是上行/下行单位默认是 kbps写2M就是 2Mbps。shared-users1表示一个账号只能一台设备在线多设备会顶掉前一个。配完后用一台终端连上bridge-lan浏览器随便打开一个 http 站点应该会被重定向到http://auth.local/login。如果没弹先查/ip hotspot active里有没有会话再看/ip firewall nat里有没有 hotspot 的 dst-nat 规则。2.3 认证页模板改哪里ROS 的认证页文件放在/hotspot目录下默认有login.html、status.html、logout.html、error.html等。要改品牌或加说明直接改login.html就行但注意两点表单的action必须指向/login隐藏字段dst和popup不能删否则认证后跳不回去。常见做法是保留原表单结构只改样式和文案。!-- login.html 核心表单别动 name 和 action -- form namelogin action/login methodpost input typehidden namedst value input typehidden namepopup valuetrue input typetext nameusername placeholder账号 input typepassword namepassword placeholder密码 input typesubmit value登录 /formdst是认证成功后要跳转的原始 URLROS 会自动填popup控制是否弹窗模式。如果自己重写页面这两个字段丢了用户认证完会停在空白页血泪经验。3. 对接外部认证RADIUS 与用户组限速的落地细节3.1 什么时候该上 RADIUS本地用户适合几十个账号的小场景一旦要对接 AD、LDAP 或已有计费系统就得走 RADIUS。ROS 作为 NAS把认证请求转发给 RADIUS 服务器服务器返回Access-Accept时带上Mikrotik-Rate-Limit、Session-Timeout等属性ROS 按属性执行。这样账号管理和限速策略都集中在服务端路由器只负责放行。配置分两步先在/radius里加服务器再在 hotspot 的use-radius打开。# 加 RADIUS 服务器secret 要和服务器端一致 /radius add servicehotspot address10.0.0.100 secretStr0ngSecret timeout2s # 在 hotspot profile 里启用 radius /ip hotspot profile set hsprof use-radiusyes # 如果本地用户和 radius 同时存在用这个控制优先级 /ip hotspot user profile set guest-2m radius-replyyestimeout2s是单次请求超时RADIUS 挂了会重试重试次数在/radius的accounting里调。radius-replyyes表示用户组允许 RADIUS 返回的属性覆盖本地限速如果服务端没返回限速就用本地的。3.2 限速属性怎么传才生效RADIUS 返回的Mikrotik-Rate-Limit格式是rx-rate/tx-rate比如2M/2M和本地rate-limit一致。但有个坑如果服务端返回的是2M/2M 4M/4M这种带突发burst的格式ROS 也认但突发只在短时间内生效别指望靠它跑满。另外Session-Timeout控制会话时长到点会强制下线适合做按时计费。常见做法是在 RADIUS 服务端按用户组下发不同属性比如访客组2M/2M、员工组10M/10M、VIP 组50M/50M。ROS 这边不用改只要use-radiusyes且用户组允许覆盖就行。3.3 认证后放行与防火墙联动认证通过后ROS 会把用户 IP 加入hotspot地址列表防火墙里自动生成的规则会放行这个列表的流量。但如果你自己写了防火墙规则顺序很重要hotspot 链的规则必须在forward链之前否则会被自己的规则拦掉。用/ip firewall filter print看hotspot 规则通常在最上面带hotspot链名。如果认证后还是上不了网先查/ip hotspot active里用户状态是不是authorized再看/ip firewall address-list里有没有这个 IP。没有的话多半是login-by方式不匹配或密码错了。4. 避坑与排查认证页不弹、认证后断流、限速不生效4.1 认证页不弹浏览器直接报错现象终端连上后打开 http 站点直接超时或显示无法访问没有重定向。原因通常是 hotspot 服务没起来或者dns-name解析不到。解决先/ip hotspot print看实例是不是running再/ip hotspot profile print看dns-name是不是一个能解析的域名。如果用的是auth.local这种本地域名终端 DNS 必须指向网关否则解析不了。另一个常见原因是终端开了 HTTPS 优先浏览器直接走 443而 hotspot 只拦 80。解决在login-by里加上https并配好证书或者让终端先访问 http 站点。4.2 认证成功但立刻掉线现象输入账号密码后提示成功但几秒后又被踢回认证页。原因多半是shared-users限制或Session-Timeout太短。解决查/ip hotspot user profile print里的shared-users如果是 1同一账号第二台设备登录会顶掉第一台。再看 RADIUS 返回的Session-Timeout如果是 60 秒那就是服务端设的改服务端。还有一种情况是终端 MAC 变了比如随机 MACROS 按 MAC 绑定会话MAC 一变就掉。4.3 限速不生效测速还是满速现象用户组里写了rate-limit2M/2M但认证后测速还是几十兆。原因通常是 RADIUS 返回了更高的限速覆盖了本地或者用户组没绑对。解决先/ip hotspot active print detail看当前会话用的哪个 profile再查 RADIUS 返回的属性。如果服务端没返回限速本地rate-limit一定生效如果返回了以服务端为准。另一个坑是rate-limit单位写2M是 2Mbps写2048k也是 2Mbps但写2m可能被解析成 2kbps大小写敏感。4.4 认证后部分网站打不开现象认证过了百度能开但某些站点超时。原因通常是 MTU 或 DNS 问题。hotspot 默认会改 MTU如果终端不支持大包会被丢。解决在/ip hotspot profile里把mtu设成1500或auto看终端表现。DNS 方面如果 hotspot 的dns-name和终端 DNS 冲突也会导致部分域名解析失败。常见做法是让终端 DNS 指向网关网关再转发到上游。4.5 用户列表里一堆未认证会话占着 IP现象/ip hotspot active里大量authorized为no的会话把地址池占满新终端拿不到 IP。原因是没有清理超时会话。解决在/ip hotspot里设idle-timeout比如5m超过 5 分钟没流量就清掉。另外keepalive-timeout也要设防止死会话。地址池别设太小按终端数 1.5 倍留余量。5. 进阶用脚本做认证日志与自动放行跑通之后我一般会加两样东西认证日志和自动放行脚本。日志用来追溯谁什么时候上的网自动放行用来处理“认证前就要访问的内部系统”。日志方面ROS 的/log里 hotspot 事件默认是info级别但默认不写文件。常见做法是开一个disk日志把hotspot,info写进去再用脚本定期导出。# 开 disk 日志只记 hotspot info /system logging add topicshotspot,info actiondisk # 脚本每小时把 hotspot 日志导出到 ftp示例按需改 /system script add nameexport-hs-log source{ /log print where topics~hotspot filehs-log /tool fetch address10.0.0.200 src-pathhs-log.txt uploadyes \ userloguser passwordlogpass modeftp dst-pathhs-log.txt }逻辑说明topicshotspot,info只抓认证相关事件避免日志爆炸。filehs-log会生成hs-log.txt存在路由器上再用fetch上传到内部 FTP。modeftp是明文内网用没问题跨网段建议换sftp或scp。脚本可以挂到/system scheduler里每小时跑一次。自动放行方面如果认证前就要让终端访问内部 OA 或打印服务器可以在 hotspot 的walled-garden里加 IP 或域名。walled-garden的规则在认证前就放行不弹认证页。# 放行内部 OA 服务器认证前可访问 /ip hotspot walled-garden add dst-address10.0.0.50 actionallow commentOA server # 放行整个域名后缀 /ip hotspot walled-garden add dst-host*.internal.local actionallowdst-address是精确 IPdst-host支持通配符。注意walled-garden只放行不认证所以别把公网地址加进去否则等于没认证。验证方法配完后用一台未认证终端访问10.0.0.50应该能直接打开访问外网应该弹认证页。如果内部系统也弹了检查walled-garden规则顺序ROS 是按顺序匹配的第一条匹配就停。从那以后我每次配 hotspot都强制先跑一遍walled-garden和idle-timeout再上用户和限速顺序反了就得推倒重来。希望帮到你。本文还有配套的精品资源点击获取

相关新闻

LDA主题模型实战:从文本预处理到参数调优的Python实现指南

LDA主题模型实战:从文本预处理到参数调优的Python实现指南

简介:基于Python的潜在狄利克雷分配(LDA)主题模型实现代码,适合自然语言处理初学者、文本挖掘研究者以及需要快速搭建主题建模流程的开发者使用,也可作为有一定基础的研究者验证模型效果的参考实现。压缩包内含可直接运…

2026/10/18 15:06:56 阅读更多 →
基于Python和Neo4j的美食知识图谱问答系统构建实战

基于Python和Neo4j的美食知识图谱问答系统构建实战

简介:基于Python知识图谱的美食问答系统完整源码,面向高校期末大作业、课程设计及毕业设计场景,适合需要快速搭建智能问答演示项目的学生或开发者学习借鉴。压缩包共18个文件,以Python脚本、JSON知识数据、TXT字典文本为主&#x…

2026/10/18 15:06:56 阅读更多 →
CNN+LSTM网络流量检测:模型构建与PyTorch实战

CNN+LSTM网络流量检测:模型构建与PyTorch实战

简介:基于CNN与LSTM相结合的网络流量检测系统Python源码,专为高校课程设计、毕业设计及期末大作业场景打造,也适合希望掌握深度学习流量识别方法的开发者参考。项目整体难度适中,代码均经过本地编译验证可运行,评审得分…

2026/10/18 15:05:56 阅读更多 →

最新新闻

网盘直链下载助手 LinkSwift:九大网盘直链获取完整指南

网盘直链下载助手 LinkSwift:九大网盘直链获取完整指南

网盘直链下载助手 LinkSwift:九大网盘直链获取完整指南 【免费下载链接】Online-disk-direct-link-download-assistant 一个基于 JavaScript 的网盘文件下载地址获取工具。基于【网盘直链下载助手】修改 ,支持 百度网盘 / 阿里云盘 / 中国移动云盘 / 天翼…

2026/10/18 15:56:17 阅读更多 →
3 步出片 LTX-2 视频:ComfyUI-LTXVideo 实操教程

3 步出片 LTX-2 视频:ComfyUI-LTXVideo 实操教程

3 步出片 LTX-2 视频:ComfyUI-LTXVideo 实操教程 【免费下载链接】ComfyUI-LTXVideo LTX-Video Support for ComfyUI 项目地址: https://gitcode.com/GitHub_Trending/co/ComfyUI-LTXVideo ComfyUI-LTXVideo 是 ComfyUI 的自定义节点包,为 LTX-2 …

2026/10/18 15:56:17 阅读更多 →
Qt Creator Kit缺失怎么解决?从排查到手动配置一篇讲透

Qt Creator Kit缺失怎么解决?从排查到手动配置一篇讲透

写 Qt Quick 工程,最让人窝火的不是 QML 语法报错,而是新建项目那一刻,Qt Creator 甩你一句"Kit 缺失"或者"No suitable kit found"。明明 Qt 装好了,版本也看着没问题,就是灰着"下一步"…

2026/10/18 15:56:17 阅读更多 →
git add 底层原理:暂存区、内容寻址存储与工程避坑指南

git add 底层原理:暂存区、内容寻址存储与工程避坑指南

开头我先说一句可能让很多人不舒服的话:git add恐怕是 Git 所有命令里被误用得最频繁的一个。大部分人每天都在敲git add .、git add -A,文件也确实“加进去了”,但如果你问一句“git add 之后,文件到底去了哪里”,能答…

2026/10/18 15:56:17 阅读更多 →
还在用在线工具站?试试本地开发工具箱:Base64、正则、哈希、JSON 一箱装齐

还在用在线工具站?试试本地开发工具箱:Base64、正则、哈希、JSON 一箱装齐

摘要:搜「json 格式化在线」→ 打开陌生网站 → 把生产配置粘进去——这个动作很多公司已经写进安全红线了。本文聊聊在线工具站的三个坑,以及如何用一套本地工具箱把 Base64、正则、哈希、加解密、数据转换、数据生成全部本地化,断网也能用。…

2026/10/18 15:56:17 阅读更多 →
opencode + playwright 实现AI编程到测试的迭代闭环:把 settings 改到 TaoToken

opencode + playwright 实现AI编程到测试的迭代闭环:把 settings 改到 TaoToken

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/18 15:55:17 阅读更多 →

日新闻

基于GMM的语音识别系统原理与MATLAB实现详解

基于GMM的语音识别系统原理与MATLAB实现详解

说到基于高斯混合模型(GMM)的语音识别系统,很多人第一反应就是一堆数学公式,觉得门槛很高。但如果你真的在MATLAB里把它落地跑通,会发现核心其实就是三件事:把声音变成特征向量,用GMM给每个类别…

2026/10/18 0:00:55 阅读更多 →
数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理这四个字听起来挺唬人,但落到具体操作上,无非就是让计算机按你的想法“摆弄”像素。我在一个模拟项目X里用了一套特别经典的基础处理流程:对图像做反白、改调色板、彩色转灰度,最后把像素数据导出成txt文件。单看每一…

2026/10/18 0:00:55 阅读更多 →
机器人大脑技术盘点:具身智能的感知、决策与数据闭环

机器人大脑技术盘点:具身智能的感知、决策与数据闭环

如果你的信息流最近也天天刷到“机器人大脑”这个词,你会发现一个很有意思的现象:每个人说的“大脑”根本不是同一个东西。有人指的是大语言模型,有人指的是运动控制系统,还有人指的是能理解物理世界的端到端模型。在2026年这个时…

2026/10/18 0:00:55 阅读更多 →

周新闻

基于GMM的语音识别系统原理与MATLAB实现详解

基于GMM的语音识别系统原理与MATLAB实现详解

说到基于高斯混合模型(GMM)的语音识别系统,很多人第一反应就是一堆数学公式,觉得门槛很高。但如果你真的在MATLAB里把它落地跑通,会发现核心其实就是三件事:把声音变成特征向量,用GMM给每个类别…

2026/10/18 0:00:55 阅读更多 →
数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理这四个字听起来挺唬人,但落到具体操作上,无非就是让计算机按你的想法“摆弄”像素。我在一个模拟项目X里用了一套特别经典的基础处理流程:对图像做反白、改调色板、彩色转灰度,最后把像素数据导出成txt文件。单看每一…

2026/10/18 0:00:55 阅读更多 →
机器人大脑技术盘点:具身智能的感知、决策与数据闭环

机器人大脑技术盘点:具身智能的感知、决策与数据闭环

如果你的信息流最近也天天刷到“机器人大脑”这个词,你会发现一个很有意思的现象:每个人说的“大脑”根本不是同一个东西。有人指的是大语言模型,有人指的是运动控制系统,还有人指的是能理解物理世界的端到端模型。在2026年这个时…

2026/10/18 0:00:55 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/18 0:55:02 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/17 17:22:31 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/18 12:16:16 阅读更多 →