控制 Pi-hole v6DNS 广告拦截器:检查状态、查看统计、启用/禁用拦截,并通过 API 分析被拦截的域名。
Pi-hole Skill是一项面向实际任务的技能,主要用于通过 Pi-hole v6.;Setup. 设置您的 Pi-hole API配置 : 换用 设置环境变量: : 6;
该技能适合需要稳定复用相关能力的场景,可作为自动化工作流的一部分,也便于后续检查、调整和扩展。从功能定位来看,该技能强调把分散的操作要求整理成清晰、可复用的处理流程,使用户能够围绕既定目标快速准备输入、选择执行方式并获得结构化结果。实际使用前应先确认任务范围、数据来源、运行环境、必要权限和关键参数,再依据技能说明逐步执行;
若输入条件不完整,应先补齐信息或采用保守配置,避免因错误假设导致结果偏离需求。执行过程中需要关注工具调用是否成功、接口或依赖是否可用、输出格式是否符合预期,并对异常提示、缺失字段和边界情况进行处理;涉及批量任务时,还应保存进度,避免中断后重复操作。
通过 Pi-hole v6 API 控制您的 Pi-hole DNS 广告拦截器。
在 Clawdbot 配置中设置 Pi-hole API 配置:
skills:
entries:
pihole:
apiUrl: "https://pi-hole.local/api" # v6 API 路径
apiToken: "your-app-password-here" # 从 Pi-hole 管理界面获取
insecure: false # 若使用自签名证书,请设为 true
或者,设置环境变量:
export PIHOLE_API_URL="https://pi-hole.local/api" export PIHOLE_API_TOKEN="your-app-password-here" export PIHOLE_INSECURE="false"
http://pi-hole.local/admin 打开 Pi-hole 管理界面apiToken# 检查 Pi-hole 状态 "pihole status" # 关闭广告拦截 "pihole off" # 开启广告拦截 "pihole on" # 临时禁用 5 分钟(适用于需要加载广告的网站) "pihole disable 5m" # 禁用 30 分钟 "pihole disable 30" # 查看过去 30 分钟内被拦截的内容 "pihole blocked" # 查看过去 10 分钟(600 秒)内被拦截的域名 "pihole blocked 600" # 显示统计信息 "pihole stats"
POST /api/auth
Content-Type: application/json
{"password":"your-app-password"}
响应:
{
"session": {
"sid": "session-token-here",
"validity": 1800
}
}
GET /api/dns/blocking Headers: sid:响应: { "blocking": "enabled" | "disabled", "timer": 30 // 若已设定定时启用,则返回距重新启用的剩余秒数 }
POST /api/dns/blocking Headers: sid:Content-Type: application/json 启用: {"blocking":true} 禁用: {"blocking":false} 带定时禁用(单位:秒): {"blocking":false,"timer":300}
GET /api/stats/summary Headers: sid:响应: { "queries": { "total": 233512, "blocked": 23496, "percent_blocked": 10.06 }, "gravity": { "domains_being_blocked": 165606 }, "clients": { "active": 45 } }
GET /api/queries?start=-Headers: sid: 响应: { "queries": [ { "domain": "example.com", "status": "GRAVITY", "time": 1768363900, "type": "A" } ] }
Pi-hole v6 引入了重大的 API 变更:
| 功能 | v5 API | v6 API |
|---|---|---|
| 基础 URL | /admin/api.php |
/api |
| 认证方式 | 令牌通过 URL 或请求头传递 | 基于会话(session-based) |
| 状态查询 | ?status |
/api/dns/blocking |
| 统计信息 | ?summaryRaw |
/api/stats/summary |
| 查询记录 | ?recentBlocked |
/api/queries |
| 白名单管理 | 可通过 API 支持 | 不支持通过 API 操作 |
重要提示: 域名白名单功能在 v6 API 中已移除。您必须通过 Pi-hole 管理界面(Admin UI)手动添加白名单。
{
"apiUrl": "https://pi-hole.example.com/api",
"apiToken": "...",
"insecure": false
}
{
"apiUrl": "https://pi-hole.local/api",
"apiToken": "...",
"insecure": true
}
insecure 标志会在 curl 命令中添加 -k 参数,以跳过证书验证。
apiToken 与 Pi-hole 中生成的应用密码一致apiUrl 是否正确(结尾必须为 /api)insecure: truecurl 和 jq(大多数 Unix 系统已预装)相关专题
热门下载
相关下载
精品课程
共6课时 | 54.7万人学习
共89课时 | 133.9万人学习
共49课时 | 82.5万人学习