AdGuard Home 完整配置指南一台机器搞定全屋广告与追踪拦截【免费下载链接】AdGuardHomeNetwork-wide ads trackers blocking DNS server项目地址: https://gitcode.com/gh_mirrors/ad/AdGuardHomeAdGuard Home 是一个开源的网络级 DNS 过滤服务器部署后所有设备共用一个出口做 DNS 解析广告和追踪域名在 DNS 层就被拦截无需在每台设备上装客户端。本文按配置任务流覆盖安装、上游 DNS、过滤、日志监控与调优。先认识一下项目AdGuard Home 本质上是一台带拦截能力的 DNS 转发器由三个部分构成组件作用对应源码DNS 代理接收设备查询转发给上游 DNS本地缓存internal/dnsforward/过滤器请求和响应两个方向过规则列表命中即拦截internal/filtering/Web 管理界面所有配置通过网页完成无需手改文件internal/home/设备把 DNS 指向 AdGuard Home 后查询先经重写、过滤列表、屏蔽服务、安全搜索等检查再转发到上游响应回来还会再检查一次。AdGuard Home 的 DNS 请求/响应双向过滤流程各模块Web API、Auth、DHCP、过滤器、日志都通过 REST API 协作整体结构如下AdGuard Home 各组件协作关系图快速上手最小可用配置最短路径分三步全程用官方脚本无需手动编译。1. 下载安装Linux/Unix/macOScurl -s -S -L https://gitcode.com/gh_mirrors/ad/AdGuardHome/raw/master/scripts/install.sh | sh -s -- -v安装脚本会下载二进制、创建用户、写入/opt/AdGuardHome/AdGuardHome.yaml脚本逻辑见 scripts/install.sh。2. 打开管理界面浏览器访问http://服务器IP:3000首次进入会引导你设置管理员账号和上游 DNS。Web 端口在http.address配置默认 3000。3. 把设备的 DNS 指过来路由器 DHCP 里把 DNS 改为 AdGuard Home 的 IP或单台设备手动设置。之后这台设备的所有查询都会经过它。完成这三步拦截就已经生效了。其余配置都是在此基础上按需增强。按场景的功能讲解想要解析更快选对上游 DNS 与转发模式上游 DNS 决定解析质量。在DNS 设置页配置upstream_dns列表建议 2~4 个混合加密和明文协议upstream_dns: - https://dns.adguard-dns.com/dns-query # DoH 加密 - tls://dns.adguard-dns.com # DoT 加密 - 1.1.1.1 # 明文兜底三个配套开关值得关注字段定义见 internal/configmgr/dns.go转发模式upstream_mode可选并行、负载均衡或选最快地址。追求速度选最快地址追求稳定选并行多个上游轮流分担选负载均衡。启动引导 DNSbootstrap_dnsDoH/DoT 需要靠明文 DNS 先解析出上游服务器地址留空会用系统默认跨网段部署时建议显式指定。上游超时upstream_timeout慢上游超时后自动切下一个网络抖动大的环境可适当调大。验证方式在查询日志里看同一域名的响应耗时或在设备上dig AGH地址 example.com观察 Query time 是否明显低于直连上游。想要拦截更强过滤列表与自定义规则过滤列表在过滤器页管理filters数组里每项就是一个订阅源filters_update_interval控制自动更新周期小时。列表规则编译后存放在internal/filtering/更新间隔调大能减少抓取和解析开销。比订阅列表更常用的是自定义规则user_rules语法一行一条||ads.example.com^ # 拦截整个域名 ||allow.example.com^ # 白名单优先级更高白名单用开头放在列表后即可修复误拦不用动订阅源。另有两类免列表能力屏蔽服务按服务名如 YouTube整体拦截可按客户端单独设置适合家长场景。DNS 重写rewrites把指定域名改写到内网 IP例如把nas.lan固定解析到 NAS 地址。想要覆盖全部设备DHCP 与客户端管理如果 AdGuard Home 本身可以管理路由器网段直接启用内置 DHCPinternal/dhcd/把地址池和网关指到路由器新设备上线自动获得正确的 DNS。启用后客户端会按 IP/MAC 自动出现在客户端页可以逐台单独设置上游 DNS例如 NAS 走内网 DNS单独开关过滤、屏蔽服务、安全搜索备注设备名方便在日志里识别想要看得见的效果查询日志与统计internal/querylog/提供两种记录功能配置项建议查询日志querylog.enabled、querylog.interval开文件写入保留 7 天左右interval: 168h统计statistics.enabled、statistics.interval保留 30 天看拦截总量趋势日志里每条记录带客户端、域名、结果Filtered/OK和耗时支持按域名、客户端过滤。评估拦截效果时直接搜被拦域名看命中量即可统计页的已过滤查询曲线能直观反映规则是否在工作。性能与稳定性调优只列真正影响体验的几项均在 DNS 设置页字段见 internal/configmgr/dns.goDNS 缓存cache_size是缓存上限字节家庭网络 4~8MB 足够。开启cache_optimistic后过期记录仍会先应答再异步刷新重复域名首包更快。 验证dig AGH地址 example.com连跑两次第二次响应应接近 0ms。缓存 TTL 钳制cache_ttl_min/cache_ttl_max上游返回的 TTL 过小如 1 秒会把缓存打得形同虚设设置最小值可强制缓存。 验证看统计页缓存命中率是否上升。并发上限max_goroutines限制同时处理请求的协程数防止被滥用拖垮内存普通家庭保持默认即可。限流ratelimit按每 IP 每秒请求数限制防 DNS 放大攻击公共网段建议开启。过滤器更新间隔列表多时把filters_update_interval从默认值调大到 24 小时减少更新期的流量和 CPU 尖峰。常见坑与排查设备还是解析到旧 DNS路由器上可能有多处 DNS 设置WAN 侧、LAN 侧、IPTV 子网逐处检查设备本身也要确认没写死 DNS。拦截不生效先查保护开关是否开启再看过滤列表是否更新成功自定义规则写错^锚点是最常见原因规则里域名前必须带||才表示完整域名匹配。误拦正常服务在自定义规则加||域名^白名单立即生效无需重启。加密上游解析失败DoH/DoT 上游需要先经bootstrap_dns解析服务器地址跨运营商或内网隔离时显式填几个可靠明文 DNS。端口绑定失败非 root 运行Linux 下可给二进制加能力位允许非 root 绑定 53 端口sudo setcap cap_net_bind_serviceep /opt/AdGuardHome/AdGuardHome日志文件无限增长querylog.interval控制的是文件轮转周期不是保留时长磁盘紧张时缩短它并配合size_memory控制落盘频率。配置项都有对应验证手段改完 DNS 类设置用dig看延迟和命中改完过滤规则去查询日志确认结果变化。后续可按网络变化调整上游和列表其他保持默认即可长期稳定运行。【免费下载链接】AdGuardHomeNetwork-wide ads trackers blocking DNS server项目地址: https://gitcode.com/gh_mirrors/ad/AdGuardHome创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考