pihole-ctl

🛡️ Pi-hole 广告拦截监控专家

基于 Python 原生 SQLite 只读查询技术,安全连接本地 Pi-hole 数据库,提供精准的广告拦截统计与服务状态管理,助力用户全面掌控网络流量安全。

收藏
3k
安装
706
版本
latest
CLS 安全性认证2026-05-19
点击查看完整报告 >

使用说明

核心用法

pihole-ctl 是一款专为本地 Pi-hole 广告拦截器设计的管理与监控技能。它通过 Python 原生 sqlite3 库直接连接 Pi-hole 的 FTL 数据库(/etc/pihole/pihole-FTL.db),以只读模式(?mode=ro)安全查询关键统计数据,包括最近 24 小时的拦截量、顶级查询域名、最活跃客户端等。同时,该技能支持通过 CLI 执行基础管理操作,如启用/禁用广告拦截(pihole enable/disable)和更新 Gravity 阻止列表(pihole -g)。用户可通过命令行参数灵活获取 JSON 格式的统计摘要或详细列表,便于集成到自动化监控流程中。

显著优点

该技能在安全架构上表现突出:采用参数化 SQL 查询彻底防范注入攻击,数据库连接强制只读模式杜绝误操作风险,且完全基于 Python 标准库实现,零第三方依赖消除了供应链攻击面。性能方面,直接查询 SQLite 数据库避免了 API 中间层开销,响应迅速且资源占用极低。权限设计遵循最小权限原则,明确区分数据库读取(仅需 pihole 组权限)和管理命令(需 sudo)两种权限层级,并在文档中提供了清晰的配置指导。

潜在缺点与局限性

功能上,该技能仅限于本地 Pi-hole 实例管理,不支持远程多节点监控;且主要聚焦统计查询和基础服务控制,缺乏对 DHCP、DNS 配置等高级功能的修改能力。部署方面,用户需手动配置 Linux 用户组权限,对非技术用户存在一定门槛。此外,作为 T3 级个人开发者维护的项目,长期维护稳定性与官方背书力度相对有限。

适合的目标群体

此技能特别适合以下用户:自建 Pi-hole 的家庭网络管理员,需要定期审查网络查询日志的技术爱好者,关注隐私保护且具备基础 Linux 操作能力的用户,以及小型办公室/工作室的 IT 运维人员。对于希望将 Pi-hole 统计集成到本地自动化工作流(如定时生成网络健康报告)的开发者尤为适用。

使用风险

主要风险集中在权限配置方面:执行管理命令时的 sudo 权限若配置不当可能导致权限提升风险,建议严格限制 sudo 仅用于特定 pihole 命令。此外,脚本依赖固定路径的数据库文件,若 Pi-hole 采用非标准安装路径可能导致功能失效。虽然数据库访问为只读,但仍需确保 /etc/pihole/pihole-FTL.db 的文件权限设置正确,防止其他非授权用户通过此脚本间接访问网络行为数据。

安全解读

核心用法

pihole-ctl 是一款专为 Pi-hole 设计的本地管理 Skill,充当"网络守护者"角色。核心功能分为三类:

1. 统计查询:通过 Python 脚本 query_db.py只读模式连接 Pi-hole 的 FTL SQLite 数据库 (/etc/pihole/pihole-FTL.db),支持获取 24 小时广告拦截概览、Top 10 查询域名/客户端等数据。查询使用参数化 SQL,杜绝注入风险。

2. 服务管理:封装 pihole enable/disable CLI 命令,快速切换 DNS 过滤状态;支持 pihole -g 更新 Gravity 黑名单数据库。

3. 审计分析:识别网络中的"话痨客户端"(高频查询设备)及被拦截最多的广告域名,辅助网络优化。

---

显著优点

  • 极致安全:零外部网络连接,纯本地操作;仅使用 Python 标准库(sqlite3, json, argparse 等),无供应链攻击面。
  • 权限最小化:数据库访问强制 mode=ro 只读模式,管理操作需显式权限(sudopihole 用户组),符合安全最佳实践。
  • 轻量可靠:146 行代码,结构清晰,功能单一聚焦,无冗余依赖。
  • 隐私零风险:数据不出本地,无收集、无传输、无存储用户敏感信息。

---

潜在缺点与局限性

  • 权限配置门槛:首次使用需手动将运行用户加入 pihole 组(usermod -aG pihole <user>),对 Linux 新手不够友好。
  • 本地实例限制:仅支持管理本地 Pi-hole,无法远程操控多节点或云端实例。
  • 功能边界明确:不提供 Web 界面可视化、不修改黑名单规则、不处理 DHCP/DNS 高级配置。
  • 数据库兼容性:依赖 Pi-hole FTL 数据库结构,若 Pi-hole 大版本更新导致 Schema 变更,需同步维护查询语句。

---

适合人群

  • 家庭网络管理员:希望快速查询"今天拦了多少广告"、"哪个设备请求最多"。
  • Pi-hole 运维者:需要快速启停服务或更新黑名单,偏好命令行效率。
  • 隐私敏感用户:拒绝云服务、要求数据完全本地化的场景。

---

常规风险

| 风险类型 | 评估 | 说明 |
|---------|------|------|
| SQL 注入 | 极低 | 使用参数化查询,无字符串拼接 |
| 数据泄露 | 极低 | 零网络传输,纯本地只读访问 |
| 供应链攻击 | 极低 | 无第三方依赖 |
| 权限滥用 | 低 | 需手动配置用户组,管理操作需 `sudo` |
| 提示词投毒 | 无 | 未发现恶意指令注入 |

使用建议:确保 Skill 运行环境与 Pi-hole 同机或可信内网,定期检查 pihole 用户组成员,避免过度授权。

pihole-ctl 内容

references文件夹
scripts文件夹
手动下载zip · 2.8 kB
db-schema.mdtext/markdown
请选择文件