摘要

本文详细介绍了如何在 Windows 操作系统上通过 Docker Compose 部署 AdGuard Home 服务,以实现高效的广告和跟踪器过滤。教程将引导你完成使用自定义(非常用)端口进行部署,且不启用 AdGuard Home 自带的 DHCP 服务器功能。此外,还将涵盖 DNS 黑名单(过滤规则)的选择与配置,以及客户端设备的设置方法,助你打造纯净、安全的网络环境。

正文

AdGuard Home 是一款强大的开源网络广告和跟踪器过滤 DNS 服务器。通过 Docker Compose 在 Windows 上部署它,不仅灵活方便,还能有效管理其配置和生命周期。本指南将带你一步步完成部署和配置。

准备工作

在开始之前,请确保你已完成以下准备:

  1. 安装 Docker Desktop for Windows: Docker Desktop 是在 Windows 上运行 Docker 容器的基础。请从 Docker 官网下载并安装。
  2. 创建项目目录: 在你的电脑上选择一个合适的位置创建一个项目文件夹,用于存放 AdGuard Home 的配置文件。例如:C:\DockerProjects\adguardhome

通过 Docker Compose 部署 AdGuard Home

我们将使用 Docker Compose 来定义和运行 AdGuard Home 服务。这种方式便于配置管理和版本控制。

1. 创建 docker-compose.yml 文件

在你的项目目录 (例如 C:\DockerProjects\adguardhome) 中,创建一个名为 docker-compose.yml 的文件,并填入以下内容:

Copy Code

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
version: "3.8"

services:
adguardhome:
image: adguard/adguardhome:latest
container_name: adguardhome
ports:
# DNS 服务端口 (宿主机:容器)
- "5353:53/tcp"
- "5353:53/udp"

# AdGuard Home Web 管理界面 HTTP 端口
- "8088:80/tcp"

# AdGuard Home 初始设置向导端口
- "3333:3000/tcp"

# --- 可选:如需 HTTPS, DoT, DoQ 等,可取消注释并修改宿主机端口 ---
# - "8443:443/tcp" # HTTPS 管理界面
# - "8853:853/tcp" # DNS-over-TLS (DoT)
# - "7784:784/udp" # DNS-over-QUIC (DoQ)

volumes:
- ./work:/opt/adguardhome/work
- ./conf:/opt/adguardhome/conf
restart: unless-stopped

端口说明:

  • 我们将 DNS 服务映射到宿主机的 5353 端口。
  • Web 管理界面映射到宿主机的 8088 端口。
  • 初始安装向导映射到宿主机的 3333 端口。
  • 你可以根据需要修改宿主机端口(冒号左边的数字),但确保它们未被占用。

2. 创建持久化存储目录

docker-compose.yml 文件所在的目录中,手动创建两个子文件夹:workconf

Copy Code

1
2
3
4
C:\DockerProjects\adguardhome\
├── docker-compose.yml
├── work\ (空文件夹)
└── conf\ (空文件夹)

这将用于持久化存储 AdGuard Home 的数据和配置。

3. 启动 AdGuard Home 服务

打开命令提示符 (CMD) 或 PowerShell,导航到你的项目目录,然后执行:

Copy Code

1
2
cd C:\DockerProjects\adguardhome
docker-compose up -d

该命令会在后台启动 AdGuard Home 服务。

4. 验证与初始设置

  • 验证运行: 执行 docker-compose psdocker ps,应能看到 adguardhome 容器正在运行。
  • 获取主机 IP: 在 CMD/PowerShell 中运行 ipconfig,找到你的 Windows 主机的 IPv4 地址(例如 192.168.1.100)。
  • 初始设置: 打开浏览器,访问 http://<你的Windows主机IP>:3333 (例如 http://192.168.1.100:3333)。
    • 按照向导完成设置。注意,向导中显示的 Web 界面和 DNS 端口会是容器内部的 8053,这是正常的。
    • 创建管理员账户和密码。
  • 访问管理面板: 完成初始设置后,通过 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. 添加与管理黑名单

  1. 登录 AdGuard Home 管理界面。
  2. 导航到 过滤器 (Filters) -> **DNS 阻止列表 (DNS blocklists)**。
  3. 点击 **添加阻止列表 (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

管理 AdGuard Home 服务

docker-compose.yml 文件所在的目录中,你可以使用以下命令管理服务:

  • 停止并移除容器: docker-compose down
  • 仅停止服务: docker-compose stop
  • 启动已停止的服务: docker-compose start
  • 更新 AdGuard Home 镜像:

Copy Code

1
2
docker-compose pull adguardhome
docker-compose up -d --force-recreate
  • 查看实时日志: docker-compose logs -f adguardhome

结语

通过本指南,你已成功在 Windows 上通过 Docker Compose 部署并配置了 AdGuard Home,实现了自定义端口运行和广告过滤。现在,你可以享受更纯净、更安全的网络浏览体验了!记得根据实际使用情况调整黑名单和相关配置。