AdGuard Home DNS 过滤器部署教程
AdGuard Home 是一款功能强大的开源 DNS 过滤器和广告拦截工具,提供网络级别的广告和追踪器过滤。与 Pi-hole 相比,AdGuard Home 拥有更现代化的界面,内置 DNS over HTTPS/TLS/QUIC 支持,并且提供家长控制和安全浏览等额外功能。本文将介绍如何在搬瓦工 VPS 上使用 Docker 部署 AdGuard Home。部署前请确保已安装好 Docker 和 Docker Compose。
一、系统要求
- 操作系统:Ubuntu 20.04+ 或 Debian 11+。
- 内存:512MB 即可,1GB 更佳。
- 磁盘:至少 2GB 可用空间。
- 域名:配置 DNS over HTTPS 时需要域名和 SSL 证书。
二、准备工作
与 Pi-hole 类似,需要确保 53 端口可用:
# 禁用 systemd-resolved(Ubuntu 系统)
systemctl stop systemd-resolved
systemctl disable systemd-resolved
echo "nameserver 8.8.8.8" > /etc/resolv.conf
三、Docker Compose 部署
mkdir -p /opt/adguard/{work,conf}
cd /opt/adguard
cat > /opt/adguard/docker-compose.yml <<'EOF'
version: '3.8'
services:
adguardhome:
image: adguard/adguardhome:latest
restart: always
ports:
- "53:53/tcp"
- "53:53/udp"
- "3000:3000/tcp"
- "8443:443/tcp"
- "8443:443/udp"
- "853:853/tcp"
volumes:
- /opt/adguard/work:/opt/adguardhome/work
- /opt/adguard/conf:/opt/adguardhome/conf
EOF
docker compose up -d
端口说明:53 为 DNS 服务,3000 为初始设置界面(完成后变为 80),443 为 HTTPS 管理和 DoH,853 为 DNS over TLS。
四、初始化设置
访问 http://your-server-ip:3000 进入安装向导:
- 管理界面:选择监听端口,默认 80(或 3000)。
- DNS 服务:选择监听端口,默认 53。
- 管理员账户:设置用户名和密码。
完成向导后,管理面板会转移到你设定的端口(默认 80)。
五、配置过滤规则
在管理面板 > Filters > DNS blocklists 中添加过滤列表。AdGuard Home 默认已启用基础广告过滤列表。建议添加以下中文规则:
# 推荐的中文过滤列表
https://anti-ad.net/easylist.txt
https://raw.githubusercontent.com/privacy-protection-tools/anti-AD/master/anti-ad-easylist.txt
还可以使用 AdGuard 格式的自定义规则。在 Filters > Custom filtering rules 中添加:
# 拦截特定域名
||ads.example.com^
# 拦截特定域名及其子域名
||tracking.example.com^
# 允许特定域名(白名单)
@@||allowed.example.com^
六、DNS 加密配置
AdGuard Home 原生支持 DNS over HTTPS(DoH)和 DNS over TLS(DoT)。在 Settings > Encryption settings 中配置:
# 先申请 SSL 证书
certbot certonly --standalone -d dns.yourdomain.com
在加密设置页面中:
- 启用 "Enable Encryption (HTTPS, DNS-over-HTTPS, and DNS-over-TLS)"。
- Server name 填入
dns.yourdomain.com。 - 证书路径:
/etc/letsencrypt/live/dns.yourdomain.com/fullchain.pem - 私钥路径:
/etc/letsencrypt/live/dns.yourdomain.com/privkey.pem
需要将证书目录挂载到 Docker 容器中,在 docker-compose.yml 的 volumes 中添加:
- /etc/letsencrypt:/etc/letsencrypt:ro
七、客户端配置
在 Settings > Client settings 中可以为不同的客户端(设备)配置独立的过滤策略。通过客户端 IP 或 MAC 地址识别设备,为每个设备设定不同的过滤级别。
DNS over HTTPS 客户端配置
配置好加密后,客户端可以使用以下 DoH 地址:
https://dns.yourdomain.com/dns-query
DNS over TLS 客户端配置
tls://dns.yourdomain.com
八、家长控制与安全浏览
AdGuard Home 内置了家长控制和安全浏览功能:
- 家长控制:在 Settings > General settings 中启用,可以屏蔽成人内容网站。
- 安全浏览:启用后会自动拦截已知的恶意软件和钓鱼网站域名。
- 安全搜索:强制主流搜索引擎使用安全搜索模式。
九、查询日志与统计
AdGuard Home 提供详细的查询日志和统计面板,包括:
- 总查询次数和拦截次数。
- 最常被查询的域名排行。
- 最常被拦截的域名排行。
- 各客户端的查询统计。
- 每条查询的详细信息(域名、类型、响应时间、上游服务器等)。
十、数据备份
tar -czf /opt/adguard/backup_$(date +%Y%m%d).tar.gz /opt/adguard/conf/ /opt/adguard/work/
十一、常见问题
DNS 解析失败
检查上游 DNS 服务器是否可达。在 Settings > DNS settings 中确认上游 DNS 设置正确。可以使用 "Test upstreams" 按钮测试。
安全提醒
公网暴露 DNS 服务存在被利用进行 DNS 放大攻击的风险。强烈建议:
# 限制 DNS 访问来源
ufw allow from your_home_ip to any port 53
ufw deny 53
或者只使用 DoH/DoT 加密 DNS,关闭普通 DNS 端口。
总结
AdGuard Home 是一款功能全面的 DNS 过滤工具,相比 Pi-hole 提供了更现代化的界面和原生的 DNS 加密支持。在搬瓦工 VPS 上部署后,你可以为所有设备提供安全、无广告的 DNS 解析服务。更多教程请参考:Pi-hole 部署、Docker 安装教程。选购搬瓦工 VPS 请参考全部方案,购买时使用优惠码 NODESEEK2026 可享受 6.77% 的循环折扣。