OpenWrt 上 AdGuardHome + SmartDNS 配置教程:全家去广告与 DNS 优选

导读摘要:在 OpenWrt 路由器上组合使用 AdGuardHome(过滤广告和追踪)与 SmartDNS(并发查询多个上游并选出最快 IP),讲清 dnsmasq、AdGuardHome、SmartDNS 三者的端口和转发顺序,以及和代理插件共存时的注意事项。

简短回答:推荐的链路是 设备 → dnsmasq(53)→ AdGuardHome → SmartDNS → 上游 DNS。AdGuardHome 负责过滤广告、记录查询日志,SmartDNS 负责同时向多个上游查询并选出最快的 IP。关键是三者端口不能冲突,而且同一台路由器上只保留一个组件做 Fake-IP。

一、三个组件分别做什么

组件作用示例端口
dnsmasqOpenWrt 自带,负责 DHCP 和本地域名(如 router.lan)53
AdGuardHome按过滤规则拦截广告、追踪域名,提供查询日志和统计5353
SmartDNS并发查询多个上游,测速后返回最快的 IP,支持 DoH/DoT 上游6053

二、配置 SmartDNS

安装 smartdns 和 luci-app-smartdns,在界面中设置本地端口为 6053,然后添加上游服务器。等价的配置文件写法:

bind :6053
server 223.5.5.5
server 119.29.29.29
server-https https://doh.pub/dns-query
server-https https://dns.alidns.com/dns-query
speed-check-mode ping,tcp:80,tcp:443
cache-size 4096

这里只用国内上游,目的是让国内域名解析到最近、最快的 CDN 节点。国外域名交给代理插件处理,见下文第四部分。

三、配置 AdGuardHome

  1. 安装 adguardhome(或 luci-app-adguardhome),首次打开网页向导,DNS 监听端口设为 5353;
  2. 「设置 → DNS 设置 → 上游 DNS 服务器」填写 127.0.0.1:6053,即 SmartDNS;
  3. 「过滤器 → DNS 黑名单」添加常用规则列表,不要一次加太多,否则误拦截和内存占用都会增加;
  4. 回到 OpenWrt「网络 → DHCP/DNS」,在「DNS 转发」中填写 127.0.0.1#5353,并勾选「忽略解析文件」。

完成后用电脑执行 nslookup example.com,在 AdGuardHome 的查询日志中能看到这条记录,说明链路通了。

四、和代理插件(OpenClash、Nikki 等)共存

  • 只保留一个 Fake-IP:代理插件开了 Fake-IP,AdGuardHome 和 SmartDNS 就不要再做任何「假 IP」处理,否则两层映射会导致访问失败;
  • 常见做法:dnsmasq 把查询交给代理插件,代理插件的国内 DNS(nameserver)填 SmartDNS 的 127.0.0.1:6053,国外域名由代理插件远端解析;需要去广告时把 AdGuardHome 放在代理插件之前;
  • 出现部分网站打不开:先暂停 AdGuardHome 过滤测试,排除误拦截,再检查链路顺序。

DNS 污染、泄露和加密 DNS 的原理见 DNS 解析原理与 DoH / DoT / DoQ 详解。

💡 机场情报局精选推荐:高品质海外节点与 IEPL 专线是流畅访问的基础,欢迎查阅我们的实时评测:【2026 稳定高速机场推荐榜单】。