Windows Docker Compose 部署 AdGuard Home:自定义端口与去广告实践
摘要
本文详细介绍了如何在 Windows 操作系统上通过 Docker Compose 部署 AdGuard Home 服务,以实现高效的广告和跟踪器过滤。教程将引导你完成使用自定义(非常用)端口进行部署,且不启用 AdGuard Home 自带的 DHCP 服务器功能。此外,还将涵盖 DNS 黑名单(过滤规则)的选择与配置,以及客户端设备的设置方法,助你打造纯净、安全的网络环境。
正文
AdGuard Home 是一款强大的开源网络广告和跟踪器过滤 DNS 服务器。通过 Docker Compose 在 Windows 上部署它,不仅灵活方便,还能有效管理其配置和生命周期。本指南将带你一步步完成部署和配置。
准备工作
在开始之前,请确保你已完成以下准备:
- 安装 Docker Desktop for Windows: Docker Desktop 是在 Windows 上运行 Docker 容器的基础。请从 Docker 官网下载并安装。
- 创建项目目录: 在你的电脑上选择一个合适的位置创建一个项目文件夹,用于存放 AdGuard Home 的配置文件。例如:
C:\DockerProjects\adguardhome
。
通过 Docker Compose 部署 AdGuard Home
我们将使用 Docker Compose 来定义和运行 AdGuard Home 服务。这种方式便于配置管理和版本控制。
1. 创建 docker-compose.yml
文件
在你的项目目录 (例如 C:\DockerProjects\adguardhome
) 中,创建一个名为 docker-compose.yml
的文件,并填入以下内容:
1 | version: "3.8" |
端口说明:
- 我们将 DNS 服务映射到宿主机的
5353
端口。 - Web 管理界面映射到宿主机的
8088
端口。 - 初始安装向导映射到宿主机的
3333
端口。 - 你可以根据需要修改宿主机端口(冒号左边的数字),但确保它们未被占用。
2. 创建持久化存储目录
在 docker-compose.yml
文件所在的目录中,手动创建两个子文件夹:work
和 conf
。
1 | C:\DockerProjects\adguardhome\ |
这将用于持久化存储 AdGuard Home 的数据和配置。
3. 启动 AdGuard Home 服务
打开命令提示符 (CMD) 或 PowerShell,导航到你的项目目录,然后执行:
1 | cd C:\DockerProjects\adguardhome |
该命令会在后台启动 AdGuard Home 服务。
4. 验证与初始设置
- 验证运行: 执行
docker-compose ps
或docker ps
,应能看到adguardhome
容器正在运行。 - 获取主机 IP: 在 CMD/PowerShell 中运行
ipconfig
,找到你的 Windows 主机的 IPv4 地址(例如192.168.1.100
)。 - 初始设置: 打开浏览器,访问
http://<你的Windows主机IP>:3333
(例如http://192.168.1.100:3333
)。- 按照向导完成设置。注意,向导中显示的 Web 界面和 DNS 端口会是容器内部的
80
和53
,这是正常的。 - 创建管理员账户和密码。
- 按照向导完成设置。注意,向导中显示的 Web 界面和 DNS 端口会是容器内部的
- 访问管理面板: 完成初始设置后,通过
http://<你的Windows主机IP>:8088
(例如http://192.168.1.100:8088
) 访问 AdGuard Home 管理仪表盘。
5. Windows 防火墙配置
确保 Windows 防火墙允许以下端口的入站连接(以便其他设备能访问):
- TCP/UDP
5353
(DNS 服务) - TCP
8088
(Web 管理界面) - TCP
3333
(初始设置时) - 以及你可能配置的其他服务的端口(如 DoH/DoT)。
配置 DNS 黑名单 (过滤规则)
DNS 黑名单是实现广告和跟踪器过滤的核心。
1. 什么是 DNS 黑名单?
它们是包含恶意域名、广告域名、跟踪域名的列表。AdGuard Home 会阻止对这些域名的访问请求。
2. 添加与管理黑名单
- 登录 AdGuard Home 管理界面。
- 导航到 过滤器 (Filters) -> **DNS 阻止列表 (DNS blocklists)**。
- 点击 **添加阻止列表 (Add blocklist)**,你可以从预设列表中选择,或通过 URL 添加自定义列表。
3. 黑名单推荐与选择建议
- 核心列表:
- AdGuard DNS filter: AdGuard 官方综合列表,通常默认启用。
- OISD Full: 综合性强,误杀率较低,广受欢迎。(搜索 “OISD Blocklist” 获取链接)
- StevenBlack’s Hosts: 整合多个来源,提供不同版本。(搜索 “StevenBlack hosts GitHub” 获取链接)
- 专用列表:
- NoCoin Filter List: 阻止加密货币挖矿脚本。
- 使用建议:
- 从少到多: 不要一次添加过多列表,以免影响性能或导致网站兼容问题。
- 测试兼容性: 添加列表后,检查常用网站是否正常。如有问题,可在“查询日志”中排查并添加白名单。
- 关注更新与来源: 选择维护良好、定期更新的列表。可以参考 FilterLists.com 网站。
配置客户端设备
要让你的设备使用 AdGuard Home 进行 DNS 解析和广告过滤,你需要更改其 DNS 设置。
- DNS 服务器 IP: 你的 Windows 主机的 IP 地址 (例如
192.168.1.100
)。 - DNS 服务器端口:
5353
(根据docker-compose.yml
的配置)。
1. 路由器配置 (推荐)
登录路由器管理界面,在 DHCP/DNS 设置中,将主 DNS 服务器地址设为你的 Windows 主机 IP,并指定端口为 5353
(如果路由器支持)。这样,连接到该路由器的所有设备都会自动使用 AdGuard Home。
2. 单个设备配置与 DoH/DoT
如果路由器不支持指定 DNS 端口,或你只想为特定设备配置:
- 直接在设备的网络设置中修改 DNS 服务器地址和端口。
- 对于不支持直接指定 DNS 端口的设备 (如 Windows 标准 IPv4 设置),可以考虑在 AdGuard Home 中启用 DNS-over-HTTPS (DoH) 或 DNS-over-TLS (DoT),并映射相应端口(如
docker-compose.yml
中注释掉的8443
for DoH,8853
for DoT)。然后在客户端配置 DoH/DoT 地址,例如:- DoH:
https://<你的Windows主机IP>:8443/dns-query
- DoT:
tls://<你的Windows主机IP>:8853
- DoH:
管理 AdGuard Home 服务
在 docker-compose.yml
文件所在的目录中,你可以使用以下命令管理服务:
- 停止并移除容器:
docker-compose down
- 仅停止服务:
docker-compose stop
- 启动已停止的服务:
docker-compose start
- 更新 AdGuard Home 镜像:
1 | docker-compose pull adguardhome |
- 查看实时日志:
docker-compose logs -f adguardhome
结语
通过本指南,你已成功在 Windows 上通过 Docker Compose 部署并配置了 AdGuard Home,实现了自定义端口运行和广告过滤。现在,你可以享受更纯净、更安全的网络浏览体验了!记得根据实际使用情况调整黑名单和相关配置。