pihole-ctl

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

🥥80总安装量 19评分人数 10
100% 的用户推荐

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

A

基本安全,请在特定环境下使用

  • 来自社区或个人来源,建议先隔离验证
  • ✅ 采用参数化 SQL 查询与数据库只读模式(`?mode=ro`),彻底杜绝 SQL 注入与数据篡改风险
  • ✅ 零第三方依赖,仅使用 Python 标准库,无供应链攻击与动态代码执行风险
  • ✅ 无网络通信与数据上传行为,确保拦截统计信息完全本地留存,隐私零泄露
  • ⚠️ 管理命令(enable/disable/update)需 sudo 权限,存在潜在权限提升风险,建议严格遵循最小权限原则配置
  • ⚠️ 来源为 T3 级个人开发者(1999azzar),虽代码完全透明可审计,但建议定期人工复核代码完整性

使用说明

核心用法

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 内容

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