cli-anything-adguardhome 是做什么的?
通过 AdGuard Home REST API 实现网络级广告拦截和 DNS 管理。专为 AI 代理和高级用户设计,无需图形界面即可管理过滤、DNS 重写、客户端、DHCP 和查询日志。
安装
该 CLI 作为 cli-anything-adguardhome 包的一部分安装:
pip install cli-anything-adguardhome
前置条件:
- Python 3.10+
- 必须安装并运行 AdGuard Home
- 安装 AdGuard Home:
curl -s -S -L https://raw.githubusercontent.com/AdguardTeam/AdGuardHome/master/scripts/install.sh | sh -s -- -v
用法
基本命令
# 显示帮助
cli-anything-adguardhome --help
# 启动交互式 REPL 模式
cli-anything-adguardhome
# 检查服务器状态
cli-anything-adguardhome server status
# 以 JSON 输出运行(供代理使用)
cli-anything-adguardhome --json server status
REPL 模式
当不带子命令调用时,CLI 进入交互式 REPL 会话:
cli-anything-adguardhome
# 使用制表符补全和历史记录交互式输入命令
命令组
Config
连接和配置管理。
| 命令 | 描述 |
|---|---|
show | 显示当前连接配置 |
save | 将连接设置保存到配置文件 |
test | 测试与 AdGuard Home 的连接 |
Server
服务器状态和控制命令。
| 命令 | 描述 |
|---|---|
status | 显示服务器保护状态 |
version | 显示 AdGuard Home 版本 |
restart | 重启 AdGuard Home 服务器 |
Filter
DNS 过滤列表管理。
| 命令 | 描述 |
|---|---|
list | 列出所有配置的过滤列表 |
status | 显示过滤状态 |
toggle | 全局启用或禁用过滤 |
add | 通过 URL 添加新的过滤列表 |
remove | 移除过滤列表 |
enable | 启用特定过滤列表 |
disable | 禁用特定过滤列表 |
refresh | 强制刷新所有过滤列表 |
Blocking
家长控制、安全浏览和安全搜索设置。
| 命令 | 描述 |
|---|---|
parental status | 显示家长控制状态 |
parental enable | 启用家长控制 |
parental disable | 禁用家长控制 |
safebrowsing status | 显示安全浏览状态 |
safebrowsing enable | 启用安全浏览 |
safebrowsing disable | 禁用安全浏览 |
safesearch status | 显示安全搜索状态 |
safesearch enable | 启用安全搜索 |
safesearch disable | 禁用安全搜索 |
Blocked-Services
管理被拦截的互联网服务。
| 命令 | 描述 |
|---|---|
list | 列出当前被拦截的服务 |
set | 设置被拦截的服务列表 |
Clients
客户端设备管理。
| 命令 | 描述 |
|---|---|
list | 列出所有配置的客户端 |
add | 按名称和 IP 添加新客户端 |
remove | 移除客户端 |
show | 显示特定客户端的详细信息 |
Stats
查询统计。
| 命令 | 描述 |
|---|---|
show | 显示 DNS 查询统计 |
reset | 重置所有统计 |
config | 查看或更新统计保留间隔 |
Log
DNS 查询日志管理。
| 命令 | 描述 |
|---|---|
show | 显示最近的 DNS 查询日志条目 |
config | 查看或更新查询日志设置 |
clear | 清除查询日志 |
Rewrite
DNS 重写规则。
| 命令 | 描述 |
|---|---|
list | 列出所有 DNS 重写规则 |
add | 添加 DNS 重写规则 |
remove | 移除 DNS 重写规则 |
DHCP
DHCP 服务器管理。
| 命令 | 描述 |
|---|---|
status | 显示 DHCP 服务器状态 |
leases | 列出活动的 DHCP 租约 |
add-static | 添加静态 DHCP 租约 |
remove-static | 移除静态 DHCP 租约 |
TLS
TLS/HTTPS 配置。
| 命令 | 描述 |
|---|---|
status | 显示 TLS 配置状态 |
示例
检查服务器状态
cli-anything-adguardhome server status
cli-anything-adguardhome server version
管理过滤列表
# 列出当前过滤器
cli-anything-adguardhome filter list
# 添加新的黑名单
cli-anything-adguardhome filter add --url https://somehost.com/list.txt --name "我的列表"
# 刷新所有过滤器
cli-anything-adguardhome filter refresh
DNS 重写
# 添加本地 DNS 条目
cli-anything-adguardhome rewrite add --domain "myserver.local" --answer "192.168.1.50"
# 列出所有重写
cli-anything-adguardhome rewrite list
客户端管理
cli-anything-adguardhome clients add --name "我的电脑" --ip 192.168.1.100
cli-anything-adguardhome clients list
查询统计
# 显示统计(人类可读)
cli-anything-adguardhome stats show
# 显示统计(JSON 供代理使用)
cli-anything-adguardhome --json stats show
输出格式
所有命令支持双输出模式:
- 人类可读(默认):表格、颜色、格式化文本
- 机器可读(
--json标志):供代理使用的结构化 JSON
# 人类输出
cli-anything-adguardhome filter list
# 供代理使用的 JSON 输出
cli-anything-adguardhome --json filter list
针对 AI 代理
以编程方式使用此 CLI 时:
- 始终使用
--json标志 以获得可解析的输出 - 检查返回码 - 0 表示成功,非零表示错误
- 解析 stderr 以获取失败时的错误消息
- 对所有文件操作使用绝对路径
- 在其他命令之前先用
config test测试连接
更多信息
- 完整文档:见包中 README.md
- 测试覆盖率:见包中 TEST.md
- 方法论:见 cli-anything-plugin 中的 HARNESS.md
版本
1.0.0