AdGuard Home:开源网络广告拦截神器,打造清洁的家庭网络环境
AdGuard Home:开源网络广告拦截神器,打造清洁的家庭网络环境
背景
上网时你是否被这些问题困扰?
- 网页广告铺天盖地,弹窗不断
- 视频开头广告长达 120 秒
- 手机 App 后台偷跑流量,收集隐私
- 孩子容易接触到不适宜的内容
- DNS 污染导致网站访问缓慢或失败
- 希望全家设备统一管理,但不知从何下手
今天介绍一款开源网络广告拦截利器——AdGuard Home,它是 Pi-hole 的最佳替代方案。
什么是 AdGuard Home?
AdGuard Home 是一款全网范围的广告和跟踪器拦截 DNS 服务器,旨在在网络层面阻止广告和追踪。
核心理念: “Network-level ads and trackers blocking DNS server”——网络级别的广告和追踪器拦截 DNS 服务器。
核心特性:
| 特性 | 说明 |
|---|---|
| 全网拦截 | 一次部署,全家设备生效 |
| DNS 拦截 | 覆盖所有设备和应用 |
| 隐私保护 | 阻止追踪器和数据分析 |
| 家长控制 | 过滤不适宜内容 |
| DNS 加密 | 支持 DoH/DoT/DoQ |
| DNSSEC | 支持 DNS 安全扩展 |
| 查询日志 | 详细记录 DNS 查询 |
GitHub 地址: https://github.com/AdguardTeam/AdGuardHome
Star 数量: 25K+
AdGuard Home vs Pi-hole vs 其他方案
| 对比项 | AdGuard Home | Pi-hole | 商业 DNS |
|---|---|---|---|
| 价格 | 免费 | 免费 | 免费/付费 |
| 开源 | ✅ 完全开源 | ✅ 开源 | ❌ 闭源 |
| 全平台 | ✅ 支持所有设备 | ✅ 支持所有设备 | ✅ 支持所有设备 |
| Web 界面 | ✅ 现代美观 | ⚠️ 界面较旧 | ✅ |
| 内置 DHCP | ✅ 支持 | ⚠️ 需额外配置 | ❌ |
| DNS 加密 | ✅ DoH/DoT/DoQ | ⚠️ 需额外配置 | ✅ |
| 规则同步 | ✅ 多种格式 | ⚠️ 手动配置 | ❌ |
| 性能 | 低资源占用 | 低资源占用 | 云服务 |
AdGuard Home 的独特优势:
- 一次部署,全家设备受益
- Web 界面现代美观,易于配置
- 内置 DHCP 服务器,无需额外软件
- 支持多种 DNS 加密协议
- 内置家长控制功能
- 查询日志详细,可追溯
工作原理
AdGuard Home 采用 DNS 层面拦截:
┌─────────────────────────────────────────────────────────────────┐
│ 家庭网络 │
│ │
│ ┌─────────┐ ┌─────────┐ ┌─────────┐ ┌─────────┐ │
│ │ 手机 │ │ 电脑 │ │ 平板 │ │ 电视 │ │
│ └────┬────┘ └────┬────┘ └────┬────┘ └────┬────┘ │
│ │ │ │ │ │
└────────┼──────────────┼──────────────┼──────────────┼──────────┘
│ │ │ │
└──────────────┬┼──────────────┘ │
▼
┌─────────────────┐
│ AdGuard Home │
│ DNS 服务器 │
│ │
│ ┌───────────┐ │
│ │ 过滤器规则 │ │
│ │ 广告域名 │ │
│ │ 追踪器域名 │ │
│ │ 安全域名 │ │
│ └───────────┘ │
└────────┬────────┘
│
┌────────────┴────────────┐
▼ ▼
┌─────────────┐ ┌─────────────┐
│ 放行查询 │ │ 拦截查询 │
│ (正常网站) │ │ (广告/追踪) │
└──────┬──────┘ └──────┬──────┘
│ │
▼ ▼
┌─────────────┐ ┌─────────────┐
│ 上游 DNS │ │ 返回空地址 │
│ (解析域名) │ │ (过滤广告) │
└─────────────┘ └─────────────┘
DNS 拦截流程:
- 设备发起 DNS 查询(如
ad.doubleclick.net) - AdGuard Home 接收查询请求
- 检查域名是否在黑名单中
- 如果是广告域名,返回空地址
- 如果是正常域名,转发到上游 DNS
- 返回解析结果
快速上手
Docker 部署(推荐)
创建目录:
mkdir -p ~/adguardhome/work ~/adguardhome/conf
创建 docker-compose.yml:
version: '3'
services:
adguardhome:
image: adguard/adguardhome:latest
container_name: adguardhome
restart: unless-stopped
ports:
- "53:53/tcp"
- "53:53/udp"
- "3000:3000/tcp"
- "853:853/tcp"
- "784:784/udp"
- "8053:8053/tcp"
volumes:
- ./work:/opt/adguardhome/work
- ./conf:/opt/adguardhome/conf
environment:
- TZ=Asia/Shanghai
network_mode: host
启动服务:
# 启动服务
docker-compose up -d
# 查看运行状态
docker-compose ps
# 查看日志
docker-compose logs -f
开放 DNS 端口(如遇到端口冲突):
# 检查端口占用
sudo lsof -i :53
# 停止系统 DNS 服务(Ubuntu/Debian)
sudo systemctl stop systemd-resolved
sudo systemctl disable systemd-resolved
# 修改 /etc/resolv.conf
echo "nameserver 127.0.0.1" | sudo tee /etc/resolv.conf
访问 Web 管理界面:
http://your-server-ip:3000
树莓派部署
系统要求:
| 项目 | 要求 |
|---|---|
| 设备 | 树莓派 3B+ 或更高 |
| 系统 | Raspberry Pi OS / Ubuntu Server |
| 存储 | 16GB+ microSD 卡 |
| 内存 | 1GB+ 推荐 |
部署步骤:
# 更新系统
sudo apt update && sudo apt upgrade -y
# 安装 Docker
curl -fsSL https://get.docker.com | sh
# 创建 AdGuard 目录
mkdir -p ~/adguardhome/work ~/adguardhome/conf
# 运行容器
docker run --name adguardhome \
--restart unless-stopped \
-v ./work:/opt/adguardhome/work \
-v ./conf:/opt/adguardhome/conf \
-p 53:53/tcp \
-p 53:53/udp \
-p 3000:3000/tcp \
-p 853:853/tcp \
-p 784:784/udp \
-p 8053:8053/tcp \
-d adguard/adguardhome:latest
基础配置向导
首次配置步骤:
1. 访问 http://your-server-ip:3000
2. 点击"开始配置"
3. 设置管理员账号和密码
4. 配置网络接口(选择 LAN 接口)
5. 配置上游 DNS 服务器
6. 选择拦截规则
7. 完成配置
推荐上游 DNS:
| DNS 服务 | 地址 |
|---|---|
| Cloudflare | 1.1.1.1, 1.0.0.1 |
| 8.8.8.8, 8.8.4.4 | |
| Quad9 | 9.9.9.9, 149.112.112.112 |
| AdGuard DNS | 94.140.14.14, 94.140.15.15 |
核心功能详解
1. DNS 过滤器
内置过滤器:
| 过滤器 | 说明 |
|---|---|
| AdGuard DNS 过滤器 | AdGuard 维护的广告拦截列表 |
| AdAway | 经典的开源广告拦截列表 |
| EasyList | 专为广告拦截设计的列表 |
| EasyPrivacy | 隐私保护列表 |
| Malware Domain List | 恶意软件域名列表 |
| Phishing Army | 钓鱼网站列表 |
添加自定义规则:
过滤规则语法:
# 注释
||example.com^ # 拦截指定域名
@@||example.com^ # 白名单指定域名
||*.example.com^ # 拦截子域名
||blog.example.com^ # 精确拦截
示例:
||doubleclick.net^ # 拦截 DoubleClick 广告
||googlesyndication.com^ # 拦截 Google 广告
||baidu.com^ # 拦截百度广告
规则订阅:
常用规则订阅:
- https://adguardteam.github.io/AdGuardSDNSFilter/Filters/filter.txt
- https://easylist.to/easylist/easylist.txt
- https://easylist.to/easylist/easyprivacy.txt
2. DNS 加密
AdGuard Home 支持多种 DNS 加密协议:
| 协议 | 端口 | 说明 |
|---|---|---|
| DNS-over-TLS (DoT) | 853 | TLS 加密 DNS |
| DNS-over-HTTPS (DoH) | 8053 | HTTPS 加密 DNS |
| DNS-over-QUIC (DoQ) | 784 | QUIC 加密 DNS |
客户端配置:
浏览器/设备配置:
- DoH URL: https://your-server:8053/dns-query
- DoT 主机名: your-server
- DoQ 主机名: your-server
3. 隐私保护
隐私设置:
隐私选项:
- 隐藏搜索结果
- 移除参数(如 utm_*)
- 阻止偷偷下载文件
- 拦截 Cookie 弹窗
- 防止 DNS 泄露
跟踪器拦截:
被拦截的跟踪器类型:
- 分析跟踪器(Google Analytics)
- 社交媒体跟踪器
- 行为跟踪器
- 指纹识别
- 广告跟踪器
4. 家长控制
家长控制功能:
过滤级别:
- 无过滤
- 保护模式(拦截成人内容)
- 自定义过滤
自定义过滤:
- 设置允许/禁止访问的域名
- 设置上网时间限制
- 查看上网历史记录
配置家长控制:
步骤:
1. 进入"过滤器" → "自定义过滤规则"
2. 添加成人内容拦截规则
3. 设置允许的网站列表
4. 配置上网时间表
5. 启用家长控制
5. DHCP 服务器
AdGuard Home 内置 DHCP 功能:
DHCP 配置:
# DHCP 设置
DHCP enabled: true
DHCP IP range: 192.168.1.100 - 192.168.1.250
DHCP Subnet mask: 255.255.255.0
DHCP Gateway: 192.168.1.1
DHCP DNS: 192.168.1.2
Lease time: 24h
适用场景:
适合使用 DHCP 的情况:
- 家庭网络无其他 DHCP 服务器
- 需要统一管理设备 IP
- 路由器 DHCP 功能较弱
不适合使用 DHCP 的情况:
- 已有主路由提供 DHCP
- 需要专业 DHCP 功能(VLAN、 PXE 等)
6. 查询日志与统计
查询日志:
日志功能:
- 记录所有 DNS 查询
- 显示查询时间、域名、设备
- 支持搜索和筛选
- 导出日志
日志保留:
- 可配置保留时间
- 支持关闭日志(提升性能)
- 支持定期清理
统计面板:
显示内容:
- 今日/本周/本月查询统计
- Top 10 查询域名
- Top 10 拦截域名
- 查询来源分布
- DNS 响应时间
高级配置
路由器配置
将路由器 DNS 指向 AdGuard Home:
路由器设置步骤:
1. 登录路由器管理界面(通常 192.168.1.1)
2. 找到"LAN 设置"或"DHCP 设置"
3. 将"首选 DNS 服务器"改为 AdGuard Home IP
4. 保存并重启路由器
示例路由器配置:
- 首选 DNS:192.168.1.2(AdGuard Home 服务器)
- 备用 DNS:8.8.8.8(Google DNS)
客户端 DNS 配置
手动配置设备 DNS:
Windows:
控制面板 → 网络和共享中心 → 更改适配器设置
→ 选择网络 → 属性 → IPv4 → 使用以下 DNS
首选:192.168.1.2
macOS:
系统偏好设置 → 网络 → 高级 → DNS
添加:192.168.1.2
iOS:
设置 → Wi-Fi → 点击网络 → 配置 DNS
选择"手动" → 添加 192.168.1.2
Android:
设置 → Wi-Fi → 长按网络 → 修改网络
→ 高级选项 → IP 设置为"静态"
DNS 1:192.168.1.2
上游 DNS 配置
推荐配置:
# 速度优先
upstream:
- https://1.1.1.2/dns-query
- https://1.0.0.2/dns-query
# 隐私优先
upstream:
- https://dns.quad9.net/dns-query
- https://dns.google/dns-query
# 国内访问
upstream:
- https://dns.alidns.com/dns-query
- https://doh.360.cn/dns-query
并发查询配置
# 同时向所有上游发送查询,取最快响应
bootstrapDns:
- 1.1.1.1
- 8.8.8.8
- 9.9.9.9
# 并发数配置
upstreamDns:
- 94.140.14.14
- 94.140.15.15
- 1.1.1.1
- 8.8.8.8
常见问题
Q:AdGuard Home 和 AdGuard 有什么区别?
A:
- AdGuard 是浏览器扩展/桌面客户端,只作用于单个设备
- AdGuard Home 是 DNS 服务器,作用于整个网络
- AdGuard Home 无需在设备上安装任何软件
- AdGuard 功能更细致,AdGuard Home 更适合全网覆盖
Q:拦截会影响正常网站吗?
A:
- 可能会,建议定期检查更新规则
- 发现问题可在白名单中添加
- 某些网站需要登录后才能看到内容,可能被误拦截
- 建议开启"安全搜索"功能
Q:如何提高拦截效果?
A:
- 订阅多个高质量规则源
- 开启"使用拦截规则hosts文件"
- 定期更新规则
- 添加针对性的自定义规则
- 开启隐私保护选项
Q:内存占用多少?
A:
- 空闲时:约 50-100MB
- 活跃查询:约 100-200MB
- 查询日志开启:占用更高
- 建议配置:1GB+ 内存
Q:如何更新 AdGuard Home?
A:
# Docker 更新
docker-compose pull
docker-compose up -d
# 或手动拉取
docker pull adguard/adguardhome:latest
docker stop adguardhome
docker rm adguardhome
# 重新运行容器(保留数据)
Q:支持 DNSSEC 吗?
A:
- 支持,在设置中启用 DNSSEC
- 需要上游 DNS 也支持 DNSSEC
- 可验证 DNS 响应真实性
- 开启后略有性能开销
适用场景
推荐使用:
- 家庭网络广告拦截
- 保护孩子上网安全
- 防止追踪保护隐私
- 提升网络浏览体验
- DNS 污染防护
- 全家设备统一管理
不推荐使用:
- 需要应用层过滤(如 HTTPS 拦截)
- 超复杂企业网络管理
- 需要深度数据包检测
总结
AdGuard Home 以"全网拦截 + 隐私保护 + 家长控制 + DNS 加密"的组合,成为了家庭网络守护的最佳开源选择。
核心优势回顾:
- 全网覆盖:一次部署,全家设备受益
- 隐私保护:阻止追踪器和数据分析
- 家长控制:过滤不适宜内容
- DNS 加密:支持 DoH/DoT/DoQ
- 轻量高效:树莓派也能流畅运行
- 完全免费:无任何功能限制
对于追求清洁网络环境、保护家庭隐私、拦截广告追踪的用户,AdGuard Home 是最佳选择。
© 版权归无边界科技所有,版权所有。
DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。
更多推荐

所有评论(0)