news 2026/5/15 11:43:57

开源TR-069 ACS(自动配置服务器)GenieACS 的四个主要模块详细介绍

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
开源TR-069 ACS(自动配置服务器)GenieACS 的四个主要模块详细介绍

开源TR-069 ACS(自动配置服务器)GenieACS 的四个主要模块详细介绍

GenieACS 是一个开源的 TR-069(CWMP)自动配置服务器(ACS),广泛用于管理宽带终端设备(如光猫、机顶盒、路由器等)。它采用模块化设计,共分为四个核心模块:genieacs-cwmpgenieacs-nbigenieacs-fsgenieacs-ui。每个模块独立运行,通过 MongoDB 和 Redis 共享数据。下面分别详细说明每个模块的功能、配置和使用方式。

1. genieacs-cwmp(CWMP Server)

功能

  • 这是 GenieACS 的核心模块,负责处理 CPE(终端设备)发起的 TR-069 协议会话。
  • 接收和响应 Inform、GetParameterValues、SetParameterValues、Download、Reboot 等 RPC 请求。
  • 维护设备会话状态,执行预设(Presets)、任务(Tasks)和虚拟参数(Virtual Parameters)的逻辑。
  • 支持 Connection Request(主动唤醒设备),实现 ACS 主动下发指令。
  • 与 MongoDB 交互存储设备数据、会话历史,与 Redis 缓存实时状态。

配置(主要配置文件:config.json 或环境变量):

  • CWMP_INTERFACE/CWMP_PORT:监听接口和端口(默认 7547,SSL 可配 7557)。

  • CWMP_SSL:是否启用 HTTPS(需提供证书)。

  • CONNECTION_REQUEST_PORT:Connection Request 监听端口(默认 3000)。

  • MAX_WORKERS:处理并发会话的工作进程数(建议根据服务器性能设置)。

  • LOG_LEVEL:日志级别(debug/info/error)。

  • MongoDB/Redis 连接字符串:MONGODB_CONNECTION_URLREDIS_URL

  • 示例环境变量:

    exportCWMP_PORT=7547exportCONNECTION_REQUEST_PORT=3000exportMONGODB_CONNECTION_URL=mongodb://localhost:27017/genieacsexportREDIS_URL=redis://localhost:6379/0

使用

  • 启动命令:genieacs-cwmp(或使用 PM2/Systemd)。
  • CPE 必须在设备端配置 ACS URL 为http://your-server:7547/(或 HTTPS)。
  • 支持大量并发(数万设备),适合生产环境核心服务。
  • 调试时可查看日志中的会话交互细节。
2. genieacs-nbi(Northbound Interface)

功能

  • 提供 RESTful API(北向接口),用于外部系统(如 OSS/BSS、前端页面、脚本)对设备进行批量管理。
  • 支持设备查询、参数读取/设置、任务下发、固件升级、批量操作、事件订阅(Webhook)等。
  • API 路径通常为/devices/tasks/presets/files等。
  • 支持过滤器(强大的查询语法,如SerialNumber: "123*" AND SoftwareVersion: "1.0")。
  • 可触发 Provision(脚本)执行复杂逻辑。

配置

  • NBI_INTERFACE/NBI_PORT:监听接口和端口(默认 7557)。

  • NBI_SSL:是否启用 HTTPS。

  • AUTHENTICATION:API 认证方式(基本认证、JWT 等,可通过 config 或环境变量配置用户)。

  • 同样需要 MongoDB/Redis 连接。

  • 示例:

    exportNBI_PORT=7557exportUSERNAME=adminexportPASSWORD=supersecret

使用

  • 启动命令:genieacs-nbi

  • 示例 API 调用(使用 curl):

    # 查询所有设备curl-u admin:supersecret http://localhost:7557/devices# 对设备下发 GetParameterValuescurl-u admin:supersecret -X POST http://localhost:7557/devices/123456/tasks\-d'{"name": "getParameterValues", "parameterNames": ["InternetGatewayDevice.DeviceInfo.SerialNumber"]}'# 添加固件升级任务curl-u admin:supersecret -X POST http://localhost:7557/devices/?query=ModelName:"ABC"\-d'{"name": "download", "file": "firmware-v2.bin"}'
  • 常用于与第三方系统集成或自定义前端调用。

3. genieacs-fs(File Server)

功能

  • 专用的文件服务模块,用于向 CPE 提供固件、配置文件、脚本等文件的 HTTP 下载。
  • 支持文件元数据管理(版本、设备类型匹配)。
  • 在 Download RPC 中,ACS 会返回该模块的下载 URL,CPE 再从此模块下载文件。
  • 支持文件缓存、断点续传(部分设备支持)和访问日志。

配置

  • FS_INTERFACE/FS_PORT:监听端口(默认 7567)。

  • FS_SSL:是否启用 HTTPS。

  • DOWNLOAD_TIMEOUT:下载超时时间。

  • 文件存储路径:默认./files,可通过FILES_DIRECTORY指定。

  • 示例:

    exportFS_PORT=7567exportFILES_DIRECTORY=/var/genieacs/files

使用

  • 启动命令:genieacs-fs

  • 将固件或配置文件放入文件目录(或通过 API 上传)。

  • 通过 NBI API 注册文件:

    curl-u admin:supersecret -X POST http://localhost:7557/files\-F"file=@firmware-v2.bin"\-F"metadata={\"version\":\"2.0\",\"deviceType\":\"ONT\"}"
  • 在任务中引用文件名即可触发下载。

4. genieacs-ui(User Interface)

功能

  • 官方提供的 Web 图形化管理界面(基于 React)。
  • 提供设备列表、实时参数查看、任务下发、固件管理、预设配置、图表统计、日志查看等功能。
  • 支持多用户权限(管理员/只读)。
  • 通过调用 NBI API 实现所有操作,适合运维人员日常使用。

配置

  • UI_PORT:Web 服务端口(默认 3000)。

  • JWT_SECRET:用于用户登录的 JWT 密钥。

  • NBI_URL:指向 genieacs-nbi 的地址(默认 http://localhost:7557)。

  • 示例环境变量:

    exportUI_PORT=3000exportJWT_SECRET=your_very_secure_secretexportNBI_URL=http://localhost:7557

使用

  • 构建并启动:先npm install && npm run build,然后genieacs-ui(或使用 Docker)。
  • 访问地址:http://your-server:3000
  • 默认管理员账号:admin / secret(首次登录后建议修改)。
  • 主要页面:
    • Devices:设备列表、搜索、批量操作。
    • Presets/Provision:配置自动化脚本。
    • Files:固件/文件管理。
    • Tasks:查看任务执行状态。
    • Dashboard:概览统计。

总结

  • 四个模块相互独立,可分别部署在不同服务器上(推荐生产环境分离 cwmp 和其他模块以提升安全性)。
  • 所有模块共享同一个 MongoDB(存储设备数据、任务、预设等)和 Redis(缓存、会话状态)。
  • 典型部署方式:使用 Docker Compose 或 PM2 + Systemd 管理服务。
  • 官方文档:https://docs.genieacs.com
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/14 23:30:30

学长亲荐 9个AI论文软件:本科生毕业论文写作必备工具测评

在当前高校学术环境中,本科生的毕业论文写作正面临前所未有的挑战。从选题构思到文献综述,从内容撰写到格式排版,每一个环节都可能成为拖延与低效的源头。而随着AI技术的不断进步,越来越多的智能工具开始进入学术领域,…

作者头像 李华
网站建设 2026/4/27 20:35:04

导师推荐8个降AIGC工具,千笔帮你轻松降AI率

AI降重工具:让论文更自然,让学术更安心 在如今的学术环境中,越来越多的学生开始使用AI工具辅助写作,这虽然提高了效率,但也带来了AIGC率过高的问题。如何在保持原意不变的前提下,降低AI痕迹和查重率&#…

作者头像 李华
网站建设 2026/5/4 22:39:05

Firecracker

Firecracker是一个专为运行轻量级、短期任务而设计的虚拟化工具,它让虚拟机的启动速度接近容器,同时保持了虚拟机的安全隔离性。简单理解:你可以把它看作一个能极速生成“迷你虚拟机”的引擎。它在云端大规模运行短命任务(例如每次…

作者头像 李华
网站建设 2026/5/10 13:24:30

中专学历进入快消大厂终端销售岗位的可行性分析

行业背景与岗位需求快消行业终端销售岗位的核心职责包括市场调研、销售数据分析、客户维护等。大厂通常注重数据驱动的决策能力,因此数据分析技能成为关键加分项。中专学历的优劣势分析优势:实践经验丰富,对终端销售场景熟悉;劣势…

作者头像 李华
网站建设 2026/4/29 18:44:27

【小程序毕设源码分享】基于springboot+小程序的校园生活服务小程序的设计与实现(程序+文档+代码讲解+一条龙定制)

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am…

作者头像 李华
网站建设 2026/5/4 22:09:55

【小程序毕设源码分享】基于SSM+小程序的校园失物招领信息系统的设计与实现(程序+文档+代码讲解+一条龙定制)

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am…

作者头像 李华