nzbget

⬇️ 轻量安全的下载状态监控

基于 NZBGet JSON-RPC API 的下载状态监控工具,通过环境变量安全配置凭证,快速获取 Usenet 下载队列、速度及进度信息,适合个人 NAS 用户实时掌握下载动态。

收藏
8k
安装
1.9k
版本
v1.0.1
CLS 安全性认证2026-06-04
点击查看完整报告 >

使用说明

核心用法

NZBGet Status Checker 是一款轻量级的 Usenet 下载监控技能,通过调用 NZBGet 的 JSON-RPC API 实现远程状态查询。用户需预先配置三个环境变量(NZBGET_HOST、NZBGET_USER、NZBGET_PASS),即可通过四种模式获取信息:

  • count 模式:快速返回当前活跃下载数量,适合自动化脚本或简洁查询
  • speed 模式:获取实时下载速度(MB/s)
  • queue 模式:列出队列前 10 个项目的名称与进度
  • 默认模式:完整状态报告,包含活跃任务数、速度、剩余容量及队列详情

脚本采用 Bash 编写,依赖 curl 发起 HTTP 请求、jq 解析 JSON、bc 处理数值计算,输出经过格式化设计,兼顾机器可读性与人工阅读体验。

显著优点

1. 配置安全:凭证完全通过环境变量注入,源码中零硬编码,避免敏感信息泄露风险
2. 功能聚焦:单一职责设计,仅读取状态不执行任何写操作,行为边界清晰可控

3. 输出节制:队列展示强制限制 10 条,防止大队列(400+ 项目)导致信息过载

4. 错误完备:包含环境变量校验、网络不可达处理、空值检查等多重防护

5. 即开即用:无复杂依赖,主流 Linux/macOS 系统预装工具即可运行

潜在缺点与局限性

  • 协议明文:当前仅支持 HTTP,凭证与数据在传输层无加密,存在网络嗅探风险
  • 网络限定:设计初衷为内网场景,公网部署需配合 VPN 或反向代理
  • 依赖外部:要求目标系统预装 curl、jq、bc,极简容器环境可能缺失
  • 功能只读:无法执行暂停、删除、优先级调整等管理操作,纯监控定位
  • 无超时配置:curl 默认超时较长,NZBGet 不可达时响应延迟不可控

适合的目标群体

  • NAS/Homelab 用户:运行 NZBGet 下载服务的个人服务器管理者
  • 自动化爱好者:需要将下载状态集成到通知系统或仪表盘的进阶用户
  • Usenet 轻度用户:希望快速查看下载进度,无需登录 NZBGet Web 界面的便捷需求者
  • 多设备协同场景:通过聊天机器人或语音助手远程查询下载状态的智能家居用户

使用风险

  • 性能风险:NZBGet 服务响应慢或不可达时,脚本可能挂起至 curl 超时
  • 依赖风险:jq 或 bc 未安装时脚本直接失败,需提前确保环境完备
  • 信息泄露风险:HTTP 明文传输下,同一局域网内的恶意嗅探可捕获 API 凭证
  • 误报风险:NZBGet 认证失败时返回的 JSON 结构可能与预期不符,导致解析异常

安全解读

核心用法

NZBGet Status Checker 是一款面向自托管 NZBGet 用户的轻量级状态监控技能,通过调用本地 JSON-RPC API 实现下载队列查询。支持四种查询模式:

  • count: 返回活跃下载数量(纯数字输出)
  • speed: 返回当前下载速度(MB/s)
  • queue: 返回队列前10项摘要
  • 默认无参数: 完整状态报告(含活跃数、速度、剩余容量及队列详情)

环境变量配置:NZBGET_USER, NZBGET_PASS, NZBGET_HOST

显著优点

1. 零依赖攻击面: 仅使用系统标准工具(curl, jq, bc),无第三方包管理依赖,供应链风险极低
2. 凭证管理规范: 采用环境变量存储敏感信息,无硬编码密钥,符合 GDPR 数据最小化原则

3. 功能聚焦: 只读操作设计,无写入/修改队列能力,权限最小化

4. 输出节制: 队列自动截断至10项,避免大队列(400+)场景下的信息过载

5. 来源可信: T2 级维护者(GitHub 组织账号 clawdbot/skills),有持续维护记录

潜在缺点与局限性

| 问题 | 说明 |
|------|------|
| HTTP 明文传输 | 凭证通过 Basic Auth 明文发送,同一局域网内存在嗅探风险 |
| 无输入验证 | 环境变量值直接拼接 URL,特殊字符(@、:、/)可能导致解析失败 |
| 无超时机制 | curl 未设置 `--max-time`,服务无响应时可能无限挂起 |
| 协议版本锁定 | 仅支持 NZBGet 原生 JSON-RPC,未兼容 SABnzbd 等其他 Usenet 客户端 |
| 功能单向 | 纯监控工具,无法暂停、删除或调整下载优先级 |

适合人群

  • 自托管 NAS/Homelab 用户: 已部署 NZBGet 且仅需快速查询状态的场景
  • 自动化工作流集成: 需要将下载数量/速度接入 Home Assistant、Discord Bot 等通知系统
  • 多用户共享环境: 管理员希望提供只读查询权限,而不暴露 NZBGet Web 界面
  • 轻量级终端用户: 偏好命令行交互而非打开浏览器的效率型用户

常规风险

1. 网络层嗅探: 若 NZBGet 监听 0.0.0.0 而非 127.0.0.1,且未配置 HTTPS,内网凭证可被捕获
2. 环境变量泄露: 通过 ps aux/proc 可能暴露命令行环境变量(取决于 shell 实现)

3. API 版本漂移: NZBGet 未来版本若弃用 jsonrpc 端点,技能将失效

缓解建议

  • 配置 NZBGet 仅监听 127.0.0.1:6789,通过 VPN/SSH 隧道访问
  • 启用 NZBGet 内置 HTTPS 支持,并更新脚本 URL 协议
  • 使用 curl --user 选项替代 URL 嵌入凭证,避免特殊字符问题
  • 添加 --max-time 10 --connect-timeout 5 超时参数防止挂起

nzbget 内容

scripts文件夹
手动下载zip · 2.6 kB
check_nzbget.shtext/x-shellscript
请选择文件