如果你有在多设备上对去除广告的需求,AdGuard Home 或许是一个不错的选择,它能够给你带来一个清爽的网络世界。
为什么用户不喜欢广告,以及追踪器?
一个好产品,需要广而告之,才能活下去,一部好影片,需要广而告之,才有好的票房。因此便有了广告。从最初的口口相传发展到今日的「千人千面、猜你喜欢」,广告已从单向的传播形式发展成为基于个人喜好专门投放,用户的接受权由主动变为被动。

但当广告时时刻刻充斥在我们的生活,看新闻有贴片广告,刷朋友圈有欧巴的互动广告,看电视剧有 90 秒片头广告,小网站上还有 * 感荷官在线发牌,在《一千五百万个积点》1中,男主居住在一个被屏幕环绕的房子里,屏幕全天候地播放广告,想要屏蔽广告只能选择付费,甚至在你屏蔽广告后还会提醒用户「为了网站的持续发展,请关闭广告屏蔽插件」,为了正常浏览网页,用户也只能妥协。
并非所有广告都是侵入性、影响用户体验的广告,其中不乏制作精良、体验良好的广告,在由 The Coalition for Better Ads 提出的 Better Ads Standards 中,边栏广告、小型贴片广告、顶栏 / 底部广告对用户的浏览体验影响较小,浮窗广告、大型 / 全屏贴片广告、自动播放的视频广告则会影响用户心情。而用户只能选择全部屏蔽,广告商的收益会受到极大的影响。除了广告,一并被屏蔽掉的还有信息收集与分析工具,如 Google Analytics,此类工具可以在不过分侵犯用户隐私的前提下帮助网站主改善网站运营,提供更好的内容。
广告拦截 / 反追踪插件是如何起作用的?
广告拦截插件的实现原理大致可分为三种 —— URL 匹配屏蔽、流量过滤、网页 DOM 过滤。前两者属于 Request Blocking,后者属于 Page Code Filtering & CSS Injection and JavaScript2。
URL 匹配屏蔽
广告联盟的广告资源通常会与网站站点分开放置,以百度联盟为例,百度联盟的广告域名为 https://cpro.baidustatic.com/,因此我们可以单独屏蔽来自 https://cpro.baidustatic.com/ 的内容,同时不会影响网站内容的正常加载。当网站域名与广告资源域名相同时,基于 URL 匹配的广告屏蔽方法如同「南橘北枳」。
网页 DOM 过滤
DOM(Document Object Model,文件物件模型),在 W3C DOM 标准3下,网页中的任何一个标签、元素都是树状结构中的一个节点。网页 DOM 过滤广告弥补了基于匹配 URL 屏蔽广告的缺点,通过 CSS3 Selector 定位到广告 DOM 元素,使用 display=none!important 等语法隐藏广告。DOM 过滤过程发生在网页加载时,缺点是无法拦截通过 Ajax、Pjax 新加载的广告内容。
流量过滤
在实体网关 / 虚拟网关处设置过滤器,对具备广告特征的流量实施拦截,如网站使用了 Https 加密,则采取 MITM(Man-in-the-middle attack,中间人攻击)对 Https 加密流量进行解密,并对其中的广告流量进行拦截,这一功能在部分第三方路由器固件非常常见,如 KoolProxy、广告屏蔽大师 Plus。
在解密前,客户端上需要安装并信任由广告拦截软件生成的证书,如果网站采取了 Https 加密并需要验证证书,流量过滤的广告拦截功能则会影响网页的正常浏览。此外,如果设备性能偏低,这种拦截方式一定程度上会减慢网速。
以往我们习惯在电脑浏览器上使用 AdBlock Plus、AdGuard、Ghostery、uBlock Origin 之类的广告拦截与隐私防护插件,从而去除网页上扰人的广告。对于 Android 与 iOS,受限于系统权限(如 Root 权限、系统证书与用户证书)、过滤模式,想在手机上「找到一块净土」,需要花费一番功夫。
上述方法操作后只对单个设备生效,随着设备数量的增加,逐个逐个去设置十分麻烦,此外还会增加软件的订阅费用,面对智能电视、智能音箱,传统的广告拦截软件难以应付。而如果家中有使用软路由、NAS 甚至是树莓派,不妨试试在上面安装 DNS 广告拦截软件,实现网关级的广告拦截。
今天向大家介绍的 DNS 广告过滤软件是 AdGuard 团队开发的 AdGuard Home。
AdGuard Home 是一款全网广告拦截与反跟踪软件。在您将其安装完毕后,它将保护您所有家用设备,同时您不再需要安装任何客户端软件。随着物联网与连接设备的兴起,掌控您自己的整个网络环境变得越来越重要。
—— AdGuard Home
AdGuard Home 是 AdGuard 开源的一个私人 DNS 服务端,只需在网关部署,即可实现全局域网的广告拦截与隐私反追踪。在 DNS 解析的过程中,匹配规则库内的 URL 进行拦截,同时在客户端中,还可以通过自定义过滤规则实现网页 DOM 的拦截。
如何安装 AdGuard Home?
基于 Golang 编写的 AdGuard Home,官方支持 运行在 Linux 32 位 / 64 位 / ARM(v6 / v7)/ MIPS、FreeBSD、Windows、macOS、Docker 内,以及由第三方开发者维护的 OpenWrt 软件包 、Home Assistant 拓展 和 Arch Linux。
由于篇幅限制,下文将介绍如何 NAS(系统:Debian 10)以及 Windows 电脑(系统:Windows 10)上安装与配置 AdGuard Home,其它设备请查看 AdGuard Home – Wiki 中的介绍或网友们的教程。局域网中的 DNS 服务器推荐运行在软路由、NAS 或树莓派等长期保持开机的设备上,避免因设备关闭导致 DNS 无法正常解析。
本人不推荐在普通路由器上运行 AdGuard Home、Pi-Hole 等工具,路由器的性能对 AdGuard Home 的运行效率有着较大影响。根据本人测试,Pi-Hole 空载需占用 15MB 内存(不含缓存),AdGuard Home 空载需占用 20 MB 内存(不含缓存),AdGuard Home 带机 13 台、过滤规则 74000+ 条时占用 700MB 内存(含缓存)。
AdGuard Home 支持以二进制文件、Docker 容器两种方式安装、运行,可以根据个人喜好选择合适的方式安装。如果运行设备的系统涉及到重要业务的运行,如 NAS 文件存储、Web 服务器等,推荐使用 Docker 安装,不易受到业务应用的影响。
- 以下教程需要一定的计算机操作基础、路由器使用基础与服务器使用基础
- 下文的需要使用的信息如下所示,不同用户的设置有所差异,请自行更改
- NAS 局域网 IP:10.2.168.100
- AdGuard Home 后台地址:http://10.2.168.100:3000
- 私人 AdGuard Home DNS 地址:10.2.168.100:53
下载、安装 AdGuard Home
前往 AdGuard Home 官网 下载安装包。
Windows 系统
下载二进制文件
使用浏览器 / 下载工具下载:https://static.adguard.com/adguardhome/release/AdGuardHome_windows_amd64.zip
解压压缩包得到 AdGuardHome.exe 文件

将 AdGuardHome.exe 移动到 C:\Program Files\AdGuard_Home 文件夹中

以管理员身份打开命令提示符,执行以下命令
Shell复制
cd "C:\Program Files\AdGuard_Home"
.\AdGuardHome.exe --service install

当提示 AdGuard Home is successfully installed and will automatically start on boot. 即表示 AdGuard Home 在当前系统上安装成功。在命令行中会显示管理后台的地址与端口,默认为 http://IP:3000。
Linux 系统
Linux 用户需使用 root 用户登入 SSH,并执行对应系统版本的命令。

下载、解压、移动二进制文件
Shell复制
#Linux x64
wget https://static.adguard.com/adguardhome/release/AdGuardHome_linux_amd64.tar.gz -O AdGuardHome.tar.gz
#Linux i386
wget https://static.adguard.com/adguardhome/release/AdGuardHome_linux_386.tar.gz -O AdGuardHome.tar.gz
#Linux ARMv7
wget https://static.adguard.com/adguardhome/release/AdGuardHome_linux_armv7.tar.gz -O AdGuardHome.tar.gz
#Linux ARMv6
wget https://static.adguard.com/adguardhome/release/AdGuardHome_linux_armv6.tar.gz -O AdGuardHome.tar.gz
为了方便管理,我们将二进制文件移动到 /usr/local/AdGuard_Home/ 文件夹中。
Shell复制
#解压
tar xvf AdGuardHome.tar.gz
#移动文件
mkdir /usr/local/AdGuard_Home
mv AdGuardHome/AdGuardHome /usr/local/AdGuard_Home

安装 AdGuard Home 到系统中
Shell复制
cd /usr/local/AdGuard_Home
./AdGuardHome --service install

当提示AdGuard Home is successfully installed and will automatically start on boot. 即表示 AdGuard Home 在当前系统上安装成功。在终端上会显示管理后台的地址与端口,默认为 http://IP:3000。
Docker 容器
除了直接安装到系统,我们还可以通过 Docker 来安装 AdGuard Home。安装 Docker、添加 Docker 镜像源的教程请自行搜寻。
部署准备
Shell复制
#拉取 AdGuard Home Docker镜像
docker pull adguard/adguardhome
#设置 AdGuard Home 的配置文件存储位置
mkdir /etc/AdGuard_Home/

创建容器
Shell复制
#创建 AdGuard Home 容器
docker run \
--name AdGuard_Home \
-v /etc/AdGuard_Home/:/opt/adguardhome/work \
-v /etc/AdGuard_Home/:/opt/adguardhome/conf \
-p 53:53/tcp -p 53:53/udp -p 67:67/udp -p 70:68/tcp -p 70:68/udp -p 3000:80/tcp -p 446:443/tcp -p 853:853/tcp -p 3000:3000/tcp \
--restart=always \
-d adguard/adguardhome

创建容器前务必检查端口是否会发生冲突,因为我的 NAS 使用了 OpenMediaVault,53(Debian / Ubuntu 系统中的本地 DNS 服务器)、68(DHCP 客户端)、80(OpenMediaVault 网页后台)、443(Https)端口会发生冲突,便将对应端口调整为 70、446、3000,53 端口冲突可通过关闭本地 DNS 服务器解决。如有端口被占用,可以通过 netstat -tunlp | grep 端口号 查询占用进程。
容器部署成功后,通过 http://IP:3000 成功打开安装界面即表示部署成功。
初始化设置
进入安装向导
在浏览器中打开 AdGuard Home 的后台,进入安装向导,点击 “开始配置”。默认后台地址为:http://IP:3000/

设置网络接口
将后台的访问端口更改为 3000,避免与 NAS 后台的 80 端口发生冲突,DNS 端口保持为 53 即可。

设置管理员账户

完成初始化设置

后期配置

安装完成后,我们还需要进一步的设置,根据需要作出一定的优化。

常规设置

- 过滤器更新间隔:DNS 过滤清单默认更新间隔,一般为 3 天 – 7 天;
- 使用 AdGuard 「浏览安全」网页服务:作用与 Chrome 网页安全性检查类似,开启后,当用户访问存在潜在威胁的网站时,AdGuard 会主动拦截并弹出提示;
- 使用 AdGuard 「家长控制」 服务:如果家中有尚未成年的孩子,建议开启,避免访问不良网站;
- 强制安全搜索:隐藏 Bing、Google、Yandex、YouTube 网站上 NSFW 等不适宜的内容;
- 查询记录保留时间:AdGuard Home 服务端采用 Sqlite 文件数据库存储日志,长时间保留可能会降低运行速度,同时占用大量的储存空间,家庭用户一般保留 24 小时 – 7 天即可;
- 统计数据保留时间:用于仪表盘的数据展示,一般保留 24 小时 – 7 天即可。
DNS 设置

- 上游 DNS 服务器:AdGuard Home 的上游 DNS 服务器,可参考下方推荐列表,一般保留 1 – 2 个即可。AdGuard Home 除了可以作为广告过滤网关,如果设置了纯净 DNS 后,还可以避免运营商的 DNS 劫持。
- BootStrap DNS 服务器地址:作为 DoH / DoT DNS 的前置 DNS 解析器,可参考下方推荐列表。
- 查询方式、速度限制、EDNS、DNSSEC、拦截模式、DNS 缓存设置、访问设置可根据需要进行调整,一般保持默认设置即可。
DNS 服务器推荐
不同地区连接至 DNS 服务器的速度各有差异,各位可以通过 Ping 测速的方式寻找当地连接延迟最低的 DNS 服务器。更多 DNS 服务器可以在 AdGuard 文档中找到。
| DNS 提供商 | 类别 | 地址 |
| 阿里 | IPv4 DNS | 223.5.5.5 |
| IPv6 DNS | 2400:3200:baba::1 | |
| DNS-over-Https | https://dns.alidns.com/dns-query | |
| DNSPod | IPv4 DNS | 119.29.29.29 |
| DNS-over-Https | https://doh.pub/dns-query | |
| 114 | IPv4 DNS | 114.114.114.114 |
| IPv4 DNS | 8.8.8.8 | |
| IPv6 DNS | 2001:4860:4860::8888 | |
| DNS-over-Https | https://dns.google/dns-query | |
| Cloudflare | IPv4 DNS | 1.1.1.1 |
| IPv6 DNS | 2606:4700:4700::1111 | |
| DNS-over-Https | https://dns.cloudflare.com/dns-query |










评论(0)
暂无评论