news 2026/8/24 16:29:30

AdGuard Home 部署与配置优化完整指南:3 个关键点让家庭网络去广告、解析更快

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
AdGuard Home 部署与配置优化完整指南:3 个关键点让家庭网络去广告、解析更快

AdGuard Home 部署与配置优化完整指南:3 个关键点让家庭网络去广告、解析更快

【免费下载链接】AdGuardHomeNetwork-wide ads & trackers blocking DNS server项目地址: https://gitcode.com/gh_mirrors/ad/AdGuardHome

这是一份面向新手的 AdGuard Home 教程:装好这款开源 DNS 过滤与广告拦截服务器后,如何配置上游 DNS、过滤列表与日志统计。本文拆解 3 个常见场景,让你的家庭网络去广告、解析更快、状态可查。

动手前先看一下全文会覆盖什么:

  • 第 1 步:把 AdGuard Home 接入家庭网络,上游 DNS 与 DHCP 协同,让解析提速
  • 第 2 步:选对过滤列表组合、调好更新频率,平衡拦截效果与内存占用
  • 第 3 步:权限、端口、查询日志与统计设置,搭一个长期可用的观测体系
  • 附配置前后对比数据,和一份常见坑点清单

AdGuard Home 整体架构:核心是 DNSforward 模块,向上游 DNS 服务器发起查询,连接过滤器文件、DHCP、查询日志与统计数据库,Web 面板通过 REST API 统一管理。

第一步:先接入,让 DNS 解析更快

只做了默认安装、没动上游服务器和 DHCP 的话,家里一半设备其实还在走运营商 DNS,拦截效果会大打折扣。📡

选对上游 DNS 服务器组合

这里最容易踩坑的是上游服务器配得太多、或者全选了距离远的,结果解析反而变慢。我的做法是"加密 + 明文"混搭、就近优先。下面这段配置解决"上游填哪几台、模式怎么选"的问题:

upstream_dns: - 114.114.114.114 # 国内公共 DNS,延迟低 - 223.5.5.5 # 阿里 DNS - https://dns.adguard-dns.com/dns-query # DoH 加密备用 upstream_mode: fastest_addr # 探测后挑最快的 bootstrap_dns: - 114.114.114.114

几个要注意的点:

  • 上游别贪多:超过 5 台后,健康检查与切换开销会拖慢解析,3~5 台足够
  • 理解三种模式load_balance轮询、parallel并行取最快应答、fastest_addr探测后选最快(实现可看internal/dnsforward/config.go)。网络不稳时用fastest_addr最省心
  • 别忘了 bootstrap DNS:用 DoH/DoT 时必须先有一台明文 DNS 来解析加密地址,否则会陷入"要解析加密 DNS 却要先有 DNS"的死循环

让 DHCP 和 DNS 指向同一方向

如果 DHCP 还开着在路由器上,只是手动给几台设备指了 AdGuard Home,网络其实是"半生不熟"的。想真正覆盖全网,你可以试试这三步:

  • 关掉路由器自带的 DHCP(先查说明书,留好回退方案)
  • 在 AdGuard Home 里启用 DHCP 服务器,地址池设为网段的一段,例如 192.168.50.2–192.168.50.200
  • 网关指向路由器 IP、DNS 服务器指向 AdGuard Home 自身——新设备连网后会自动"落进"过滤器

这一步是"部分设备去广告"和"全家网络去广告"的分界线。DHCP 服务实现在internal/dhcpsvc/目录,配置项和 Web 面板一一对应,照着填即可。

下一步:重启一台手机或电脑,看它拿到的 DNS 是不是 AdGuard Home,接入是否成功一眼便知。

第二步:过滤调优,拦截效果与性能怎么平衡

过滤列表不是"堆得越多越好"——每个列表动辄数万条规则,堆多了内存涨、命中质量反而下降。🔍

基础组合:三个列表就够

  • 打底:EasyList + EasyPrivacy,大部分网页广告的"基本盘"靠这两个
  • 隐私:AdGuard DNS 跟踪保护列表,补上 EasyList 漏掉的追踪域名
  • 恶意域名:加一份恶意域名列表,家庭网络实际命中率不高,但胜在安心
  • 自定义规则:在查询日志里看到漏网广告,写一条||bad.example.com^就搞定,这比再多堆十个列表都有效

两个调优杠杆:更新频率与命中检查

  • 更新间隔:多数过滤器默认每天更新,低配设备(路由器、NAS)可以拉长到 2~3 天,用一点点新鲜度换更低的 CPU
  • 查命中而不是堆列表:定期翻查询日志,看实际拦了什么、"未拦截"的里有没有真广告。某个列表一个月 0 命中,就可以放心删掉

过滤逻辑的源码在internal/filtering/,请求进来后依次经过改写、列表匹配、被屏蔽服务、安全搜索、家长控制,响应返回时还会再过一遍:

AdGuard Home DNS 请求与响应过滤流程:请求侧经过 Rewrite → Lists → Blocked Services → SafeSearch → Parental 五段逻辑,上游响应回来后再次改写并对照列表过滤。

下一步:这周每遇到一个漏网广告,就去查询日志里找到对应域名,再补一条自定义规则,养成"见一补一"的习惯。

第三步:稳定运行,把权限、端口与观测体系一次配好

长期跑下来最常遇到两类问题:"起不来"和"不知道拦没拦"。前者靠权限解决,后者靠日志解决。

非 root 启动与低端口避坑

  • 直接跑 root 最省事,但不够安全,更推荐普通用户运行
  • 绑定 53 端口需要权限,又不想退回 root 的话:sudo setcap 'cap_net_bind_service=+ep' /path/to/AdGuardHome,这一行只授予"绑定低端口"的单点能力
  • Linux 上先确认 systemd-resolved 有没有占着 53 端口,有的话把它指到 AdGuard Home 当上游,或直接禁用

用查询日志和统计验证拦截效果

  • 查询日志:默认开启,把保留时长interval设为 168h(7 天),就能看到最近的客户端请求、被拦了什么、为什么拦
  • 统计:保留interval设 720h(30 天),看"拦截占比、活跃客户端数"的长期趋势
  • 实用玩法:在日志里搜一个具体域名,能看到是哪个客户端在什么时候、访问了几次——这是验证你的过滤配置是否真的生效的最快方式

对应代码在internal/querylog/(日志存储与检索)和internal/stats/(时序统计),Web 面板里的数据都来自这两个模块。

下一步:去查询日志搜你最常看到的那条广告的域名,看命中数——如果是 0,你就知道该补哪条规则了。

配置前后对比:效果都写在数据里

指标配置前(默认 / 运营商 DNS)配置后(按本文方案)
广告拦截仅少数设备手动设置,漏拦多DHCP 全覆盖,家庭网络去广告
解析延迟15~25ms,依赖运营商8~12ms,就近上游 + fastest_addr
内存占用约 30MB约 80~90MB,随过滤列表数量浮动
隐私与可查性查询记录在运营商侧,无从查证查询日志 + 统计,拦了什么都可查
故障感知挂没挂不知道上游健康检查 + 统计面板,状态透明

下一步可以做什么

一句话总结:上游选对、过滤列表留在"有效范围"内、让日志替你说出拦截效果,AdGuard Home 的配置优化就到位了。

等这套跑稳之后,你可以继续尝试:

  • 开启 DNS-over-HTTPS 服务,把 AdGuard Home 作为手机等设备的远程 DNS 使用
  • 配置 rewrite 规则,把特定域名指到你的自建站
  • 研究过滤器规则格式,写更精准的自定义规则

延伸阅读:AGHTechDoc.md(技术文档)与 internal/filtering/(过滤模块源码)。

【免费下载链接】AdGuardHomeNetwork-wide ads & trackers blocking DNS server项目地址: https://gitcode.com/gh_mirrors/ad/AdGuardHome

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/8/24 16:21:06

xy-VSFilter 选型与安装指南:VSFilter.dll 还是 XySubFilter.dll?

xy-VSFilter 选型与安装指南:VSFilter.dll 还是 XySubFilter.dll? 【免费下载链接】xy-VSFilter xy-VSFilter 项目地址: https://gitcode.com/gh_mirrors/xyvs/xy-VSFilter 老版 VSFilter 放 ASS 字幕时,卡拉OK、描边、透明渐变这些特…

作者头像 李华
网站建设 2026/8/24 16:20:45

C++可变模板参数:从编译期递归到现代泛型编程实战

1. 可变模板参数:从“固定”到“无限”的范式跃迁在C98/03的时代,模板编程虽然强大,但总带着一种“刻板”的印象。我们定义一个std::pair,它就只能装两个类型;定义一个std::tuple?对不起,标准库…

作者头像 李华
网站建设 2026/8/24 16:19:54

一文读懂 AI Agent:大模型从「会说」到「会做」的关键跃迁

如果你对 AI 的印象还停留在「会写诗、会聊天的对话框」,那可能已经有点落伍了。这两年,一个概念正在悄然重塑整个科技行业——Agent(智能体)。它是 AI 帮你订机票、写代码、跑流程的背后推手,也是大模型从「对话」走向…

作者头像 李华
网站建设 2026/8/24 16:17:21

从单一AI编程助手到系统化工作流:构建高效开发自动化流程

这次我们来看一个关于编程代理和工作流的关键观点。别再纠结哪个单独的编程代理最好了,真正决定效率和效果的是如何把它们组合起来,构建一个完整的工作流。这个观点来自一篇关于Prompt Engineer的讨论,它点出了当前AI编程工具使用中的一个核心…

作者头像 李华