为什么需要在飞牛NAS上部署AdGuard Home
家庭网络中的智能电视、手机、平板和电脑,每天都会产生大量DNS请求。默认情况下,运营商DNS不仅解析速度慢,还时常插入广告和劫持页面。AdGuard Home是一款开源的网络级广告拦截软件,它通过接管全屋设备的DNS解析请求,在广告内容加载之前就将其屏蔽,效果远好于单设备安装拦截插件。
在飞牛NAS上部署AdGuard Home,无需额外购买硬件,利用NAS 24小时在线的特性,即可为整个家庭网络提供广告过滤和隐私保护。相比在软路由上部署,飞牛NAS上的Docker方案更加灵活,不影响主路由的稳定性,升级和维护也更为独立。
准备工作
在开始部署之前,请确保你的飞牛NAS已经满足以下条件:
- 飞牛OS版本为最新版,Docker功能正常可用
- NAS的IP地址固定(建议在路由器中为NAS绑定静态IP,例如192.168.1.100)
- 知道NAS的网关地址(通常是192.168.1.1)
- 预留至少300MB的存储空间给AdGuard Home容器
第一步:创建AdGuard Home配置目录
打开飞牛NAS的「文件管理」应用,在Docker数据目录下创建AdGuard Home的配置文件夹。建议的目录结构如下:
/docker/adguardhome/
├── work/ # 工作目录
└── conf/ # 配置文件目录
你也可以通过SSH终端使用命令行创建:
mkdir -p /vol1/docker/adguardhome/work
mkdir -p /vol1/docker/adguardhome/conf
注意:实际路径请根据你的存储池和共享文件夹名称进行调整,飞牛OS默认的Docker数据目录通常位于/vol1/docker下。
第二步:拉取并运行AdGuard Home容器
打开飞牛NAS的「Docker」应用,进入「镜像」页面,搜索adguard/adguardhome,选择最新版本进行拉取。你也可以使用SSH命令行方式直接运行容器:
docker run -d \
--name adguardhome \
--restart=unless-stopped \
-v /vol1/docker/adguardhome/work:/opt/adguardhome/work \
-v /vol1/docker/adguardhome/conf:/opt/adguardhome/conf \
-p 53:53/tcp \
-p 53:53/udp \
-p 784:784/tcp \
-p 853:853/tcp \
-p 3000:3000/tcp \
adguard/adguardhome:latest
参数说明:
- -v 将NAS上的配置目录映射到容器内,确保重启后配置不丢失
- 53 端口用于DNS解析,同时映射TCP和UDP协议
- 3000 端口是AdGuard Home首次安装时的Web设置界面
- --restart=unless-stopped 保证NAS重启后容器自动运行
如果你使用的是飞牛NAS的Docker图形界面,在「容器」页面点击「添加容器」,选择adguard/adguardhome镜像,然后按照界面提示完成端口映射和存储卷挂载即可。
第三步:初始化配置AdGuard Home
容器启动后,打开浏览器访问:
http://你的NAS_IP:3000
例如:http://192.168.1.100:3000
首次访问会进入AdGuard Home的初始化向导,按以下步骤操作:
- 点击「开始配置」,选择「设置管理界面」和「设置DNS服务」为同一网卡
- 管理界面监听地址选择
0.0.0.0,端口保持默认的3000
- DNS监听地址选择
0.0.0.0,端口保持53
- 设置管理员用户名和密码,建议使用强密码
- 完成设置后,界面会提示你访问新的管理地址:
http://你的NAS_IP:3000
第四步:配置上游DNS和广告过滤规则
登录AdGuard Home管理界面后,进入「设置」→「DNS设置」,在「上游DNS服务器」中填写以下公共DNS:
https://dns.alidns.com/dns-query
https://dns.google/dns-query
tls://dns.pub
在「DNS缓存配置」中,将缓存大小设置为67108864(64MB),缓存时间保持默认。同时勾选「乐观缓存」以提升解析速度。
接下来配置广告过滤规则。进入「过滤器」→「DNS拦截清单」,点击「添加过滤器」,添加以下几个高评价的规则列表:
https://adguardteam.github.io/AdGuardSDNSFilter/Filters/filter.txt
https://raw.githubusercontent.com/hagezi/dns-blocklists/main/domains/multi.txt
https://raw.githubusercontent.com/StevenBlack/hosts/master/hosts
添加完成后,点击「立即检查更新」,等待规则下载完成。默认的AdGuard基础过滤器已经包含,建议保留。
第五步:启用DNS黑名单和隐私保护
进入「设置」→「隐私设置」,建议勾选以下选项:
- 使用DNS查询的EDNS客户端子网(禁用)
- 禁用IPv6的AAAA记录查询(可选,视你的网络情况而定)
- 不将查询日志写入系统日志
在「设置」→「一般设置」中,将「日志保留时间」设置为24小时,避免日志占用过多存储空间。
第六步:将路由器DNS指向飞牛NAS
部署完成后,最关键的一步是让全屋设备使用AdGuard Home进行DNS解析。登录你的路由器管理后台,找到「DHCP服务器」设置,将主DNS服务器修改为飞牛NAS的IP地址,备用DNS可以填写223.5.5.5作为故障时的后备。
例如,如果飞牛NAS的IP是192.168.1.100,则设置:
- 主DNS:192.168.1.100
- 备用DNS:223.5.5.5
保存设置后,重启路由器的DHCP服务或等待租约到期,所有设备将自动使用AdGuard Home进行DNS解析。
验证部署效果
完成以上配置后,你可以通过以下方式验证AdGuard Home是否正常工作:
- 在NAS上执行命令检查DNS解析是否生效:
nslookup ads.example.com 192.168.1.100
如果AdGuard Home拦截了该广告域名,返回结果中应该显示0.0.0.0。
-
打开AdGuard Home管理界面,进入「查询日志」,可以看到来自不同设备的DNS请求记录,被拦截的请求会以红色标记。
-
打开手机或电脑上的任意视频或新闻App,横幅广告和视频前贴片广告应该明显减少。
注意事项与故障排查
如果遇到DNS无法解析的问题,请按以下顺序排查:
- 确认NAS防火墙允许53端口的TCP和UDP流量
- 检查路由器防火墙是否阻止了内网DNS请求
- 尝试在AdGuard Home中重启DNS服务
- 确认上游DNS服务器是否可以连通
此外,部分网络环境(如某些公司或校园网络)可能会强制使用指定的DNS,这种情况下AdGuard Home无法接管,需要根据实际网络环境调整。
总结
通过在飞牛NAS上部署AdGuard Home,我们成功为全屋设备搭建了一个统一的广告拦截DNS服务。整个过程只需要简单的Docker部署和几步配置,就能有效减少网页和App中的广告干扰,同时提升DNS解析速度。AdGuard Home还提供了直观的查询日志和数据分析功能,让你对家庭网络的DNS请求情况一目了然。这套方案完全免费、开源,且不依赖外部硬件,是飞牛NAS用户提升家庭网络体验的绝佳选择。