在 OpenWrt 上用 AdGuard Home 做全家 DNS 过滤:三种模式与避坑
网络安全|
AdGuard Home 是一个带 Web 界面的 DNS 过滤服务。部署在软路由上之后,家里所有设备的域名解析都会先过一遍拦截规则,广告、统计与追踪类域名在 DNS 层就被挡掉,网页加载也会顺带变快一些。
安装与第一步必做的事
- 在 OpenWrt 的软件包或应用商店里搜索 AdGuard Home 安装,也可以从项目仓库下载 ipk 手动上传
- 装完先处理密码:AdGuard Home 的密码是配置文件里的哈希值,不要留弱口令。可用 docker run --rm httpd:2.4 htpasswd -B -n -b admin 你的密码 生成哈希,再写回手动设置里的 password 字段
- 改完重启软路由让配置生效
三种工作模式怎么选
- 作为 dnsmasq 上游(推荐):保留 dnsmasq 的缓存与 DHCP,本地未命中再交给 AdGuard Home。最稳定、兼容性最好
- 防火墙重定向 53 端口:把所有 DNS 流量强制转给 AdGuard Home,配置简单、全局生效
- 直接接管 53 端口:关掉 dnsmasq 的 DNS 功能,由 AdGuard Home 直接监听。纯净无冲突,统计最准确
上游 DNS 的两类配置不要混
- 上游 DNS 建议填加密地址(DoH/DoT),例如阿里 https://dns.alidns.com/dns-query、腾讯 https://dns.pub/dns-query、Cloudflare https://cloudflare-dns.com/dns-query
- Bootstrap DNS 必须填普通 IP(如 223.5.5.5、119.29.29.29、8.8.8.8),它负责解析上游 DoH 域名本身
- 把 Bootstrap 也填成 DoH 地址,是「装完立刻上不了网」最常见的原因
排错清单
- 广告没拦住:确认 53 端口是否真的被接管、上游 DNS 是否生效
- 上不了网:先查 Bootstrap DNS 能否正常解析
- 个别设备不生效:在该设备上清 DNS 缓存(Windows 用 ipconfig /flushdns)或重启设备
- 改完配置:service dnsmasq restart 后再测
效果边界
- 对网页广告、统计与追踪域名效果明显,加载速度通常有可感知提升
- 对视频客户端内嵌广告、以及绕过 DNS 的直连请求作用有限
- 别指望它拦掉一切,它只是网络侧的第一道过滤






