OpenWrt安装AdGuardHome
简介
AdGuard Home是一款用于拦截广告和跟踪的网络范围软件。设置完成后,它将覆盖您的所有家庭设备,并且您不需要任何客户端软件。
它作为DNS服务器运行,将跟踪域重新路由到“黑洞”,从而阻止您的设备连接到这些服务器。它基于我们用于公共 AdGuard DNS 服务器的软件,并且两者都共享大量代码。
在OpenWrt上安装AdGuardHome可以分为两种方式:
安装
luci-app-adguardhome
图形化管理界面只安装AdGuardHome核心组件,无界面
安装
安装luci-app-adguardhome
图形化管理界面
该图形化管理界面为第三方支持,Github项目地址为:luci-app-adguardhome
访问 luci-app-adguardhome Release,下载安装包
在OpenWrt管理界面的【系统】-【软件包】,上传安装
刷新界面,在【服务】中可以看到AdGuardHome面板。
点击【更新核心版本】,会出现以下错误提示:
1 | start download |
意思就是文件/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进行处理。