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/edge/AdGuardHome_windows_amd64.zip
解压压缩包得到 AdGuardHome.exe 文件

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

以管理员身份打开命令提示符,执行以下命令
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,并执行对应系统版本的命令。

下载、解压、移动二进制文件
#Linux x64wget https://static.adguard.com/adguardhome/edge/AdGuardHome_linux_amd64.tar.gz -O AdGuardHome.tar.gz#Linux i386wget https://static.adguard.com/adguardhome/edge/AdGuardHome_linux_386.tar.gz -O AdGuardHome.tar.gz#Linux ARMv7wget https://static.adguard.com/adguardhome/edge/AdGuardHome_linux_armv7.tar.gz -O AdGuardHome.tar.gz#Linux ARMv6wget https://static.adguard.com/adguardhome/edge/AdGuardHome_linux_armv6.tar.gz -O AdGuardHome.tar.gz
为了方便管理,我们将二进制文件移动到 /usr/local/AdGuard_Home/ 文件夹中。
#解压tar xvf AdGuardHome.tar.gz#移动文件mkdir /usr/local/AdGuard_Home mv AdGuardHome/AdGuardHome /usr/local/AdGuard_Home

安装 AdGuard Home 到系统中
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 镜像源的教程请自行搜寻。
部署准备
#拉取 AdGuard Home Docker镜像docker pull adguard/adguardhome#设置 AdGuard Home 的配置文件存储位置mkdir /etc/AdGuard_Home/

创建容器
#创建 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 Google 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
DNS 封锁清单
为了更好地发挥 AdGuard Home 去广告的功能,仅依靠默认的过滤规则是不够的,但也不宜过多,过多的过滤规则会影响解析的速度,各位可以根据需要添加过滤规则。

名称 简介 地址 AdGuard DNS Filter AdGuard 官方维护的广告规则,涵盖多种过滤规则 https://raw.githubusercontent.com/AdguardTeam/FiltersRegistry/master/filters/filter_15_DnsFilter/filter.txt EasyList Adblock Plus 官方维护的广告规则 https://easylist-downloads.adblockplus.org/easylist.txt EasyList China 面向中文用户的 EasyList 去广告规则 https://easylist-downloads.adblockplus.org/easylistchina.txt EasyPrivacy 反隐私跟踪、挖矿规则 https://easylist-downloads.adblockplus.org/easyprivacy.txt Halflife 规则 涵盖了 EasyList China、EasyList Lite、CJX ’s Annoyance、乘风视频过滤规则,以及补充的其它规则 https://gitee.com/halflife/list/raw/master/ad.txt Xinggsf 乘风过滤 国内网站广告过滤规则 https://gitee.com/xinggsf/Adblock-Rule/raw/master/rule.txt Xinggsf 乘风视频过滤 视频网站广告过滤规则 https://gitee.com/xinggsf/Adblock-Rule/raw/master/mv.txt MalwareDomainList 恶意软件过滤规则 https://www.malwaredomainlist.com/hostslist/hosts.txt Adblock Warning Removal List 去除禁止广告拦截提示规则 https://easylist-downloads.adblockplus.org/antiadblockfilters.txt Anti-AD 命中率高、兼容性强 https://anti-ad.net/easylist.txt Fanboy’s Annoyances List 去除页面弹窗广告规则 https://easylist-downloads.adblockplus.org/fanboy-annoyance.txt
以浏览国内网站为主的用户可以使用 anti-AD + Halflife 过滤规则,如有浏览国外网站的需要,可以根据需要添加 AdGuard DNS Filter、Fanboy's Annoyances List 等规则。不同规则之间会存在重叠的情况,可以通过 AdGuard Home 的拦截日志分析哪些规则的使用频率最高,哪些规则拦截频率最低,再加以取舍。
替换设备 DNS
完成 AdGuard Home 的设置后,便可将 AdGuard Home 的 DNS 地址部署到局域网设备上。
更改路由器 DNS 地址
不同品牌路由器修改的方法各有差异,具体步骤可参照说明书或网上的教程(路由器型号 + 更改 DNS),下方以 Redmi AC2100 路由器为例。
打开并登录路由器的后台管理页面。

在局域网设置中找到 DNS 设置,将首选 DNS 服务器更改为 AdGuard Home 的 DNS 地址,可设置为其它的 DNS 服务商,避免因 AdGuard Home 服务器宕机而导致局域网无法访问互联网。更改完成后点击保存即可。在路由器更改 DNS 后,局域网内的所有设备的 DNS 解析都会通过 AdGuard Home DNS 完成,实现过滤广告与反隐私跟踪。

更改手机 DNS 地址
Android 设备

进入「设定 - 网络和互联网 - Wi-Fi」,点击当前已连接网络的一旁的设置按钮
在 Wi-Fi 详情信息页面点击「编辑」按钮
找到「IP 设定」
分别输入该设备的 IP、网关与 AdGuard Home 服务器地址
iOS 设备

进入「设置 - 无线局域网」,点击当前已连接网络的名称
在 Wi-Fi 详情信息页面找到「配置 DNS」
切换为手动设置,并输入 AdGuard Home 服务器地址
更改电脑 DNS 地址
macOS 设备

打开「网络偏好设置」,选中当前已连接的网络,点击右下方的「高级」按钮
切换到「DNS」选项卡,填写 AdGuard Home 服务器地址
Windows 设备

打开「Windows 设置 - 网络和 Internet」,点击「更改适配器选项」
选中有线 / 无线网卡,点击工具栏「更改此连接的设置」
找到「Internet 协议版本 4」,点击「属性」按钮
填写 DNS 服务器,点击「编辑」按钮
使用效果


使用 AdGuard Home 处理局域网中的 DNS 请求后(时长 12 小时),有 6% 的 DNS 请求被拦截下来。在客户端上,浏览网页时的浮窗广告、页面弹窗都能够被阻挡,一些隐私追踪服务同样也被 AdGuard 屏蔽。
当然,AdGuard Home 也不是万能的,在官方文档中说到,面对广告资源域名与网站域名相同、Twitch 广告、YouTube 视频广告、国外社交平台上的赞助推文,AdGuard Home 无能为力,只能借助 Adblock Plus、AdGuard、uBlock Origin 等内容拦截工具。
常见问题
端口冲突
在 Linux 设备上运行 AdGuard Home,通常会出现 53(本地 DNS 服务器)、68(DHCP 客户端)、80(Http)、443(Https) 端口冲突的问题,可以通过 netstat -tunlp | grep 端口号 查询占用进程。有两种解决方案:使用不同端口、停用冲突进程。
如果是通过 Docker 方式运行 AdGuard Home,出现 listen udp 0.0.0.0:53: bind: address already in use 的提示,需要手动处理,方法如下:
#停止 DNSStubListenersystemctl stop systemd-resolved#创建文件夹(如果不存在)mkdir /etc/systemd/resolved.conf.d/#使用 Nano 创建配置文件nano /etc/systemd/resolved.conf.d/adguardhome.conf
在编辑器中粘贴以下内容:
[Resolve] DNS=127.0.0.1 DNSStubListener=no
保存后执行以下命令。
#创建备份sudo mv /etc/resolv.conf /etc/resolv.conf.backup#将 /etc/resolv.conf 链接至 /run/systemd/resolve/resolv.confln -s /run/systemd/resolve/resolv.conf /etc/resolv.conf#重启 DNSStubListenersystemctl restart systemd-resolved
完成后使用 netstat -tunlp | grep 53 命令检查是否依旧有进程占用 53 端口,如无冲突,重启 AdGuard Home 容器即可。
平均处理时间过长?
以下几个因素会使 AdGuard Home 的处理时间过长:
本地到上游DNS的速度:如果本地运营商的 DNS 没有 DNS 劫持、投毒的问题,建议使用运营商 DNS + 公共 DNS 的方案,DNS 速度可以通过 Ping 值比较。并在 AdGuard Home 中选择以「并行请求」的方式处理 DNS 请求
浏览安全、家庭控制与强制安全搜索服务:以上三个功能,在 DNS 请求时不会经过 DNS 缓存,直接向上游 DNS 服务器请求,从而减慢 AdGuard Home 的处理速度
IPv6:如果使用的宽带、校园网不支持 IPv6,可以禁用解析 IPv6,提高响应速度
过滤规则:过多的过滤规则会影响响应速度,宁缺毋滥,选择最合适自己的规则,一般保留 3 - 4 个广告过滤规则即可。
统计周期: 在完成以上优化后,发现平均处理时间并没有太大改变,使用体验上也并不慢,有可能是因为统计周期过长,将优化前的结果计入,导致优化前后的结果无太大差异。不妨将仪表盘的统计周期缩短为 24 小时再看看。
完成以上步骤后使用体验比没有使用 AdGuard Home 还要糟糕,问题有亿点严重了。这个时候需要查找 AdGuard Home 的日志,寻找问题的原因。
部分网页被 AdGuard Home 误杀
如果一些网页被 AdGuard Home 误杀,可以在 AdGuard Home 的日志寻找是否被拦截。如果与规则发生冲突,需要将误杀网址通过自定义过滤规则添加至白名单中,或选择其它的过滤规则。常见的冲突有网站统计服务(Google Analytics)、广告联盟等。
自定义过滤规则
AdGuard Home 的过滤规则兼容 Adblock 语法、Hosts 语法及 Domain-only 语法。
语法 作用 ||example.org^拦截 example.org 域名及其所有子域名 @@||example.org^放行 example.org 及其所有子域名 127.0.0.1 example.org将 example.org 解析到 127.0.0.1 /REGEX/阻止访问与 example_regex_meaning 匹配的域 ! 这是一行注释只是一条注释 # 这是一行注释只是一条注释
能否将 AdGuard Home DNS 与 Surge / Clash 网关结合使用?
可以。Surge 与 Clash 分别提供了 dns-server 与 dns-nameserver 字段以供用户修改 DNS 解析服务器,在配置文件中填入 AdGuard Home 的 DNS 服务器地址即可。
尾言
如果你有在多设备上对去除广告的需求,恰巧手上有一台可以发光发热的树莓派、软路由、NAS 甚至是旧电脑,AdGuard Home 或许是一个不错的选择,它能够给你带来一个清爽的网络世界。同类的工具还有 Pi-Hole,升级到 5.0 版本后,除了缺乏多语言支持、内置的过滤器选择较少、兼容性弱于 AdGuard Home 的不足外,使用体验与 AdGuard Home 无太大差异。
免责声明:
本站提供的资源,都来自网络,版权争议与本站无关,所有内容及软件的文章仅限用于学习和研究目的。不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负,我们不保证内容的长久可用性,通过使用本站内容随之而来的风险与本站无关,您必须在下载后的24个小时之内,从您的电脑/手机中彻底删除上述内容。如果您喜欢该程序,请支持正版软件,购买注册,得到更好的正版服务。
侵删请致信E-mail:fubuki@soxlola.edu.kg
