核心用法
AdGuard Home Controller 是一款命令行工具,通过 AdGuard Home 的 REST API 实现对 DNS 过滤服务的远程管理。用户需配置环境变量(URL、用户名、密码)后即可执行多种操作:
- 状态监控:查看 DNS 查询量、拦截率、保护开关状态
- 域名检查:验证指定域名是否被拦截及拦截来源
- 黑白名单管理:快速添加允许或拦截规则,支持标准 AdGuard 过滤语法
- 保护切换:临时启用/禁用 DNS 过滤,便于故障排查
- 缓存清理:强制刷新 DNS 缓存使规则立即生效
显著优点
1. 零图形界面依赖:纯 CLI 设计,适合 SSH 远程管理、自动化脚本集成
2. 操作原子化:单一命令完成特定任务,学习成本低
3. 规则语法完整:支持 ||domain^ 标准语法,可精确控制子域名匹配
4. 配置灵活:支持环境变量与 JSON 配置文件双模式,密码可分离存储提升安全
潜在缺点与局限性
- 网络依赖:必须能直接访问 AdGuard Home 的 3000 端口,跨网段或公网部署需额外配置
- 无批量原生支持:多域名操作需自行编写 shell 循环
- 权限单一:依赖 AdGuard 管理员账户,无角色分级机制
- 无审计日志:操作记录依赖 AdGuard 服务端,工具本身不保留执行历史
适合人群
- 家庭网络管理员:快速修复误拦截网站
- 运维工程师:批量初始化 DNS 策略或集成 CI/CD 流水线
- 安全研究者:临时封堵恶意域名进行应急响应
常规风险
- 凭据泄露:
ADGUARD_PASSWORD明文存储于环境变量,共享终端或 history 日志可能暴露 - 误操作影响面大:block/allow 立即生效,若配置错误可能导致全家网络中断
- API 无二次确认:toggle、cache-clear 等操作无交互确认,脚本中需谨慎使用
- 版本兼容性:依赖 AdGuard Home 的 REST API,重大版本更新可能导致接口变更