用 Go 编写的开源网络级 DNS 广告与追踪拦截软件:在你的局域网里充当本地 DNS 服务器,一次部署,全屋设备自动去广告。
AdGuard Home 是一款用 Go 语言编写的开源(GPLv3)网络级 DNS 广告与追踪拦截软件,官方仓库见 github.com/AdguardTeam/AdGuardHome。它在局域网里充当一台本地 DNS 服务器:设备把域名查询交给它,它先对照过滤规则判断该域名是不是广告、追踪器或恶意域名——命中就直接返回拦截响应(NXDOMAIN / 0.0.0.0),未命中再转发给上游 DNS。相比浏览器插件只保护单个浏览器,它一次部署即可覆盖全屋所有设备;上游查询还支持 DoH / DoT / DoQ 加密通道。
它不是浏览器插件,也不是一台专门的硬件,而是一个跑在你自己设备上的 DNS 服务
源码完全公开,用 Go 语言编写,编译后是一个单二进制文件,可自由审计、二次编译与自托管,不存在任何"后门遥传"不透明的问题。
定位是"network-wide software for blocking ads and tracking":在 DNS 解析这一网络基础设施层工作,而不是在浏览器里,所以能保护手机、电视、IoT 等所有设备。
官方提供 Linux、macOS、Windows、FreeBSD 的二进制发布(见 Releases),也支持 Docker 与 OpenWrt 安装包。
除了 DNS 服务器角色,它还能兼任局域网的 DHCP 服务器,自动把自己的 DNS 地址推送给新入网设备,省去逐台手动配置。
理解它的关键,是把它想成"你自己家那台、多了过滤功能的 DNS"。
53 端口,UDP/TCP)。NXDOMAIN 或 0.0.0.0(可在设置里配置),设备拿不到广告服务器的真实 IP,广告/追踪请求自然发不出去。AdGuardHome.yaml,通过 Web 界面管理。很多人第一次会混淆——两者都能去广告,但工作层、覆盖范围完全不同
| 维度 | 浏览器插件(uBlock Origin 等) | AdGuard Home(DNS 层) |
|---|---|---|
| 工作层 | 浏览器内,网页渲染后过滤 HTML 元素/脚本 | DNS 解析层,在请求发出前就切断域名 |
| 覆盖范围 | 仅限安装了插件的某个浏览器 | 全屋所有设备:手机、电视、平板、IoT |
| 新设备接入 | 每台设备、每个浏览器都要单独装 | DNS 指过来即生效,无需任何客户端 |
| 能拦的东西 | 页面元素、弹窗、跟踪脚本(粒度细) | 域名级别(广告/追踪/恶意域名,粒度粗) |
| 资源消耗 | 吃浏览器内存,页面越多越卡 | 跑在路由器/小主机上,设备侧零感知 |
| 误杀风险 | 较低,可逐元素自定义 | 规则粒度粗,可能误伤正常域名,需白名单 |
实践中两者常常互补:AdGuard Home 负责在网络层大面积"清扫"广告域名,浏览器插件再精细处理页面内残留元素。
AdGuard Home 自己被设备查询,它再去查上游——这段"它→上游"的链路也可以加密
上游地址写成 https://dns.example/dns-query,DNS 查询封装在 HTTPS 里(443 端口),与网页流量混淆,防窃听防篡改。
上游地址写成 tls://dns.example,走 TLS 专用隧道(853 端口),协议开销低、连接稳定。
上游地址写成 quic://dns.example,基于 QUIC(RFC 9250)的加密 DNS,利用 0-RTT 特性降低握手延迟。
也可直接填 1.1.1.1、8.8.8.8 等明文上游,兼容性最好但链路可被窃听篡改,适合内网/调试。
官方 Wiki 对上游地址格式与加密协议支持有完整说明,见 AdGuard Home Wiki。