孙亮亮
返回 家庭网络

家庭网络

用 AdGuard Home 在 NAS 自建全家去广告 DNS:部署、规则与排错

2026年8月21日

NAS 部署 AdGuard Home,自建全网去广告 DNS,一次配置全家受益。

用 AdGuard Home 在 NAS 自建全家去广告 DNS:部署、规则与排错

摘要:浏览器去广告插件只能管一个设备、一个浏览器,而把拦截放在 NAS 的 DNS 层,全家手机、电视、平板的广告与追踪都能一并静音。本文手把手用 Docker 在 NAS 跑起 AdGuard Home,并讲清规则调校和常见坑。

为什么要在 NAS 上跑 DNS 而不是装插件

我之前也用浏览器插件,问题很明显:电视上的视频广告管不到,家人手机没装插件照样弹,更别提 App 内嵌的 WebView。DNS 层拦截的思路是——所有设备解析域名时先问我的 NAS,NAS 把广告域名直接返回空地址,请求根本发不出去。

好处是"一处部署,全网生效",缺点是配置稍重,要动路由器的 DNS 设置。但它一次性解决全家问题,长期维护成本反而低。

准备工作:端口与网络

AdGuard Home 需要两个端口:53(DNS 服务)和 3000(首次配置用的管理后台)。NAS 上若已跑了其他 DNS 类服务(比如某些品牌的 DNS 缓存),先确认 53 端口没被占用。

网络模式建议用 host,少踩容器网络和宿主机端口映射的坑。群晖用户记得在"控制面板-网络"里关掉系统自带的 DNS 转发,否则 53 端口会冲突。

Docker Compose 部署

version: "3"
services:
  adguardhome:
    image: adguard/adguardhome:latest
    container_name: adguardhome
    network_mode: host
    volumes:
      - ./work:/opt/adguardhome/work
      - ./conf:/opt/adguardhome/conf
    restart: unless-stopped

启动后用浏览器打开 http://<NAS局域网IP>:3000 按向导走。关键一步是"上游 DNS 服务器",我填的是国内可达的公共 DNS:

223.5.5.5
119.29.29.29
https://doh.pub/dns-query

开启"并行请求"能让解析更快。Bootstrap DNS 填 223.5.5.5 即可。

把全家流量引过来:路由器改 DNS

这是最关键也最容易被忽略的一步。进路由器后台(我是 OpenWrt,普通路由器同理),把"DHCP 下发的 DNS"从运营商默认改成 NAS 的局域网 IP。这样新连上的设备都会自动问 NAS 要域名解析。

注意:只改 LAN 口的 DNS 下发,别动 WAN 口。改完让手机重连 WiFi 生效,用 nslookup doubleclick.net 测一下,如果返回 0.0.0.0 说明拦住了。

规则订阅与去广告强度调校

默认规则太温和,建议再加几个中文友好的订阅:

打开"DNS 重写"可以给内网设备起名字,比如把 nas.home 指向 NAS IP,手机访问更顺手。

常见坑:解析变慢、误杀、IPv6

  • 变慢:上游 DNS 只留国内节点,关掉所有海外 DoH,否则跨境解析拖慢首屏。
  • 误杀:银行、政务类网站有时会被误拦,在"自定义过滤规则"里加白名单域名即可。
  • IPv6:家里开了 IPv6,要在 AdGuard 里同时监听 IPv6 并下发 IPv6 DNS,否则部分 App 走 IPv6 绕过拦截。

小结

AdGuard Home 不是万能(HTTPS 里的广告内容拦不到,那是插件干的活),但作为全家网络的第一道过滤网性价比极高。部署一次,手机、电视、平板全受益,后续只要偶尔看看拦截统计、更新规则就行。

本模块其他文章

用 AdGuard Home 在 NAS 自建全家去广告 DNS:部署、规则与排错 · 孙亮亮