iKuai软路由搭建AdGuardHome
介绍
AdGuard Home是一款全网广告拦截与反跟踪软件,AdGuard Home项目是著名广告拦截器提供商AdGuard开源的一个DNS Server版本。AdGuard Home可以将广告与追踪相关的域名屏蔽,同时你不再需要安装任何客户端软件。AdGuard Home的工作原理是在DNS的域名解析过程里拦截网页上的广告。
简单来说 AdGuard Home 是一个支持广告过滤和家长控制的开源公共DNS 服务,如同Google的公共DNS服务 8.8.8.8。AdGuard Home同时也支持DNS over TLS和DNS over HTTPS。
利用ikuai软路由搭建AdGuard Home.来更有效的防止 DNS 污染以及去广告
准备
部署我们需要参考adguard的官方 dockerhub
安装
1,首先进行爱快云绑定,安装docker
2,进行ikuai后台——系统设置——文件管理
新建文件夹adguardhome,再在其里面新建work,conf两个文件夹,同时查看记住所以路径
3,进入高级应用——插件管理——docker
接口管理
镜像管理——添加
容器列表——添加
Linux系统直接安装
安装AdGuard Home
wget https://static.adguard.com/adguardhome/release/AdGuardHome_linux_amd64.tar.gz
tar xvf AdGuardHome_linux_amd64.tar.gz
cd AdGuardHome
sudo ./AdGuardHome -s install
./AdGuardHome -s status
安装完成后可以在浏览器中输入以下内容,在端口3000(防火墙需要开通对应的端口)上访问AdGuard Home Web界面 http://xxxx:3000/,将xxxx替换为服务器的公网IP地址。
控制服务的命令
./AdGuardHome -s uninstall#卸载AdGuard Home服务。
./AdGuardHome -s start #启动服务。
./AdGuardHome -s stop #停止服务。
./AdGuardHome -s restart #重新启动服务。
./AdGuardHome -s status #显示当前的服务状态。
adguardhome设置
上游 DNS 服务器
AdGuard 文档中给出了一些知名的 DNS 服务器供选择。
根据所在网络环境的不同推荐以下两组支持 ECS 功能的 DNS 服务器。如果有科学魔法爱国上网需求,你应该部署两个 AdGuard Home ,通过 DNS 分流才能达到较为理想的防污染和去广告效果。
-
中国大陆网络环境推荐选择腾讯 (DNSPod) 和阿里云的公共 DNS 。使用它们你会惊奇的发现偶尔某些不存在的网站都是能正常解析的,只不过解析的结果并不是离你的代理服务器最近的 IP ,所以效果并不理想,而且非常不稳定。
TIPS: 中国大陆不推荐使用任何海外的 DNS ,因为延迟很高且都受到了不同程度的干扰,可用性不高,强行设置只会得到减速效果或者报错。
tls://dns.pub https://dns.pub/dns-query tls://dns.alidns.com https://dns.alidns.com/dns-query
-
国际网络环境,比如海外的 VPS 或者给科学魔法爱国上网软件做 DNS ,则推荐使用 Google 和 Quad9 的公共 DNS。给科学魔法爱国上网软件使用的前提是它们必须在魔法名单中。
tls://dns.google https://dns.google/dns-query tls://dns11.quad9.net https://dns11.quad9.net/dns-query
上游 DNS 服务器输入框下面有几个单选项,字面理解应该是解析策略、模式之类的选项,官方暂时没有给出详细介绍,所以博主根据字面含义和自身实际体验总结如下:
- 负载均衡:使用加权随机算法来选择最快的服务器。用到了算法,这就很玄学了。实际其实就是随机选择一个上游 DNS 服务器中的一个进行解析请求,哪个延迟低就更偏向于用哪一个。
- 并行请求:同时请求所有上游 DNS 服务器,取最快给出的响应结果,所以解析速度很快。在上游 DNS 服务器设置合理的情况下属于万金油方案,解析速度和访问速度都很快。所以也非常适合上游 DNS 服务器连接延迟大和不稳定的情况,就比如科学魔法爱国上网使用场景。
- 最快的 IP 地址:同时请求所有上游 DNS 服务器,在所有响应结果中选出延迟最低且可用的 IP。因为要等待所有上游 DNS 服务器响应结果,而且还要测试 IP 延迟及可用性,所以解析速度会很慢。只适合上游 DNS 服务器延迟特别低且网络非常稳定的场景,否则实际使用中可能会遇到首次打开网页非常慢,甚至可能打不开,要多刷新几次。再者低延迟 IP 不一定速度就快,还要看实际负载情况,所以这个方案的实际可用性是最差的。
Bootstrap DNS 服务器
Bootstrap DNS 服务器(引导 DNS 服务器)的作用只是解析上游 DoT/DoH 技术 DNS 服务器的域名,所以这里需要填写使用 UDP 协议的传统 DNS 服务器 IP 地址。
同样的这里根据网络环境的不同推荐两组:
-
中国大陆
119.29.29.29 119.28.28.28 223.5.5.5 223.6.6.6
-
国际
8.8.8.8 8.8.4.4 9.9.9.11 149.112.112.11
设置完点击测试上游服务器,没有问题点保存即可。
TIPS: 这里也可以留空,使用后面将要提到的 DNS 重写功能把 DoT/DoH DNS 服务器的域名直接指向它的 IP 是一种更优雅的使用方式。
DNS 服务设定
- 速度限制:
0
- 使用 EDNS :前面提及的上游 DNS 服务器都是支持 EDNS (ECS) 的,它有助于获取到更合适的 CDN 节点,建议勾选。
- 使用 DNSSEC : 用于效验 DNS 记录的签名,防止 DNS 缓存被投毒,建议勾选。勾选后会在日志页面请求列显示小绿锁图标。
- 禁用 IPv6 :丢弃 IPv6 的 DNS 查询。在本地网络和网站都支持 IPv6 会优先使用 IPv6 去访问网站,但目前 IPv6 的建设还处于初级阶段,大多数地区的 IPv6 网络体验都一般。还有一些代理软件对 IPv6 支持不佳,开启后可能会影响国际互联网的访问。如果对此没有特殊需求,那么直勾选即可,这样既不影响 BT 软件连接 IPv6 网络,又可以优先使用 IPv4 来上网。如果只有 IPv4 ,那么是否勾选没有区别。
DNS 缓存配置
先简单科普一下 TTL ,它是英语 Time To Live 的简称,中文翻译为 “存活时间”。放在 DNS 解析中意为一条域名解析记录在 DNS 服务器中的存留时间,单位是秒。
正常情况下 TTL 默认 0
即可,即从上游 DNS 服务器获取 TTL 值。如果你所部署的网络环境到上游 DNS 服务器的延迟比较高,那么可以适当增加 TTL 值,让缓存更持久,短时间内请求同样域名的解析会直接从缓存中读取,实现秒解析。不过 TTL 值不宜过大,不然会导致记录不能及时更新,结果是网站无法正常打开。据博主观察目前多数域名的 TTL 值普遍在 300 以内,所以给出以下设置参考值:
- 覆盖最小 TTL 值:
600
- 覆盖最大 TTL 值:
3600
DNS 封锁清单
这里是人民群众喜闻乐见的去广告环节。
使用官方默认的 AdGuard DNS filter 规则的效果对于中国大陆的网络而言属于聊胜于无,所以需要添加一些其它的规则。然而规则并不是越多越好,多了会影解析速度,真正需要的是高质量。博主个人比较推荐 anti-AD 和 halflife 这两个规则。
评论区