技术解读

以下内容由 GitRead 中文社区 编辑团队基于项目 README 与官方资料整理, 结合中文开发者的常见使用场景补充技术选型建议。具体以项目官方文档为准。

自动化资产侦察与漏洞监控平台 (ARL-Next) 深度技术分析

项目背景与痛点

在网络安全领域,企业和组织常面临海量资产难以全面覆盖与及时监控的挑战。OWASP 等安全标准要求企业对自身的互联网资产具有透明度,确保在第一时间发现并处理潜在的安全威胁。自动化资产侦察与漏洞监控平台 (ARL-Next) 正是为了解决这一核心问题而生。它无缝整合了 “天眼查/ICP -> 资产发现 -> 漏洞扫描 -> 威胁情报追踪” 的安全闭环,提供了一站式的资产管理和漏洞监控解决方案。

技术核心揭秘

核心组件

ARL-Next 的技术架构以 Puppeteer 和 Nuclei 为驱动引擎,结合 AI 技术,实现高效自动化资产侦察与漏洞扫描。Puppeteer 用于高级的、以浏览器为基础的数据抓取,Nuclei 则用于针对资产进行漏洞扫描。再辅以 AI 工具处理大规模数据流,确保安全运营无缝衔接。

架构图

graph TD A[用户输入] --> B[输入参数校验] B -->|"校验通过"| C[天眼查/ICP 数据抓取] C --> D[资产发现] D --> E[漏洞扫描] E --> F[威胁情报追踪] B -->|"校验失败"| G[异常数据处理]

实现原理

  • 天眼查/ICP 数据抓取:通过 Puppeteer 模拟浏览器行为,获取网站域名、备案号等信息。
  • 资产发现:多渠道爬取并整合资产数据,全面覆盖企业互联网资产。
  • 漏洞扫描:利用 Nuclei 根据资产特点进行有针对性的漏洞扫描,确保精准高效。
  • 威胁情报追踪:实时获取并整合威胁情报,涵盖恶意软件、网络攻击等信息,提供全面的安全防护。

功能亮点与差异

ARL-Next 相对于同类竞品的独特之处在于组件化设计与 AI 技术结合。Puppeteer 与 Nuclei 的集成提供了从前端到后端的自动化安全测试,而其 Docker 部署方式极大提升了易于扩展性和运维管理效率。此外,AI 部分支持快速处理并理解大规模数据流、威胁情报,提供个性化安全分析报告。

应用场景与落地建议

ARL-Next 适用于各类需要进行安全监控的企业,无论是互联网公司、IT 服务提供商还是政府部门,都能在其中找到合适的应用场景。使用时应注意不断更新监控策略与漏洞扫描规则,以应对动态变化的安全威胁。

  • 互联网公司:业务线上化需要全面覆盖的安保服务,能够应对不断变化的安全威胁。
  • IT 服务提供商:为客户提供全面的安全服务,提高服务质量与信誉。
  • 政府部门:对于掌握海量敏感数据的部门,全方位安全监控将是确保数据安全的“第一道防线”。

综合评价

通过细读 ARL-Next,我们可以发现它的优缺点都非常明确。

优点:

  • 集成度高:故障率低、广泛支持多种资产类型与威胁情报来源。
  • 高效且灵活:通过 Docker 极简化部署、依据场景定制化风险监控策略。

缺点:

  • 学习曲线陡峭:复杂的技术栈需要一定的基础。
  • 部署与维护成本:高灵活性带来了更高的定制化需求与管理成本。

总体来看,ARL-Next 是一款值得推荐给需要全面、高效安全服务的企业用户的解决方案。

README

English | 简体中文

ARL-Next

现代化资产测绘与漏洞监控平台

Modern Attack Surface Reconnaissance & Asset Intelligence Platform

企业资产关联 · 异步解耦调度 · 原生 MCP 协议集成 · 容器化开箱部署

Release Stars Forks License

Docker Python Nmap MongoDB Vue MCP

🚀 快速入门(5 分钟) • ⚡ 快速部署指南 • 💡 架构演进对比 • ✨ 核心特性 • 🔌 API对接指南 • 🤖 MCP配置指南 • 🎯 MCP实战用例 • 📜 更新日志 • 💬 讨论交流 • 📄 开源协议



💡 什么是 ARL-Next?

ARL-Next 是基于经典开源项目 ARL (资产侦察灯塔) 进行架构重构与持续演进的资产测绘平台。 针对大规模扫描场景下的任务队列阻塞、长时间运行内存增长以及历史依赖过时等工程瓶颈,系统实施了微服务拆分与异步任务解耦,全面升级现代运行时环境与测绘工具链,并集成了 Model Context Protocol (MCP) 标准协议,支持自动化资产透视与 AI 协同分析。


💡 架构演进与技术方案基准对比

评估维度 ARL 原始架构与实现 ARL-Next 重构方案
并发与调度架构 任务执行共用单 Celery 队列,复杂任务高并发时易发生队列阻塞与假死 拆分 OSINT 与截图为独立微服务,引入轻重分离队列与批量落库,显著收敛队列阻塞与并发瓶颈
自动化协议集成 无标准化外部调度接口,仅支持 Web 控制台人工交互 支持原生 MCP Server 与可视化治理中心,提供多维资产画像检索、细粒度 Scope 专用密钥、工具级开关与调用审计
企业资产拓扑 无关联企业与全类型数字资产下钻链路 资产组深度融合:支持企业股权关联与多类型 ICP 检索(网站 / APP / 小程序 / 快应用),构建多级集团拓扑与暴露面画像
容器构建与部署 依赖陈旧且缺乏镜像加速,构建拉取易受外部网络波动影响 多阶段容器构建与阿里云国内镜像源预编译,配套 Web / CLI 全量数据归档备份与迁移恢复能力
底层技术栈基线 Python 3.6 / Vue 2 / MongoDB 3.x / Nmap 7.70 Python 3.13 / Vue 3.5 / MongoDB 7.0 / Nmap 7.95 稳定版 现代运行环境基线基准对齐
敏感信息提取 基于外部 Go 二进制工具,跨平台存在依赖与编译维护成本 纯 Python 原生提取引擎,支持 JS/HTML 流式提取及 WIH 相对接口候选静态识别与同源可达性探测
Web 交互体验 大数据长列表无固定表头,分页状态未持久化,仅支持单一中文界面 中 / 英 / 俄三语国际化切换、表头与操作栏 Sticky 悬浮吸附、分页状态本地持久化、三栏式字典管理器
威胁情报协同 缺乏持续情报同步机制,时间戳处理不统一易产生冗余告警 CVE 与 GitHub 代码泄露监听、基于数据库原子更新锁去重、严格时区归一化

✨ 核心特性矩阵

  • 🤖 AI Agent 原生集成与 MCP 治理中心 (MCP 2.0):遵循 Model Context Protocol (2024-11-05) 标准,提供 远程原生 SSE 直连(Cursor / Claude Desktop 粘贴即用)与 本地 Stdio 桥接(自签证书 / 内网专网开箱即通)双模支持;内置可视化 MCP 治理中心(支持签发细粒度 Scope 专用密钥、工具级启用开关、速率配额与调用审计日志),覆盖五维资产画像、企业生态画像、条件检索、状态追踪及受控扫描调度。(👉 MCP 配置手册 · MCP 渗透测试实战用例库)
  • ⚙️ 异步解耦并发调度:微服务拆分与独立任务队列分流,结合批量数据落库优化,保障高吞吐扫描平稳运行。
  • 🌐 多级资产组与深度融合:企业资产查询深度融入资产组管理架构,支持集团多级架构管理、多类型 ICP(网站 / APP / 小程序 / 快应用)与生态资产自动化关联及网络暴露面统一测绘。
  • 🔍 现代资产测绘与 WIH 接口探测:基于 Nmap 7.95 稳定版;内置原生 Python 敏感信息流式提取引擎,支持从站点 HTML 与同源 JS 中静态识别相对 API 接口候选并执行同源 GET 可达性验证。
  • 🛡️ 漏洞与代码泄露监控:持续同步权威 CVE 漏洞情报,监听 GitHub 关联代码与凭据泄露,支持基于原子更新的去重机制。
  • 💾 全量数据备份与在线平滑运维:支持通过 Web 控制台或 CLI 工具一键打包导出/覆盖恢复全库 MongoDB 集合、站点截图、自定义字典与 PoC 插件(内置 SHA256 完整性校验与 Worker 消费安全暂停);集成容器健康探活、就绪轮询与后台在线热更新。
  • 🌍 多语言国际化与现代交互体验:内置简体中文、English、Русский 三语实时切换,结合全局设置项搜索、表头悬浮吸附与三栏式字典工作台。
  • 📦 预构建镜像加速:提供阿里云国内镜像源预编译构建制品,规避跨国网络波动导致的镜像拉取与依赖安装失败。

📸 界面预览

  • 全局仪表盘 (Dashboard):实时呈现资产暴露面态势、今日侦察动向、漏洞风险矩阵与威胁情报;集成系统资源占用(CPU/内存/磁盘)与扫描调度队列监控、风险演进趋势分析、全景安全调度日志流、Web 组件指纹 TOP 5 分布及实时侦察流水线追踪。

    ARL-Next 全局仪表盘

🖼️ 点击收起 / 展开更多核心业务界面
  • 多级资产组与全景资产画像:原企业资产查询现已深度整合至资产组统一架构。支持集团多级组织架构管理、企业生态资产关联分析 (OSINT)、网络暴露面测绘 (ASM) 与全景资产画像下钻(画像抽屉聚合 13 个维度;「资产搜索」页则为 12 个页签维度,不含 Nuclei 结果)。

    集团多级资产组与覆盖度

    企业生态资产 (OSINT) 维度

    网络暴露面 (ASM) 测绘

    13 维全景资产画像抽屉

  • 任务下发与策略调度:深度联动 Nuclei、基于 Python 原生引擎的多类型插件池(PoC 验证 / 弱口令爆破 / 服务识别等)及 8800+ 条 Web 指纹库,支持任务下发、状态轮转与全流程追踪。

    任务新建与策略选择

    任务全生命周期管理

  • 威胁情报与代码泄露雷达:实时追踪全球最新 CVE 漏洞,自动化监听 GitHub 敏感代码与凭证泄露。

    威胁情报雷达

  • 系统设置与现代字典管理:全新现代三栏式字典管理(支持在线预览/呼吸灯提示)、队列并发热扩缩容及告警通道。

    系统设置与字典管理


🏗️ 架构设计

ARL-Next 采用前后端解耦、异步分布式任务队列与轻量微服务集群架构。整体数据流与模块交互如下:

graph TD %% 1. 接入层 User["👨‍💻 安全分析师 (浏览器)"] -->|"HTTPS (5173,Basic Auth 可选)"| Nginx["🖥️ Frontend (Nginx + Vue 3.5)"] Agent["🤖 AI Agent (Claude / Cursor)"] -->|"轨道 1: 远程直连 (SSE /mcp/sse)"| Nginx Agent -.->|"轨道 2: 本地脚本 (Stdio 桥接)"| MCP_Stdio["🤖 本地 Stdio 脚本 (arl_mcp.py)"] %% 2. API 网关与微服务层 Nginx -->|"REST API 反代 (5000)"| Backend["⚙️ Backend API (Gunicorn / Python 3.13)"] Nginx -->|"SSE 长连接流式反代 (5005)"| MCP_Service["🚀 arl-mcp 异步微服务 (Python asyncio)"] MCP_Stdio -->|"HTTPS / API Token (5173 反代)"| Nginx %% 3. 调度与任务分流 (双轨解耦) Backend -->|"1. 同步 HTTP 直调 (16181)"| OSINT["🧩 OSINT 微服务"] Backend -->|"2. 生产扫描任务"| MQ(("⚡ RabbitMQ 3 (轻重/GitHub 多队列)")) %% 4. Celery Worker 扫描计算集群 subgraph WorkerCluster ["⚙️ Celery Worker 扫描与调度集群"] MQ -->|"轻量队列 arltask_light"| W_Light["⚡ 轻任务 Worker (空间测绘/单点更新/WIH/同步)"] MQ -->|"重载队列 arltask, arltask_heavy"| W_Heavy["🔥 重任务 Worker (常规扫描/风险巡航/Nuclei/PoC)"] MQ -->|"威胁队列 arlgithub"| W_Git["🛡️ 威胁情报 Worker (CVE/代码泄露)"] Scheduler["⏰ 监控调度引擎 (Scheduler & Beat)"] -.->|"周期触发"| MQ W_Heavy -->|"HTTP 截图渲染 (3000)"| Puppeteer["🧩 Puppeteer 微服务 (无头截图/异常自动重启)"] end %% 5. 数据统一落库 (从上往下自然汇聚分流) Backend <-->|"大盘查询 / 状态读写"| DB[("🗄️ MongoDB 7.0 (联合索引大宽表)")] OSINT -->|"异步结果直接入库"| DB W_Light -->|"safe_insert_asset_many 批量写入"| DB W_Heavy -->|"bulk_write 批量写入"| DB W_Git -->|"原子 upsert 写入"| DB Autoheal["🛡️ Autoheal 守护探针"] -.->|"docker.sock 探活与异常重启"| WorkerCluster classDef default fill:#fbfbfb,stroke:#e0e0e0,stroke-width:1px; classDef core fill:#eef2ff,stroke:#6366f1,stroke-width:2px; classDef ai fill:#f5f3ff,stroke:#8b5cf6,stroke-width:2px; classDef db fill:#ecfdf5,stroke:#10b981,stroke-width:2px; classDef micro fill:#fffbeb,stroke:#f59e0b,stroke-width:1px; class Nginx,Backend,WorkerCluster,W_Light,W_Heavy,W_Git core; class Agent,MCP_Stdio,MCP_Service ai; class DB,MQ db; class OSINT,Puppeteer,Autoheal,Scheduler micro;

核心架构要点:

  1. 🖥️ 展示与网关 (Frontend / Nginx):基于 Vue 3.5 + Nginx,支持核心数据表格与操作栏 Sticky 悬浮吸附;提供 Basic Auth 前置网关防护(默认关闭,可在顶部导航栏开启)。
  2. ⚙️ 业务与协议接入 (Backend / MCP):主业务基于 Python 3.13 + Gunicorn;配备独立的 arl-mcp 异步微服务容器,原生承载 MCP SSE 长连接与标准协议接口,实现多维资产画像与受控调度。
  3. 🧩 OSINT 独立微服务:专职企业资产与 ICP 情报采集,由 Backend 通过 HTTP 直接调用(含 5s 超时保护),独立于 Celery 扫描队列以规避长耗时任务阻塞。
  4. ⚡ 多队列 Worker 集群:划分轻量/重载/威胁情报独立队列;通过 Worker 子进程生命周期轮转机制控制内存增长;测绘执行引擎统一至 Nmap 7.95 稳定版。
  5. 🛡️ 微服务与守护探针 (Puppeteer / Autoheal):无头截图容器化隔离并支持请求计数轮转;Autoheal 守护进程定时探活扫描 Worker 并自动重启异常容器;纯 Python 引擎高效提取敏感信息。
  6. 🗄️ 高吞吐持久层与并发优化 (MongoDB 7.0):高频数据写入采用 bulk_write / safe_insert_asset_many 批量接口,核心集合覆盖联合唯一索引并设 1GB 内存池保护;解除不合理的内存硬限制,保障高吞吐扫描平稳性。

🚀 部署指南

生产部署 (推荐)

适用环境:公网云服务器 (Ubuntu / Debian / CentOS / 统信等)、企业内网服务器。
推荐配置:4 核 4G 及以上(保证多任务并发与大资产巡航稳定性)。
预估耗时:自带 Docker 环境通常在数分钟内完成;裸机需额外安装 Docker 与配置 Swap,耗时视宿主机与网络状况而定。

核心机制与优势:

  • ⚡ 国内镜像加速:直连阿里云国内镜像私库,规避跨国网络超时与拉取阻断。
  • 📦 开箱即用:预构建交付,无需在宿主机配置复杂编译链与工具库。
  • 🛡️ 双层安全防护:内置 SSL 证书,Basic Auth 前置网关防护默认关闭(可在顶部导航栏开启),核心组件默认私有网络隔离。
  • 🔄 后台平滑热更:可在管理后台触发在线升级流程,自动同步编排脚本与最新镜像。
  • 🩺 服务健康探活:内置 API 就绪轮询机制与内存防护配置,服务就绪再放行,保障启动稳定性。

🚀 部署方式选择

绝大多数场景直接执行下方「方式一」即可,无需预先判断系统类型或网络环境——脚本会自动探测系统、安装缺失依赖并调优内核。

方式一:国内镜像快速部署(推荐)

在服务器终端(需 root 权限)粘贴执行下方命令。命令从阿里云国内镜像提取部署编排,start-prod.sh 会自动配置 Swap、安装/补齐 Docker 与 Compose 插件并拉起服务:

mkdir -p ~/ARL-Next && cd ~/ARL-Next && \
docker pull crpi-laul1izptqrf0tkf.cn-beijing.personal.cr.aliyuncs.com/owl234-arl-prod/arl-web:latest && \
docker rm -f arl-temp 2>/dev/null || true && \
docker create --name arl-temp crpi-laul1izptqrf0tkf.cn-beijing.personal.cr.aliyuncs.com/owl234-arl-prod/arl-web:latest && \
docker cp arl-temp:/code/start-prod.sh ./ && \
docker cp arl-temp:/code/docker-compose.prod.yml ./ && \
docker cp arl-temp:/code/updater ./ && \
docker cp arl-temp:/code/tools ./ && \
docker cp arl-temp:/code/version.txt ./ && \
docker cp arl-temp:/code/CHANGELOG.md ./ && \
docker cp arl-temp:/code/CHANGELOG_en.md ./ && \
mkdir -p ./frontend && docker cp arl-temp:/code/frontend/default.conf.prod ./frontend/ && \
docker rm -f arl-temp && \
chmod +x start-prod.sh && bash start-prod.sh
Tip 提示
  • 单行执行提示:部分云厂商控制台(如网页 Web SSH、VNC、堡垒机)在多行粘贴时可能因吞换行或网络延迟导致指令乱序报错(如 No such container: arl-temp)。若遇到此类报错,请点击展开下方「单行逐步执行版」,逐行复制执行。
  • 若宿主机尚未安装 Docker,请先执行下方「方式二」的第一步补齐基础工具,再回来执行本命令。
🛠️ 若多行粘贴报错,点击展开【单行逐步执行版】

在终端中逐行执行以下命令(每行独立执行,无反斜杠连缀):

# 1. 创建并进入工作目录
mkdir -p ~/ARL-Next && cd ~/ARL-Next

# 2. 拉取最新生产镜像
docker pull crpi-laul1izptqrf0tkf.cn-beijing.personal.cr.aliyuncs.com/owl234-arl-prod/arl-web:latest

# 3. 创建临时容器提取编排与配置脚本
docker rm -f arl-temp 2>/dev/null || true
docker create --name arl-temp crpi-laul1izptqrf0tkf.cn-beijing.personal.cr.aliyuncs.com/owl234-arl-prod/arl-web:latest
docker cp arl-temp:/code/start-prod.sh ./
docker cp arl-temp:/code/docker-compose.prod.yml ./
docker cp arl-temp:/code/updater ./
docker cp arl-temp:/code/tools ./
docker cp arl-temp:/code/version.txt ./
docker cp arl-temp:/code/CHANGELOG.md ./
docker cp arl-temp:/code/CHANGELOG_en.md ./
mkdir -p ./frontend && docker cp arl-temp:/code/frontend/default.conf.prod ./frontend/
docker rm -f arl-temp

# 4. 赋予执行权限并启动服务
chmod +x start-prod.sh && bash start-prod.sh
方式二:完整命令部署(按系统类型手动执行)

下面两条命令的差异仅在第一段的基础工具安装方式(apt-get 与 yum 二选一),第二段完全一致。

第一步:安装基础工具并创建目录

  • Ubuntu / Debian / 统信:
    apt-get update && apt-get install -y docker.io openssl curl && \
    (systemctl enable --now docker 2>/dev/null || service docker start 2>/dev/null || true)
    
  • CentOS / RHEL / Alibaba Cloud Linux / TencentOS:
    yum install -y openssl curl && \
    (command -v docker &>/dev/null || curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun) && \
    systemctl enable --now docker 2>/dev/null || true
    

第二步:拉取部署编排并启动(所有系统一致)

mkdir -p ~/ARL-Next && cd ~/ARL-Next && \
docker pull crpi-laul1izptqrf0tkf.cn-beijing.personal.cr.aliyuncs.com/owl234-arl-prod/arl-web:latest && \
docker rm -f arl-temp 2>/dev/null || true && \
docker create --name arl-temp crpi-laul1izptqrf0tkf.cn-beijing.personal.cr.aliyuncs.com/owl234-arl-prod/arl-web:latest && \
docker cp arl-temp:/code/start-prod.sh ./ && \
docker cp arl-temp:/code/docker-compose.prod.yml ./ && \
docker cp arl-temp:/code/updater ./ && \
docker cp arl-temp:/code/tools ./ && \
docker cp arl-temp:/code/version.txt ./ && \
docker cp arl-temp:/code/CHANGELOG.md ./ && \
docker cp arl-temp:/code/CHANGELOG_en.md ./ && \
mkdir -p ./frontend && docker cp arl-temp:/code/frontend/default.conf.prod ./frontend/ && \
docker rm -f arl-temp && \
chmod +x start-prod.sh && bash start-prod.sh
方式三:GitHub 源码克隆部署(海外服务器 / 需要改源码)
git clone --depth 1 https://github.com/owl234/ARL-Next.git && cd ARL-Next
chmod +x start-prod.sh
bash start-prod.sh
Tip 提示

start-prod.sh 内置环境探针,裸机运行亦会自动安装 Docker 并优化内核配置。


🔑 访问与初始凭据

部署完成后,在浏览器中访问:https://<你的服务器IP>:5173(首次自签名证书请无视浏览器不安全提示)。

验证层级 默认账号 默认密码 说明
第一层:Nginx Basic Auth 网关 admin arl_next 前置防扫描器爆破(默认关闭,可在顶部导航栏安全开关处开启/关闭;修改密码需先关闭再重新开启)
第二层:ARL-Next 系统登录 admin 首次启动随机生成 既有账号密码保持不变;新密码至少 12 个字符

首次部署后,在受信宿主机执行 docker exec arl-web-prod cat /tmp/arl_initial_admin_password 读取初始密码;该文件权限为 0600,密码不会输出到启动日志。也可在首次启动前通过 ARL_ADMIN_PASSWORD 设置至少 12 个字符的初始密码。修改密码并确认登录成功后,可删除容器内的初始密码文件。升级不会重置已有账号;仍在使用旧默认密码的部署应主动修改。

登录会话有效期为 24 小时。长期 API/MCP 集成请配置独立的 API_KEY 并通过请求头发送,详见 鉴权与安全修复约定。

Important 重要

必须完成:请确保云服务器控制台安全组及系统本地防火墙已放行 5173 TCP 端口,否则将无法访问。

# Ubuntu / Debian
ufw allow 5173/tcp
# CentOS / RHEL
firewall-cmd --permanent --add-port=5173/tcp && firewall-cmd --reload
Tip 提示

可选优化(不影响基本可用性):

  • 替换商业证书:将真实 SSL 证书重命名为 arl.crt 和 arl.key 放至 ssl-certs/ 目录,再次执行 bash start-prod.sh。
  • 开启 Basic Auth 防护:登录后于顶部导航栏安全开关开启(默认关闭)。

🔄 生产环境版本升级

ARL-Next 提供两种升级路径:Web 管理后台在线更新(推荐,无需登录终端)与 终端标准手动升级。

方案一:Web 管理后台在线更新(推荐)

登录 ARL-Next 平台 ➔ 进入 「系统设置」 页面 ➔ 点击 「一键系统更新」。
宿主机更新守护进程将自动拉取最新构建、同步最新编排脚本与版本文件,并在后台完成容器热重启与服务就绪检查,通常无需登录终端。

Warning 警告

更新过程会重启后台 Worker 容器,正在运行的扫描任务将被中断(重启后标记为中断状态)。请在任务空闲时段执行。

方案二:终端标准手动升级

在服务器终端进入 ARL-Next 部署目录,根据初次安装方式执行对应命令。

  • 方式一 / 方式二部署的用户(免 Git,从镜像同步编排):

    cd ~/ARL-Next && \
    docker pull crpi-laul1izptqrf0tkf.cn-beijing.personal.cr.aliyuncs.com/owl234-arl-prod/arl-web:latest && \
    docker run --rm -v $(pwd):/host crpi-laul1izptqrf0tkf.cn-beijing.personal.cr.aliyuncs.com/owl234-arl-prod/arl-web:latest bash -c "cp /code/start-prod.sh /host/start-prod.sh && cp /code/docker-compose.prod.yml /host/docker-compose.prod.yml && mkdir -p /host/updater && cp -r /code/updater/. /host/updater/ 2>/dev/null || true; mkdir -p /host/tools && cp -r /code/tools/. /host/tools/ 2>/dev/null || true; mkdir -p /host/frontend && cp /code/frontend/default.conf.prod /host/frontend/default.conf.prod 2>/dev/null || true; cp /code/version.txt /host/version.txt 2>/dev/null || true; cp /code/CHANGELOG.md /host/CHANGELOG.md 2>/dev/null || true; cp /code/CHANGELOG_en.md /host/CHANGELOG_en.md 2>/dev/null || true" && \
    sudo bash start-prod.sh
    
  • 方式三部署的用户(Git 源码克隆):

    cd ~/ARL-Next && git pull && sudo bash start-prod.sh
    
Tip 提示

升级保障机制:

  • 数据增量平滑迁移:内置版本增量迁移逻辑,自动维护集合结构与联合唯一索引,降低升级冲突风险。
  • 运行镜像备份标签:升级前自动为当前运行的服务镜像(Web、Worker、Puppeteer、OSINT等)打上 backup-stable 标签,保障异常时可快速回滚。
  • 镜像加速与就绪探针:直连阿里云国内镜像仓库拉取构建制品,API 动态探活就绪后再行放行。

💾 系统数据备份与迁移恢复

支持在跨机器迁移、重大升级前对全库 MongoDB 集合、站点资产截图、自定义字典与 PoC 插件进行一键打包归档与 --drop 全量覆盖恢复:

  • Web 控制台可视化操作:进入 「系统设置」 ➔ 「数据备份与恢复」,支持在线创建备份(可选排除截图以压缩体积)、下载归档包、上传外部归档包及二次确认(输入 RESTORE)覆盖恢复。
  • 终端 CLI 运维工具(宿主机执行会自动透传至容器):
    # 创建全量备份(或追加 --no-screenshots 创建轻量备份)
    python3 tools/arl_backup.py backup --note "升级前全量快照"
    
    # 列出所有现存备份包及查看备份包详情
    python3 tools/arl_backup.py list
    python3 tools/arl_backup.py info <archive_name.tar.gz>
    
    # 覆盖恢复指定备份包
    python3 tools/arl_backup.py restore <archive_name.tar.gz>
    

🔌 二次开发与 API 集成

ARL-Next 提供标准化 RESTful API,支持外部自动化运维、CI/CD 流水线与安全编排 (SOAR) 系统对接。

  • 📖 交互式文档与在线调试:部署完成后可在浏览器中访问 https://<你的服务器IP>:5173/api/doc 查阅完整 OpenAPI / Swagger 规范并进行接口在线调用测试。
  • 📘 调用规范与避坑指南:关于 Token 鉴权机制、状态流转约束、任务停止/删除等关键 HTTP 特殊约定及数据命名空间隔离规范,请参阅 ➔ API 调用与二次开发约定指南 (API_GUIDE.md)。

❓ 常见问题与运维排错 (FAQ)

Q1: 首次通过 HTTPS 访问时,浏览器提示“不安全 / 您的连接不是私密连接”?

A: 系统首次启动时会自动签发本地自签名 SSL 证书。

  • 点击浏览器页面的 “高级” ➔ “继续前往 (不安全)” 即可正常访问(Chrome 浏览器亦可在页面任意空白处直接键盘盲打 thisisunsafe 跳过警告)。
  • 配置真实域名证书:将您申请的证书重命名为 arl.crt 和 arl.key 放至 ssl-certs/ 目录,执行 bash start-prod.sh 即可无缝切换。
Q2: 忘记系统登录密码或 Basic Auth 防爆破凭证怎么办?

A: 在服务器终端执行以下操作即可重置:

  • 重置平台管理员账号 (admin):
    docker exec -it arl-web-prod /code/backend/.venv-docker/bin/python3 /code/backend/inject_user.py --reset
    
    Note 注意

    平台启动时保留现有密码;追加 --reset 会生成新的随机密码并撤销登录会话。新密码从容器 /tmp/arl_initial_admin_password 读取;若设置了 ARL_ADMIN_PASSWORD 则使用该值。请在受信宿主机执行。

  • 重置/查看 Basic Auth 凭据:编辑工作目录下的 frontend/.htpasswd,或登录系统后在顶部导航栏安全开关处开启/关闭(修改密码需先关闭再重新开启)。
Q3: 点击 Web 端的“一键系统更新”时,提示 [ERROR]触发更新失败?

A: 这种情况通常是因为宿主机更新守护进程未响应。可通过以下任一方式解决:

  • 方案 A (推荐):直接在终端执行标准手动升级
    cd ~/ARL-Next && sudo bash start-prod.sh
    
  • 方案 B:重启宿主机更新服务后重试 Web 更新
    sudo systemctl restart arl-updater.service
    
Q4: 扫描任务较多时,如何调整系统并发性能?

A: ARL-Next 支持动态热调整并发,无需重启容器!

  • 登录平台 ➔ 进入 「系统设置」 ➔ 「扫描与并发」 ➔ 「任务队列并发」 子页;
  • 可视化调整重任务队列并发(常规域名 / IP 扫描、风险巡航、Nuclei/PoC 长线任务)、轻任务队列并发(空间测绘 / 单点更新 / WIH 提取 / 数据同步)与 OSINT 任务并发,保存后系统将自动热生效;
  • 上述三项均为 Worker 进程数(通常 1~128),受本机内存约束。页面会依据当前机器内存给出推荐值,可一键回填。
  • ⚠️ 如需调整单个任务内部的 DNS 爆破发包并发度(通常在数百至上千量级),请前往 「扫描与并发」 ➔ 「高级扫描与环境」 子页。二者不是同一指标,请勿按同一量级填写。
Q5: 常用 Docker 容器维护与日志排查命令速查?
# 查看所有容器运行状态与健康探针
docker compose -f docker-compose.prod.yml ps

# 实时查看扫描 Worker 执行日志
docker compose -f docker-compose.prod.yml logs -f arl-worker

# 平滑停止或重启核心容器服务
docker compose -f docker-compose.prod.yml restart
Q6: 在 CentOS 7 或 Linux 3.x 等老旧内核环境下部署,前端容器报错或端口无法访问?

A: 在 Linux 3.10 等老旧内核上,Docker 默认 Seccomp 安全策略可能会拦截底层系统调用(如 SYS_pwritev2 等文件写调用),导致前端 Nginx 写入 PID 文件失败(报错 pwrite() "/run/nginx.pid" failed (1: Operation not permitted))并反复崩溃重启。

处置与排查建议:

  1. 确认编排配置:最新版 docker-compose.prod.yml 已为 arl-frontend 默认配置 security_opt: [seccomp:unconfined] 兜底。
  2. 存量环境快速修复:若使用的是早期未包含该配置的部署编排,可在部署目录下执行以下命令追加并重载容器(内置幂等判断,多次执行无副作用):
    # 为 arl-frontend 补充解除 Seccomp 限制配置(若尚未配置)
    grep -q "seccomp:unconfined" docker-compose.prod.yml || sed -i '/container_name: arl-frontend-prod/a \    security_opt:\n      - seccomp:unconfined' docker-compose.prod.yml
    # 重建前端容器
    docker compose -f docker-compose.prod.yml up -d arl-frontend
    
  3. 重新执行部署校验:执行 bash start-prod.sh,脚本内置的容器状态断言与端口连通性探针将自动验证服务健康就绪。

📜 更新日志

详细的版本演进历史、各版本特性与问题修复记录,请参阅 ➔ CHANGELOG.md


🤝 致谢

本项目站在巨人的肩膀上,特此鸣谢以下项目与团队:

  • 核心架构:基于经典开源项目 ARL 资产侦察灯塔 深度重构,并参考了 Aabyss-Team/ARL 与 adysec/ARL 等优秀实践。
  • 指纹数据:特别鸣谢 威零安全团队 ( 公众号) 提供的高质量 Web 指纹库支撑。
  • 功能灵感:OSINT 企业查询深度借鉴了 ICP_Query,威胁监控模块汲取了 github-cve-monitor 的优雅设计。

ARL-Next 秉持开源互助的黑客初心,持续为网络安全攻防与企业防御建设贡献力量!


💖 赞助与支持

ARL-Next 的持续高频迭代离不开社区伙伴的慷慨支持。特别致谢以下赞助者:

Buy Me A Coffee

robotfish-001 phpmac 123lpone Qexzi 777


⚠️ 法律与免责声明

[!CAUTION] 合规红线与免责条款:
本平台仅供经过合法授权的企业安全建设、SRC 漏洞挖掘、学术攻防演练及安全研究使用。使用本工具开展任何探测与扫描前,使用者必须确保已获得目标资产所有者的明确书面授权,并严格遵守《中华人民共和国网络安全法》及当地法律法规。
严禁利用本工具从事任何未授权的入侵、攻击或破坏行为! 任何因违规滥用导致的网络安全事故或法律责任,均由使用者本人独立承担,本项目作者与贡献者不承担任何直接或连带责任。


📄 开源协议 (License)

ARL-Next 项目遵循 GNU General Public License v3.0 (GPL-3.0) 开源许可证协议。

  • 🆓 自由与开源:您可以免费用于企业自建、安全研究、资产测绘与攻防演练,并享有自由阅读、修改与定制源码的权利。
  • 🌐 传染与同协议共享:若您在二次开发中修改或基于本项目构建衍生作品并向第三方分发,必须保持在相同的 GPL-3.0 许可证下完整开源相关代码。
  • ⚖️ 署名与免责保留:任何形式的源码复制与再分发,均须保留原始作者版权声明、许可证全文以及免责条款。

💬 交流群与反馈通道

  • 🐛 Bug 提交与功能建议:欢迎通过 GitHub Issues 提交反馈,通常 24 小时内跟进。
  • 💡 技术交流与群聊:欢迎扫码添加作者微信或加入 QQ 交流群,探讨资产测绘、红蓝对抗与 AI 自动化安全。
  • 📢 版本发布动态:欢迎关注微信公众号【owl安全】,获取版本迭代说明、架构解析与更新通知。
👤 个人微信 📢 微信公众号 (owl安全) 🐧 QQ 技术交流群
个人微信 微信公众号 owl安全 QQ交流群

🌟 Star History

评论

暂无评论