节点管理
扫描节点负责执行扫描任务。本页介绍如何在控制台对节点进行日常运维与状态监控。
探针的部署与集群水平扩展
如果您想在新机器上部署探针、运行多个节点,或查询不同类型节点的硬件配置建议,请参阅部署指南:分布式部署。
节点概览与实时心跳

在左侧导航栏进入「扫描节点」,系统将呈现全局所有已注册探针的运行卡片与统计报表:
| 字段栏目 | 作用解释 | 状态示例 |
|---|---|---|
| 节点名称 | 客户端通过 TESTNET_NODE_NAME 环境变量设定的业务别名 | node-beijing-01 |
| 节点 ID | 节点注册后自动生成的唯一标识(雪花数字串) | 1932123456789012345 |
| 工作状态 | 实时反映节点是否能正常接收任务 | 🟢 在线 / 🔴 离线 |
| 最后心跳 | 上一次心跳的时间 | 12 秒前 |
| 并发任务数 | 当前正在执行的任务数 | 3 / 5 |
| 系统信息 | 节点的操作系统、内核与内存信息 | Linux x86_64 / 16GB |
节点状态说明
| 状态 | 图标 | 说明 |
|---|---|---|
| 在线 | 🟢 | 节点正常运行,可接收任务 |
| 离线 | 🔴 | 节点超过约 3 分钟(180 秒)未上报心跳,自动判定离线 |
节点管理操作
查看节点详情
点击节点卡片上的「详情」按钮可查看:
- 系统配置(CPU 核心数与使用率、内存、磁盘、运行时长)
- 网络信息(IP、MAC 地址、操作系统与架构)
- 工具白名单(受限工具列表或「全部工具(未限制)」)
配置节点
点击「配置」打开「节点高级配置」弹窗,可设置:
- 工具运行白名单限制:限制该节点仅拉取和执行指定工具(见下节)
- 客户端 YAML 配置:下发节点本地
config.yaml(执行器开关、并发数等)
删除节点
离线节点可删除(不影响已执行的任务记录):
- 确保节点已停止(状态为离线)
- 点击「删除」按钮
- 确认删除
TIP
删除后如需重新使用该节点,客户端重新启动时会自动重新注册为新节点。
节点工具白名单
默认情况下,任意在线节点可以拉取并执行平台内的全部安全工具。通过「工具白名单」可以限制某个节点只运行指定的工具,实现节点分工与算力隔离。
查看白名单状态
节点卡片与「详情」弹窗中均展示当前节点的白名单状态:
| 标签 | 含义 |
|---|---|
N 个工具 | 该节点已被限制,仅允许运行白名单内的 N 个工具 |
全部工具 | 未限制,该节点可执行平台内所有已启用工具 |
配置白名单
- 在节点卡片上点击「配置」,打开「节点高级配置」弹窗
- 在顶部「工具运行白名单限制」区域的多选框中选择允许运行的工具
- 点击「保存配置」即时生效
选择器会按工具的运行时类型自动分组,便于快速定位:
| 分组 | 包含的工具类型 |
|---|---|
| Docker 工具 | 容器化执行的扫描工具(如 Subfinder、Nuclei、Nmap) |
| HTTP 工具 | 原生 HTTP 请求探测类工具 |
| DNS 工具 | DNS 解析查询类工具 |
| TCP 工具 | TCP 端口探测类工具 |
| Shell 工具 | 本地进程/命令行执行类工具 |
| 其他工具 | 未声明运行时类型的工具 |
TIP
- 多选框留空表示不限制,该节点可执行所有安全工具
- 选择器支持关键字搜索过滤,组内工具按名称排序
- 白名单保存后,节点后续只拉取白名单内工具的任务;已派发的存量任务不受影响
典型场景
- 节点分工:让出口带宽好的节点只跑容器化漏扫(Docker 工具),内网节点只跑 HTTP/TCP 探测
- 资源保护:低配设备限制为 DNS/TCP 等轻量工具,避免容器任务拖垮主机
- 合规收敛:指定节点仅执行经过审批的工具集合
节点执行能力
| 执行方式 | 所需条件 | 说明 |
|---|---|---|
| Docker | 挂载 Docker Socket | 执行容器化工具(如 Subfinder、Nuclei) |
| Shell | 安装对应二进制 | 执行本地命令行工具(PROCESS 类型) |
| HTTP | 网络可达 | 发送 HTTP 请求 |
| DNS | 网络可达 | DNS 查询解析 |
| TCP | 网络可达 | TCP 端口探测 |
常见问题排查
节点注册后显示离线
- 检查网络连通性(节点能否访问服务端 3100 端口(Nginx 统一入口);
8081为后端直连端口,仅在自行暴露该端口时可用) - 确认
TESTNET_CLIENT_SECRET配置正确 - 查看日志:
docker logs testnet-client
任务一直停留在 PENDING
- 检查是否有在线节点
- 查看服务端日志确认任务分发是否正常
Docker 工具执行失败
bash
# 验证 Docker Socket 是否可访问
docker exec testnet-client docker ps客户端环境变量参考
客户端节点支持通过 TESTNET_ 前缀的环境变量覆盖 config.yaml 配置:
| 环境变量 | 类型 | 说明 |
|---|---|---|
TESTNET_SERVER_URL | string | 服务端地址(如 http://host:8081 或 https://host:3100) |
TESTNET_SERVER_TLS_ENABLED | bool | 是否启用 TLS(true/1) |
TESTNET_SERVER_TLS_INSECURE_SKIP_VERIFY | bool | 是否跳过 TLS 证书校验(自签名证书时设为 true) |
TESTNET_CLIENT_SECRET | string | 节点连接密码(从服务端 .env 中获取) |
TESTNET_NODE_NAME | string | 节点名称 |
TESTNET_LOG_LEVEL | string | 日志级别(debug/info/warn/error) |
TESTNET_MAX_CONCURRENT | int | 最大并发任务数(默认 3) |
TESTNET_POLL_TIMEOUT | duration | 长轮询超时时间(默认 30s) |
TESTNET_POLL_INTERVAL | duration | 长轮询间隔(默认 5s) |
TESTNET_HEARTBEAT_INTERVAL | duration | 心跳上报间隔(默认 30s) |
TESTNET_DOCKER_ENABLED | bool | 是否启用 Docker 执行器(true/1) |
TESTNET_SERVER_TIMEOUT | duration | 服务端请求超时(如 30s) |
TESTNET_WORK_DIR | string | 任务工作目录 |
TESTNET_CACHE_DIR | string | 缓存目录 |
TESTNET_ALLOW_PRIVILEGED | bool | 是否允许容器特权执行(默认 true,生产环境建议设为 false) |
TESTNET_ALLOW_SSRF | bool | 是否允许 SSRF 探测内网(默认 true,生产环境建议设为 false) |
TESTNET_ALLOWED_VOLUME_PATHS | string | 允许挂载的目录列表(逗号分隔,整体覆盖内置默认清单,如 /tmp/,/opt/testnet/) |
WARNING
TESTNET_ALLOW_PRIVILEGED 和 TESTNET_ALLOW_SSRF 出厂默认均为 true(放行)。面向不可信目标或部署在办公网/生产网的节点务必显式设为 false。详见 探针沙箱与安全机制。