飞牛NAS部署AdGuard Home:全屋广告拦截DNS
为什么需要在飞牛NAS上部署AdGuard Home
家庭网络中的智能电视、手机、平板和电脑,几乎每台设备都会产生大量DNS请求。默认情况下,运营商DNS不仅解析速度慢,还会在DNS层面插入广告或追踪代码。AdGuard Home是一款开源的网络级广告拦截软件,它接管整个局域网的DNS解析,在域名解析阶段就屏蔽广告、追踪器和恶意网站,效果远优于浏览器插件,且对全屋设备生效。
飞牛NAS(fnOS)基于Debian,Docker支持完善,非常适合作为家庭DNS服务器。将AdGuard Home部署在NAS上,24小时运行,功耗低,且无需额外购买硬件。
准备工作
确保你的飞牛NAS已安装Docker应用,并拥有SSH权限或飞牛应用中心的Docker管理界面。建议为AdGuard Home设置静态IP,避免重启后IP变化导致设备无法解析。
登录飞牛NAS的Docker管理界面,或在SSH终端中执行以下命令验证环境:
docker --version
docker compose version
如果一切正常,我们开始部署。
部署AdGuard Home
创建配置目录
先在NAS文件系统中为AdGuard Home创建数据目录,建议放在存储空间下,例如:
mkdir -p /vol1/docker/adguardhome/work
mkdir -p /vol1/docker/adguardhome/conf
如果你使用飞牛应用中心的Docker管理,也可以在创建容器时指定卷映射。
使用Docker CLI部署
SSH登录飞牛NAS,执行以下命令拉取并启动容器:
docker run -d \
--name adguardhome \
--restart=unless-stopped \
-p 53:53/tcp -p 53:53/udp \
-p 784:784/tcp -p 853:853/tcp \
-p 3000:3000/tcp \
-v /vol1/docker/adguardhome/work:/opt/adguardhome/work \
-v /vol1/docker/adguardhome/conf:/opt/adguardhome/conf \
adguard/adguardhome:latest
参数说明:53端口用于DNS解析,3000端口用于首次配置向导,784和853分别对应DNS-over-QUIC和DNS-over-TLS,可选映射。
使用Docker Compose部署
如果你更习惯Compose方式,创建 /vol1/docker/adguardhome/docker-compose.yml 文件:
services:
adguardhome:
image: adguard/adguardhome:latest
container_name: adguardhome
restart: unless-stopped
ports:
- "53:53/tcp"
- "53:53/udp"
- "784:784/tcp"
- "853:853/tcp"
- "3000:3000/tcp"
volumes:
- ./work:/opt/adguardhome/work
- ./conf:/opt/adguardhome/conf
然后在目录下执行:
cd /vol1/docker/adguardhome
docker compose up -d
初始化配置
容器启动后,浏览器访问 http://你的NAS_IP:3000,进入AdGuard Home初始化向导。
点击“开始配置”,设置Web管理界面端口(默认3000,建议改为8080或80,避免与NAS冲突)。接着设置管理员用户名和强密码,这一步务必记住。
完成向导后,管理界面会跳转到新端口。例如你设置了8080,则访问 http://你的NAS_IP:8080。
配置上游DNS服务器
登录管理界面后,进入“设置” -> “DNS设置”。上游DNS建议配置多个,提升冗余和速度。推荐以下组合:
https://dns.alidns.com/dns-query
https://doh.pub/dns-query
tls://dns.google
在“DNS服务器配置”中,将上述地址填入“上游DNS服务器”输入框,每行一个。同时勾选“并行请求”以加速解析。
“Bootstrap DNS服务器”填写:
223.5.5.5
119.29.29.29
用于解析上游DNS的域名。保存设置。
启用广告拦截过滤器
AdGuard Home内置了多种拦截列表。进入“过滤器” -> “DNS拦截清单”,点击“添加过滤器”,推荐添加以下两个高人气规则:
https://adguardteam.github.io/AdGuardSDNSFilter/Filters/filter.txt
https://raw.githubusercontent.com/StevenBlack/hosts/master/hosts
添加后点击“检查更新”,再点击“应用”。等待列表下载完成,即可看到拦截统计开始增长。
如果你需要更精细的规则,可以添加中文地区的广告拦截列表,例如:
https://easylist-downloads.adblockplus.org/easylistchina+easylist.txt
设置局域网设备使用AdGuard Home
AdGuard Home已经运行,但要让全屋设备使用它,需要修改路由器或各设备的DNS设置。
方式一:修改路由器DHCP设置
登录你的路由器管理后台,找到DHCP设置,将首选DNS改为飞牛NAS的IP地址,备用DNS留空或填写 223.5.5.5。保存后重启路由器或让设备重新获取IP,所有自动获取IP的设备将自动使用AdGuard Home解析。
方式二:手动修改设备DNS
如果不想改路由器,可以在每台设备的网络设置中手动将DNS改为 你的NAS_IP。例如Windows系统,在网络适配器属性中修改IPv4 DNS。
测试与验证
配置完成后,在任意联网设备上访问 http://你的NAS_IP:管理端口,查看AdGuard Home仪表盘。你应该能看到今日查询数和拦截数在增长。
为了确认拦截生效,可以尝试访问一些知名广告测试网站,或者直接查看仪表盘中的查询日志,过滤“被拦截”类型,可以看到大量广告域名被屏蔽。
另外,在命令行终端执行以下命令验证DNS解析是否走AdGuard Home:
nslookup doubleclick.net
如果返回的服务器地址是你的NAS IP,说明解析生效。
常见问题与优化建议
端口被占用
如果53端口被系统自带的DNS服务占用,需要先停止systemd-resolved:
sudo systemctl stop systemd-resolved
sudo systemctl disable systemd-resolved
然后重新创建容器。
开启DNSSEC与缓存
在“DNS设置”中,勾选“启用DNSSEC”提升安全性,同时启用“DNS缓存”并设置缓存大小,比如64MB,可显著提升解析速度。
访问控制
为防止局域网外设备滥用你的DNS,在“设置” -> “访问设置”中,勾选“仅允许指定客户端”,并添加你家里的网段,例如 192.168.1.0/24。
总结
通过Docker在飞牛NAS上部署AdGuard Home,只需几步操作,就能获得一个全屋生效的广告拦截DNS服务。它不依赖浏览器插件,能拦截电视、手机、电脑上所有应用的广告请求,同时加速DNS解析、保护隐私。配合NAS的7x24小时运行特性,一次配置,长期受益。建议定期在管理界面中更新拦截清单,并观察查询日志,不断优化规则,让网络环境更加干净清爽。
暂无评论,来说两句吧