通过 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/adminapiToken# 检查 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: <session-token>
响应:
{
"blocking": "enabled" | "disabled",
"timer": 30 // 重新启用前的剩余秒数(如果设置了定时器禁用)
}
POST /api/dns/blocking
Headers: sid: <session-token>
Content-Type: application/json
启用:
{"blocking":true}
禁用:
{"blocking":false}
定时禁用(秒):
{"blocking":false,"timer":300}
GET /api/stats/summary
Headers: sid: <session-token>
响应:
{
"queries": {
"total": 233512,
"blocked": 23496,
"percent_blocked": 10.06
},
"gravity": {
"domains_being_blocked": 165606
},
"clients": {
"active": 45
}
}
GET /api/queries?start=-<seconds>
Headers: sid: <session-token>
响应:
{
"queries": [
{
"domain": "example.com",
"status": "GRAVITY",
"time": 1768363900,
"type": "A"
}
]
}
Pi-hole v6 引入了重大的 API 变更:
| 功能 | v5 API | v6 API |
|---|---|---|
| 基础 URL | /admin/api.php |
/api |
| 认证 | URL/请求头中的令牌 | 基于会话 |
| 状态 | ?status |
/api/dns/blocking |
| 统计 | ?summaryRaw |
/api/stats/summary |
| 查询 | ?recentBlocked |
/api/queries |
| 白名单 | 通过 API 支持 | 不再通过 API 提供 |
重要提示: 域名白名单功能不再通过 v6 API 提供。您必须通过 Pi-hole 管理界面来添加域名到白名单。
{
"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 系统已预装)