简介

AdGuard Home是一款用于拦截广告和跟踪的网络范围软件。设置完成后,它将覆盖您的所有家庭设备,并且您不需要任何客户端软件。

它作为DNS服务器运行,将跟踪域重新路由到“黑洞”,从而阻止您的设备连接到这些服务器。它基于我们用于公共 AdGuard DNS 服务器的软件,并且两者都共享大量代码。

在OpenWrt上安装AdGuardHome可以分为两种方式:

  1. 安装luci-app-adguardhome图形化管理界面

  2. 只安装AdGuardHome核心组件,无界面

安装

安装luci-app-adguardhome图形化管理界面

该图形化管理界面为第三方支持,Github项目地址为:luci-app-adguardhome

  1. 访问 luci-app-adguardhome Release,下载安装包

  2. 在OpenWrt管理界面的【系统】-【软件包】,上传安装

  3. 刷新界面,在【服务】中可以看到AdGuardHome面板。

  4. 点击【更新核心版本】,会出现以下错误提示:

1
2
3
4
5
6
start download
/usr/share/AdGuardHome/update_core.sh: line 168: wget-ssl: not found
download failed try another download
/usr/share/AdGuardHome/update_core.sh: line 168: wget-ssl: not found
download failed try another download
no download success

意思就是文件/usr/share/AdGuardHome/update_core.sh的第168行,wget-ssl命令无法运行。

解决方法:

通过SSH连接OpenWrt,打开/usr/share/AdGuardHome/update_core.sh文件,定位至168行,将wget-ssl改为wget

保存后刷新界面,重新【更新核心版本】。

此时如果还是无法更新,在【系统】-【软件包】中搜索wget,安装wget-ssl程序包后,再次运行更新:

此方式的优点是更新的程序为最新版本,缺点是更新速度慢,动辄十几二十分钟起,而且在OpenWrt重启后需要手动开启,造成该现象的原因,可能是我们安装的版本问题(未进行测试)

2023年11月10日附解决方法:

在SSH命令行端,输入以下命令:/etc/init.d/AdGuardHome enable 将AdguardHome设置为开机自启,重启一下即可。

更新完成后,可以勾选【启用】,点击下方的【保存并应用】即可在浏览器中输入 http://10.0.0.2:3000 访问其管理后台。

只安装AdGuardHome核心组件

直接在【系统】-【软件包】中搜索 adguardhome 进行安装:

安装完成后直接访在浏览器中输入 http://10.0.0.2:3000 访问其管理后台。

初次访问会要求初始设置:

网页管理端口设为3000,DNS监听端口设为3001。(端口号任意,不冲突即可。)

更新

此方法安装的版本非最新版,如需更新最新版,可以前往 AdGuardHome Releases 下载最新的版本,通过SSH软件,将下载的 AdGuardHome 程序文件上传覆盖 /usr/bin/AdGuardHome 文件,并通过 chmod +x /usr/bin/AdGuardHome 赋予权限。

设置

核心功能在【设置】-【DNS设置】中:

DNS设置

上游DNS服务器

由于我们之前配置了SmartDNS,那么这边填写SmartDNS的DNS监听地址: 127.0.0.1:5053(国内)以及 127.0.0.1:5054(国外),处理方式选择【并行请求】。(论坛的各位大神都说并行请求速度最快)

  • 负载均衡

    一次查询一台服务器。 AdGuard Home将使用加权随机算法来选择服务器,以便更频繁地使用最快的服务器。

    本模式为本次更新最新的功能,意思未知。具体使用感受是,去视频app广告迅速,微博国际版登陆5秒广告可以去除,图片加载速度较快。存在的问题是,仪表盘平均处理时间较长,80-120ms之间。

  • 并行请求

    通过同时查询所有上游服务器,使用并行请求以加速解析。

    最老的模式,在添加本地DNS地址的情况下,去视频app广告迅速,微博国际版登陆5秒广告可以去除,仪表盘平均处理时间较短,可以保持在5-8ms之间。存在问题是,图片加载速度受影响,偶尔会加载慢,存在些许不稳定因素。

  • 最快的IP地址

    查询所有DNS服务器并返回所有响应中速度最快的IP地址。因必须等待全部DNS服务器均有所回应,因而会降低DNS查询的速度,但同时此举将会改善总体的连接。

    本模式据说是Smart DNS的功能一样。对比上述模式没有区别,和并行模式并无态度啊去吧。

Bootstrap DNS 服务器

Bootstrap DNS 服务器就如描述的字面意思,因为DOH DNS也需要被解析成IP才能通讯,所以需要设置一组去解析上述DOH DNS的DNS来解析。一般设置为自己运营商的DNS,因为理论上离自己最近的DNS响应速度是最快的,尽管运营商DNS存在劫持和污染等问题,但这里它只负责解析DOH DNS,并不负责解析日常上网,所以这些都没所谓。

私人反向 DNS 服务器

AdGuard Home 用于本地 PTR 查询的 DNS 服务器。这些服务器将使用反向 DNS 解析具有私人 IP 地址的客户机的主机名,比如 “192.168.12.34”。如果没有设置,除非是 AdGuard Home 里设置的地址,AdGuard Home 都将自动使用您的操作系统的默认 DNS 解析器。

这个我们用不到,直接默认即可。

以上三项设置完成后,点击【测试上游DNS】以及【应用】。

DNS 服务配置

【速度限制】填 0(不限制);

【EDNS客户端子网】和【DNSSEC】看情况勾选,上游DNS如果支持EDNS的话,EDNS会把你的IP一并发送到权威DNS进行查询,DNS服务器根据你的IP所在地,给你返回离你最近的IP结果,从而加速访问速度。

【拦截模式】一般【默认】即可。

DNS缓存配置

这边全部保持为【空】

这是因为我们在SmartDNS中已经配置了缓存,不必造成重复缓存造成冲突。

访问设置

这边也无需填写。

过滤器

这边一般只需要配置【过滤器】-【DNS拦截列表】,可以将默认的先删除,自行添加对应列表。

这边推荐AdBlock-Acceleration

这是整理出来的国际/中国加速过滤广告规则订阅列表:

根据自己喜好添加即可。

不建议全部添加,挑几个就可以了,而且各个列表里面也有大量重复的规则,AdGuardHome加载查询各个规则也要时间的。

了解更多的设置,可以访问:Adguard Home 中文指南,写的非常的详细!

设置DNS转发

图形界面设置

如果使用的图形界面安装,那么在图形界面设置重定向:使用53端口替换dnsmasq。

重定向53到AdGuardHome 也可以,原理都是一样的

非图形界面设置

在AdGuardHome的网络管理界面点击【设置指导】,查看监听地址:

然后转到 OpenWrt 的管理界面,【网络】-【DHCP/DNS】,在【DNS转发】后面填写上面的监听地址(:要改为#):

结束

至此,AdGuardHome的设置完成了,后续需要将整个网络的DNS服务给串联起来,到达所有网络的连接访问请求都经过SmartDNS,并由AdGuardHome进行处理。