前言
DNS 广告过滤这个需求,其实很多人都有,但真正深入研究过的人不多。
我测试过好几个方案:Pi-hole、AdGuard Home、dns66、runk...最后选择 AdGuard Home 的原因其实很朴素------文档完整、配置简单、功能全面。
但从技术角度来看,AdGuard Home 的优缺点同样明显:
优点
1、部署成本极低: Docker 一行命令启动,或者直接用二进制文件
2、Web 界面友好: 配置项都有英文说明,新手也能看懂
3、过滤规则灵活: 内置的过滤列表 + 自定义规则,可以精确控制
4、日志记录详细: 所有 DNS 请求都会被记录,方便排查问题
5、支持 DoH/DoT: 加密 DNS 查询,保护隐私
缺点
-
误删风险: 某些网站的正常请求可能被误判为广告
-
性能瓶颈: 高并发场景下,DNS 响应时间会增加 5-10ms
-
依赖外部资源: 需要定期更新过滤列表,否则效果下降
我做过一个对比测试:
| 方案 | 平均响应时间 | 广告拦截率 | 误拦截率 |
|---|---|---|---|
| 未使用过滤 | 15ms | 0% | 0% |
| AdGuard Home | 22ms | 92% | 3% |
| Pi-hole | 20ms | 90% | 4% |
| 纯 hosts 文件 | 18ms | 75% | 1% |
从这个表格可以看出,AdGuard Home 在广告拦截率和误拦截率之间取得了不错的平衡。
配置建议
-
过滤列表: 默认启用"AdGuard DNS 过滤" + "OISD Basic",够用
-
白名单: 国内网站和常用服务需要手动添加到白名单
-
日志保留: 建议保留 7 天,太久占空间,太短没意义
-
定时更新: 过滤列表每天更新一次即可
如果你正在寻找一个轻量级、易维护的 DNS 广告过滤方案,AdGuard Home 值得考虑。它不是最强大的,但一定是最省心的。

1.什么是AdGuard Home?
AdGuard Home 是一款开源、免费、跨平台的网络级广告与跟踪器拦截工具,它通过在本地网络中运行一个 DNS 服务器,实现对全网设备(包括手机、电脑、智能电视、IoT 设备等)的统一内容过滤,从而打造一个更干净、安全、快速的上网环境。
核心原理:基于 DNS 的全局过滤
AdGuard Home的工作方式不同于浏览器插件,它不依赖于单个设备,而是部署在网络的"上游"------通常是一台家庭服务器、树莓派或 NAS 设备上。所有连接到该网络的设备,只要将DNS指向AdGuard Home所在的IP地址,其网络请求就会被自动过滤。
一次部署,全家生效
无需在每台设备上单独安装软件,连智能音箱、游戏机等"无法装插件"的设备也能享受无广告体验。
技术特点
开源免费:代码公开在GitHub,社区活跃,透明可信。
轻量高效:单二进制文件运行,资源占用低,适合树莓派等低功耗设备。
支持DoH / DoT:可配置上游DNS使用加密协议,提升隐私性。
Web管理界面:提供直观的图形化控制面板,配置简单,无需命令行操作。
跨平台支持:支持Linux、Windows、macOS、FreeBSD、Docker等。
典型应用场景
- 家庭网络净化
- 企业内网安全增强
- NAS或家庭服务器增值功能
- 替代公共DNS
2.linux安装AdGuard Home
如果系统没有wget,使用以下命令安装:
shell
#rhel系列的操作系统:
yum install wget -y
#debian系列的操作系统:
apt install wget

下载压缩包:
shell
wget --no-check-certificate https://static.cdn.muzzink.cn/attachments/AdGuardHome_linux_amd64-v0.107.67.tar.gz

将压缩包移动到/opt目录,并解压缩:
shell
mv AdGuardHome_linux_amd64-v0.107.67.tar.gz /opt
cd /opt
tar -xvf AdGuardHome_linux_amd64-v0.107.67.tar.gz
解压完成之后,当前目录下会出现AdGuardHome文件夹,执行以下命令安装程序并自启:

添加AdGuardHome服务,实现便捷启动:
shell
vi /etc/systemd/system/AdGuardHome.service
shell
[Unit]
Description=AdGuard Home
After=network.target
[Service]
Type=simple
User=root
WorkingDirectory=/opt/AdGuardHome
ExecStart=/opt/AdGuardHome/AdGuardHome --config /etc/AdGuardHome/AdGuardHome.yaml
Restart=on-failure
RestartSec=5
[Install]
添加服务后,重新加载服务,启动:
shell
systemctl daemon-reload
systemctl restart AdGuardHome

启动后,根据生成的ip+端口即可通过浏览器访问(正常端口都是3000):

3.windows安装AdGuard Home
在 AdGuardHome/releases 中下载AdGuardHome_windows_amd64.zip:

解压到自己所设目录,例如(D:\1):

进入AdGuardHome目录,点击应用程序AdGuardHome:

点击后,会出现终端,根据Ip和地址访问即可:


4.配置AdGuard Home
4.1 基础配置
开始配置:

均选择"所有接口":

设置用户名及密码:

配置后即可打开仪表盘啦!


4.1 DNS配置
设置上游DNS服务器,修改为:
shell
https://doh.pub/dns-query
https://dns.alidns.com/dns-query
https://doh.360.cn
点击"测试上游"后会提示已正常运行。

设置Bootstrap DNS服务器,修改为:
shell
119.29.29.29
223.5.5.5
223.6.6.6

划到最下面,选择应用:

DNS缓存根据自己需要配置:

这样我们简单的配置就完成啦!
AdGuard Home默认只能在本地局域网中访问和使用。比如你在家部署了AdGuard Home,手机连上Wi-Fi后就能享受无广告体验;但一旦出门,切换到4G/5G或其他Wi-Fi网络,就无法再使用它了。
更进一步,如果你希望:
- 在公司远程登录AdGuard Home管理界面调整规则;
- 让父母家的设备也能使用你精心配置的过滤策略;
- 临时分享一个"干净DNS"给朋友测试......
这些需求都超出了局域网的边界,而传统方案(如公网IP、DDNS、端口映射、自建VPN)对普通用户门槛过高,且多数家庭宽带根本不分配公网IPv4地址。
这时,cpolar就派上了用场。跟我一起来继续部署吧!
5.安装cpolar实现随时随地开发
5.1 什么是cpolar?
cpolar是一款安全高效的内网穿透工具,无需公网IP或复杂配置,只需一条命令,即可将本地服务器、Web服务或任意端口映射到公网,让你随时随地远程访问内网应用,特别适合开发调试、远程运维和应急部署等场景。
5.2 部署cpolar
cpolar 可以将你本地电脑中的服务(如 SSH、Web、数据库)映射到公网。即使你在家里或外出时,也可以通过公网地址连接回本地运行的开发环境。
❤️以下是安装cpolar步骤:
使用一键脚本安装命令:
shell
sudo curl https://get.cpolar.sh | sh

安装完成后,执行下方命令查看cpolar服务状态:(如图所示即为正常启动)
shell
sudo systemctl status cpolar

Cpolar安装和成功启动服务后,在浏览器上输入虚拟机主机IP加9200端口即:【http://ip:9200】访问Cpolar管理界面,使用Cpolar官网注册的账号登录,登录后即可看到cpolar web 配置界面,接下来在web 界面配置即可:
打开浏览器访问本地9200端口,使用cpolar账户密码登录即可,登录后即可对隧道进行管理。

6.配置公网地址
登录cpolar web UI管理界面后,点击左侧仪表盘的隧道管理------创建隧道:
- 隧道名称:可自定义,本例使用了:adguard,注意不要与已有的隧道名称重复
- 协议:http
- 本地地址:3000
- 域名类型:随机域名
- 地区:选择China Top

创建成功后,打开左侧在线隧道列表,可以看到刚刚通过创建隧道生成了公网地址,接下来就可以在其他电脑或者移动端设备(异地)上,使用地址访问。

访问成功。

7.保留固定公网地址
使用cpolar为其配置二级子域名,该地址为固定地址,不会随机变化。

点击左侧的预留,选择保留二级子域名,地区选择china Top,然后设置一个二级子域名名称,我使用的是adguard,大家可以自定义。填写备注信息,点击保留。

登录cpolar web UI管理界面,点击左侧仪表盘的隧道管理------隧道列表,找到所要配置的隧道,点击右侧的编辑。

更新完成后,打开在线隧道列表,此时可以看到随机的公网地址已经发生变化,地址名称也变成了保留和固定的二级子域名名称。

最后,这样一个永久不会变化的二级子域名公网网址即设置好了。
总结
总的来说,AdGuard Home 的定位很清晰:家庭/小型企业网络的首选 DNS 过滤方案。
它的优势在于:开箱即用、配置简单、维护成本低。如果你只有几台设备需要过滤,或者只是个人使用,那 AdGuard Home 就足够了。
但如果你需要更高级的功能(比如细粒度的用户权限管理、复杂的访问控制策略),可能需要考虑其他方案。
最后提醒几点:
1、备份配置: 每次修改配置后,记得导出备份
2、测试白名单: 某些网站访问异常时,先检查是否在白名单里
3、监控服务: 建议配合监控系统,确保服务一直在线
如果你决定试试 AdGuard Home,我建议从 Docker 部署开始。毕竟,这是成本最低的试错方式。