前言:
在用 OpenWrt 配合 AdGuard Home 实现广告过滤的时候,很多人都会遇到一个问题:到底该怎么配置 dnsmasq、AdGuard Home、还有 DNS 端口?是转发、是替换、还是重定向?这些听起来就让人头大。本教程就是为了帮你理清思路。
说到广告,AdGuard Home 的确能帮我们过滤掉一部分烦人的广告。但要注意,它的能力主要体现在“域名级别”的拦截,也就是说,能过滤掉那些通过 DNS 请求加载的广告内容。
但是也要实话实说,广告这东西,光靠 DNS 层面是很有限的。有些广告是反人类级别的设计,比如你在 App 里点个按钮就弹出来、摇一摇屏幕就跳转的“开屏广告”,这些属于 App 内部行为,AdGuard Home 是管不到的。毕竟,它不是万能工具,而是解决 DNS 层面的广告问题。另外,我们还得提防另一类难缠的广告,那就是通过 HTTPS 加载的广告。现在的网站基本都使用了 HTTPS 加密传输,这意味着 DNS 层面看到的只是域名,具体访问的 URL 和内容都被加密了。因此,很多广告服务商会把广告资源部署在和主站相同的域名下(比如 example.com 和 ads.example.com 共用一个证书),或者直接通过 CDN 混淆。这样一来,即使你在 DNS 阶段屏蔽了广告域名,也很难阻挡这些“挂羊头卖狗肉”的 HTTPS 广告。说到底,如果你真想把广告过滤得干干净净,光靠 AdGuard Home 是不够的,它更像是一道“门卫”,拦住那些名声在外的广告域名。但很多广告现在都开始“伪装”了,尤其是 HTTPS 加密下的广告,有些甚至和正常内容混在一起,看起来根本不像广告。这时候,AdGuard Home 再努力也抓不住它们。
所以,最理想的方式,还是得多管齐下。DNS 拦一部分,浏览器插件再帮你拦一部分。像网页上的弹窗广告、视频里的贴片广告、页面里乱七八糟的悬浮条,这些插件几乎都能帮你处理得妥妥的。而且插件还能细致到“隐藏某个按钮”“不显示某块区域”这种程度,是 DNS 层做不到的
教程开始
一、启用 AdGuardHome 服务
登录 OpenWrt 后台界面。
点击左侧菜单中的「服务」,找到并点击「AdGuardHome」。
勾选「启用」选项。
在「5553 重定向」中选择「作为 dnsmasq 的上游服务器」。
勾选以下两个选项:
- 「开机后网络准备好时自动重启」
- 「关机时备份工作目录文件」
点击「保存并应用」。此时状态会显示为「AdGuardHome 运行中,已重定向」。
二、进入 AdGuardHome 管理界面
点击界面中的「AdGuardHome Web:3000」按钮,或手动在浏览器中输入 OpenWrt IP 地址加端口号(例如 192.168.1.1:3000)进入管理界面。
本站编译的固件默认的后台账号和密码均为 admin,登录后即可进入仪表盘页面。
三、配置 DNS 设置
点击「仪表盘」中的「设置」,进入「DNS 设置」页面。
在「上游 DNS 服务器」中填写你想使用的 DNS 上游服务器地址,例如:
- 119.29.29.29
- 223.5.5.5
- 208.67.222.222
- 8.8.8.8
建议添加三到四个地址即可,组合框选择「并行请求」,可提升解析速度。
在「后备 DNS 服务器」中填写备用地址,当主上游服务器失效时使用,例如:
- 119.28.28.28
- 223.6.6.6
点击「测试上游 DNS 服务器」,确认显示成功后,点击「应用」。
如果不使用 IPv6,可以勾选「禁用 IPv6 地址的解析」选项,防止 IPv6 查询。
四、配置 DNS 缓存
- 缓存大小:填写 10000
- 最小 TTL 值:填写 60
- 最大 TTL 值:填写 86400
- 勾选「乐观缓存」,即使缓存已过期也会响应请求,同时尝试刷新缓存。
点击「保存」。
五、添加广告拦截规则
推荐以下国内适用的规则列表(选择性添加):
- AdRules – Cats-Team:综合性规则,适配网页和 App
https://raw.githubusercontent.com/Cats-Team/AdRules/main/adblock.txt - AdGuard 中文规则:官方中文广告过滤规则
https://filters.adtidy.org/extension/chromium/filters/224.txt - AdGuard 基础规则:国际通用规则,搭配国内规则使用效果更佳
https://filters.adtidy.org/extension/chromium/filters/2.txt - 去重规则合集:
https://raw.githubusercontent.com/hululu1068/AdGuard-Rule/main/rule/all.txt - 百万级规则集:
https://raw.githubusercontent.com/BlueSkyXN/AdGuardHomeRules/master/all.txt - 更新频繁的大合集规则:
https://raw.githubusercontent.com/217heidai/adblockfilters/main/rules/adblockdnslite.txt - Anti-AD 中文过滤规则:
https://anti-ad.net/adguard.txt - ADgk 安卓专用规则:
https://raw.githubusercontent.com/banbendalao/ADgk/master/ADgk.txt - 秋风广告规则:
https://raw.githubusercontent.com/TG-Twilight/AWAvenue-Ads-Rule/main/AWAvenue-Ads-Rule.txt
添加步骤:
在仪表盘点击「过滤器」→「DNS 黑名单」。
可启用预设规则,或点击「添加黑名单」→「添加自定义列表」。
输入一个名称,并将上述规则链接粘贴到输入框中。
点击「保存」。
六、其他常规设置优化
回到「设置」页面,点击「常规设置」:
过滤器更新间隔:选择 12 小时
视需求勾选以下选项:
- 使用 AdGuard 的「网页浏览安全服务」
- 使用 AdGuard 的「家长控制服务」
- 启用安全搜索(可强制 Google、YouTube 等启用安全搜索)
- 查询日志保留时间建议设为 24 小时
- 勾选需要的统计选项,统计时间范围建议也设置为 24 小时
点击「保存」。
至此,AdGuardHome 的基本设置已完成。你现在可以通过仪表盘查看 DNS 查询日志、拦截统计、过滤器更新情况等信息了。
dnsmasq 设置
- 登录 OpenWrt 后台,点击 网络,再点击 DHCP/DNS。
- 切换到 缓存 标签页:
- 将 “DNS 查询缓存的大小” 设置为 0。
点击 保存。
然后切换到 Resolv 和 Hosts 文件 标签页:
- 勾选 忽略主机文件目录。
- 点击 保存并应用。
网络接口设置(将 DNS 指向本地)
- 点击 网络,选择 接口。
- 编辑 LAN 接口,点击 高级设置。
- 将 DNS 地址 设置为 127.0.0.1。
- 点击 保存。
- 点击 保存并应用。
至此,设置完成。
AdGuard Home 重定向介绍(新手科普)
使用 AdGuard Home 做 DNS 解析有三种常见方式:
作为 dnsmasq 的上游服务器
意思:dnsmasq 仍作为本地 DNS 服务器,但会把所有查询请求转发给 AdGuard Home。
优点:不需要修改系统服务,配置简单。
缺点:查询多了一层转发,性能略低。
例子:像你先问朋友地址,朋友再帮你问餐厅。
使用 53 端口替换 dnsmasq
意思:让 AdGuard Home 直接监听 53 端口,完全取代 dnsmasq。
优点:性能最好,无需额外转发。
缺点:需要停止或卸载 dnsmasq,改动系统较大。
例子:你直接打电话给餐厅,不再问朋友。
重定向 53 端口到 AdGuard Home
意思:通过 OpenWrt 的防火墙,将所有 53 端口的请求强制转发到 AdGuard Home。
优点:无需修改 dnsmasq 或 AdGuard Home 配置。
缺点:需要配置防火墙规则,可能影响其他应用。
例子:你拨打一个电话,这个电话自动被转接到了餐厅。
补充说明
广告规则不是越多越好:规则太多不仅会增加系统资源开销,还可能导致误拦截。
建议:根据自己的使用习惯,经常查看哪些规则命中率高、哪些几乎不生效,合理选择和精简规则集,提高效率。
测试 DNS 是否生效
可以通过 nslookup 或 dig 命令测试 DNS 是否经过 AdGuard Home。
你也可以在 AdGuard Home 的“DNS 重定向”设置中添加一个特定的测试域名(如 www.baidu.com),将其指向一个固定的 IP(如 1.2.3.4),然后通过命令:
nslookup www.baidu.com
确认请求是否被 AdGuard Home 接收并处理。
转载声明:
转载此文章请注明出处。
若本文内容侵犯了您的权益,请通过本站下方邮箱与我联系,我会尽快处理,谢谢!

发表回复