跳到正文

管理

架构与协议

烽燧分成几层:上面几层不分品牌,最下面按品牌和你的路由器通信。每一层做什么,一次会话、一次写入怎样走,各品牌的路由器用什么接口。

烽燧分成几层。上面几层不管你用的是哪个品牌的路由器,做的事都一样;只有最下面的品牌驱动和协议部件按品牌去和路由器通信。所以一项功能只写一次,换一个品牌只是换掉最下面那一层。

烽燧的分层从上到下:入口、共用规则、服务、后端、调度器、会话客户端六层不分品牌;品牌驱动和协议部件按品牌接到路由器。入口控制台 · REST API · MCP · Telegram · 自愈共用规则入参检查 · 写闸门 · 审计日志服务信号与历史 · 控制 · 短信 · 蜂窝设置 · 告警后端每项读写一个动词:排队、过闸门、记录调度器唯一的队列 · 有人在用就让开 · 密码错就停会话一次一个会话 · 只交一次密码 · 用完就退出品牌驱动华为中兴品速通则康威烽火鲲鹏无限OpenWrt协议部件HiLinkubusAT 指令各品牌接口你的路由器(只连局域网地址)
烽燧的分层:上面六层不分品牌,品牌驱动和协议部件按品牌接到路由器

每一层做什么

层做什么
入口你和烽燧打交道的地方:网页控制台、REST API、给 AI 智能体用的 MCP、Telegram 机器人,以及默认关闭的自愈。
共用规则每个入口都要经过的检查:参数对不对(比如频段号、PCI 的范围);这台路由器能不能做这项写入、你有没有在「设置 → 设备」里把它关掉(写闸门);记一条审计日志。
服务功能本身,不分品牌:定时读信号和流量、保存历史曲线、锁频锁站和各项控制、同步和发送短信、蜂窝设置、告警。
后端把每一项读写变成一个固定的动作(读信号、锁小区、发短信……)送去排队,并记下这台路由器有没有这一项、写完回读是否一致。
调度器唯一的队列。所有入口的请求都在这里排队,写入排在读取前面;你在路由器管理页登录时,烽燧让开;密码不对,烽燧就停下。
会话和路由器之间的一次登录:一次只开一个,只交一次密码,用完马上退出。
品牌驱动每个品牌一个,知道这个品牌怎样登录、一次会话里发哪些请求、哪些功能有接口记录。
协议部件几个品牌共用、本身不属于哪个品牌的部分,比如 OpenWrt 和中兴 zWRT 都用的 ubus,移远、广和通模组的 AT 指令。

一次会话

路由器同一时间只允许一个管理员登录。烽燧每次只用一小会儿,用完就退出:

一次会话先看有没有人在用路由器的管理页,没有人才登录一次,读或写,然后马上退出;有人在用就让开,下次再来;无论成功失败都会退出。有人在用吗登录前先问登录一次密码错就停读或写写只发一次退出释放管理员有人在用:让开,下次再来无论成功失败,都会退出
一次会话:先问有没有人在用,再登录一次,读或写,然后退出
  • 先问有没有人在用。 登录之前先问路由器(这一步不需要密码)。你正在路由器的管理页上,烽燧就让开,下次再来。登录时路由器回答「已经有人登录」,也一样让开。
  • 只交一次密码。 路由器说密码不对,烽燧马上停下,不再重试,直到你在「设置 → 路由器」里改正。很多路由器连续输错三次就会锁住登录,所以烽燧一次也不多试。
  • 用完就退出。 读写结束、出错、超时,或者守护进程停止,烽燧都会退出登录,把管理员的位置让出来。一次会话最长 90 秒,通常不到一秒。

品牌留在「自动识别」时,烽燧先只发不需要登录的请求认出品牌,认出之后才发送密码。

一次写入怎样走

以锁小区为例:

  1. 检查参数。 频点要在频段的范围内,PCI 在 0–503(4G)或 0–1007(5G)之间。不对就直接告诉你,不发任何请求。
  2. 写闸门。 这台路由器有这项写入吗?你有没有把它关掉?不能写的,在排队之前就拒绝,不打开会话。
  3. 排队。 写入排在读取前面,但不会打断正在进行的会话。
  4. 在会话里再确认一次。 本次运行还没见过这台路由器的型号,就先在同一个会话里读一次型号,再按型号决定能不能写。
  5. 只发一次。 写入请求只发一次,出了什么事都不重发。
  6. 回读。 在同一个会话里读回设置,和刚写的不一致就告警。
  7. 记录。 控制台、审计日志和设备报告里记下发了哪些请求(只有名字,不含数值)和回读的结果。
  8. 断网保护。 在没有验证过的路由器上锁频或锁小区,或者在任何路由器上切 SIM 卡槽、改网络制式、手动选网、改 APN,之后 3 分钟网络还没恢复,烽燧就把设置改回原来的样子。你有意断网的写入(关闭移动数据、打开飞行模式)不会自动改回。

各品牌怎样通信

品牌路由器的接口用到的协议部件
华为HiLink:XML 接口,SCRAM 或旧式的密码登录,每个写请求带一次性令牌HiLink
中兴goform 网页接口(包括 ZXIC 固件的 /reqproc/ 写法),或较新型号的 zWRTubus(zWRT)
品速网页的 JSON 接口—
通则康威(ZLT)网页的 cmd 指令接口—
烽火网页的 JSON 接口(Pro 系列是另一种加密写法)—
鲲鹏无限LuCI 网页接口,加上一部分和 HiLink 写法相近的接口—
OpenWrtubus;蜂窝部分是模组的 AT 指令,经路由器上的模组服务发出ubus、AT 指令(移远、广和通)

哪些型号支持哪些功能,见支持的设备;在没有验证过的路由器上,写入怎样默认开启、怎样关闭,见其他型号与品牌。

数据存在哪里

  • 烽燧的数据都在 data/ 目录里:运行状态、控制台设置、短信镜像与通讯录、审计日志,都用你的 DATA_ENCRYPTION_KEY 加密,只有运行烽燧的用户能读。备份和换密钥见备份与恢复。
  • 烽燧不连接任何云服务。只有你自己配置的 Telegram 和 Webhook 会收到通知。
  • 运行时只用 Node.js 自带的模块,没有任何第三方依赖。

想参与开发

  • 加一个品牌: 写它的驱动(不需要登录的识别、登录前的检查、一次登录、退出,以及会话里的读写),记下这个品牌有哪些功能,把它加进驱动表。后端、调度器和服务都不用改。
  • 加一项功能: 给后端和会话各加一个动作,在有接口记录的品牌里实现。没有记录的品牌,读取显示「此型号不提供」,写入由写闸门拒绝。
  • 已经验证过的 H168-383: 发给它的请求一个字节都不能变。每次改动都在模拟路由器上逐字节比对请求来证明。
  • 完整的设计记录在 GitHub 上的开发者文档(第 19 节)。参与的规则见 CONTRIBUTING.md。

在 GitHub 上编辑此页

Esc

常用页面

快速开始开始使用安装与升级开始使用配置参考管理锁频与锁小区使用烽燧短信使用烽燧排障帮助