Docker 玩法

飞牛NAS部署 AdGuard Home:全屋广告拦截

准备工作:了解 AdGuard Home 与飞牛NAS

AdGuard Home 是一款开源的网络级广告拦截工具,它通过接管家庭网络的 DNS 请求,在设备访问互联网之前过滤掉广告、跟踪器和恶意网站。与浏览器插件不同,AdGuard Home 可以覆盖所有连接到家庭网络的设备,包括智能电视、游戏机、物联网设备等。

在飞牛NAS(fnOS)上部署 AdGuard Home 有几个优势:飞牛NAS通常24小时运行,资源占用低,并且可以作为家庭网络的 DNS 服务器。本文将指导你通过 Docker 在飞牛NAS上快速部署 AdGuard Home,并完成基础配置。

第一步:在飞牛NAS上安装 Docker

飞牛NAS基于 Linux 系统,默认已集成 Docker 环境。如果你尚未安装,可以通过应用中心或命令行安装。这里假设你已经拥有飞牛NAS的管理员权限,并且系统已联网。

打开飞牛NAS的终端(SSH 或直接使用系统自带的终端工具),输入以下命令检查 Docker 是否已安装:

docker --version

如果显示版本号,说明已安装。如果没有,请使用以下命令安装 Docker(适用于 Debian/Ubuntu 系):

sudo apt update
sudo apt install docker.io -y
sudo systemctl start docker
sudo systemctl enable docker

安装完成后,建议也将 Docker Compose 安装上,方便后续管理:

sudo apt install docker-compose -y

第二步:拉取 AdGuard Home 镜像

AdGuard Home 官方提供了 Docker 镜像,我们可以直接从 Docker Hub 拉取。在终端中执行:

docker pull adguard/adguardhome:latest

等待镜像下载完成。你可以通过 docker images 命令确认镜像已成功拉取。

第三步:创建持久化数据目录

为了让 AdGuard Home 的配置和数据在容器重启后不丢失,我们需要在宿主机上创建两个目录:一个用于配置文件,一个用于工作数据。假设你的飞牛NAS数据存储路径为 /volume1/docker,执行以下命令:

mkdir -p /volume1/docker/adguardhome/conf
mkdir -p /volume1/docker/adguardhome/work

请根据你的实际存储路径调整。飞牛NAS的默认存储卷通常挂载在 /volume1/mnt 下,你可以先检查一下。

第四步:运行 AdGuard Home 容器

使用 Docker 命令启动容器。这里需要特别注意端口映射:AdGuard Home 需要占用 53 端口(DNS 服务)和 80/443 端口(Web 管理界面)。如果你的飞牛NAS上 53 端口可能被 systemd-resolved 占用,建议先停用它(或者使用其他端口,但家庭网络设置时会更复杂)。

以下命令将 AdGuard Home 的 Web 管理界面映射到宿主机的 8080 端口,DNS 服务映射到 53 端口:

docker run -d \
  --name adguardhome \
  --restart unless-stopped \
  -p 53:53/tcp \
  -p 53:53/udp \
  -p 8080:80/tcp \
  -p 443:443/tcp \
  -v /volume1/docker/adguardhome/work:/opt/adguardhome/work \
  -v /volume1/docker/adguardhome/conf:/opt/adguardhome/conf \
  adguard/adguardhome:latest

参数说明: - -d:后台运行 - --name:容器名称 - --restart unless-stopped:容器退出时自动重启(除非手动停止) - -p:端口映射,将宿主机的端口映射到容器内部端口 - -v:卷挂载,将宿主机的目录挂载到容器内

执行后,使用 docker ps 查看容器是否正常运行。如果看到 adguardhome 的状态为 Up,说明启动成功。

第五步:初始化 AdGuard Home Web 界面

打开浏览器,访问飞牛NAS的IP地址加上端口 8080,例如 http://192.168.1.100:8080。你会看到 AdGuard Home 的初始化向导。

点击“开始配置”,在“Web 管理界面”页面,监听端口保持默认(80),但你可以设置一个管理员账户和密码。在“DNS 设置”页面,建议勾选“使用 AdGuard DNS 作为上游 DNS 服务器”,或者你可以手动指定其他公共 DNS(如 114.114.114.114、8.8.8.8 等)。其他选项保持默认即可。最后点击“下一步”完成设置。

初始化完成后,系统会提示你访问新的管理地址。由于我们将 Web 端口映射到了 8080,所以你应该继续使用 http://<飞牛NAS IP>:8080 来登录。用刚才设置的用户名和密码登录。

第六步:配置家庭网络使用 AdGuard Home

要让所有设备都使用 AdGuard Home 过滤广告,你需要将路由器的 DNS 服务器设置为飞牛NAS的IP地址。

登录你的路由器管理界面(通常是 192.168.1.1 或 192.168.0.1),找到“DHCP服务器”或“网络设置”选项。在 DNS 设置中,将主 DNS 服务器设置为飞牛NAS的内网IP(例如 192.168.1.100),备用 DNS 可以留空或设置为公共 DNS。保存设置并重启路由器(或等待 DHCP 租约更新)。

如果你的路由器不支持修改 DNS,也可以手动在每台设备的网络设置中将 DNS 指向飞牛NAS的IP。

配置完成后,访问一些带有广告的网站,你会发现广告明显减少。AdGuard Home 的控制面板会实时显示 DNS 查询统计和拦截数量。

第七步:优化 AdGuard Home 设置(可选)

登录 AdGuard Home 管理界面,你可以进行以下优化:

添加广告过滤规则:在“过滤器”->“DNS 拦截清单”中,点击“添加拦截清单”,输入以下流行规则地址: - https://adguardteam.github.io/AdGuardSDNSFilter/Filters/filter.txt - https://raw.githubusercontent.com/StevenBlack/hosts/master/hosts

这些规则会定期自动更新,增强拦截效果。

设置上游 DNS 加密:在“设置”->“DNS 设置”中,勾选“并行查询”,并在上游 DNS 服务器中添加加密 DNS,例如: - tls://dns.adguard.com - https://dns.adguard.com/dns-query

这样可以保护你的 DNS 查询不被监听或篡改。

配置访问控制:在“设置”->“客户端设置”中,你可以限制哪些设备可以使用 AdGuard Home,或者为特定设备设置独立的过滤规则。

常见问题与排错

容器启动后无法访问 Web 界面:检查防火墙是否开放了 8080 端口,或者使用 docker logs adguardhome 查看容器日志。

DNS 查询无效,无法上网:确认 53 端口未被其他服务占用。可以使用 sudo lsof -i :53 检查。如果被 systemd-resolved 占用,执行 sudo systemctl stop systemd-resolved && sudo systemctl disable systemd-resolved 停用它。

容器重启后配置丢失:检查挂载目录是否正确,确保 -v 参数中的宿主机路径存在且权限正确。

总结

通过 Docker 在飞牛NAS上部署 AdGuard Home 是一个高效的全屋广告拦截方案。整个过程只需几步:安装 Docker、拉取镜像、配置持久化目录、启动容器,最后修改路由器 DNS 即可。AdGuard Home 不仅能拦截广告,还能保护隐私、过滤恶意网站,提升整个家庭网络的安全性和浏览体验。如果你发现某些网站被误拦,可以通过管理界面添加白名单进行精确控制。希望这篇教程能帮助你轻松搭建自己的广告过滤系统。

💬 评论区
leave a comment

no comments yet