可以看看mosdns,只需简单几步便可同时搞定国内外分流解析加速和广告过滤
然后再测试开启之后的得分,或者测试 SSRP 和 Passwall 自带广告屏蔽的得分.
至于对比结果,嘿嘿嘿,其实没几分的差距.
其实真要去广告还是得看浏览器插件,博主自己使用效果最好的应该是 uBlock Origin.
但毕竟只能在浏览器上使用,所以软路由上的广告屏蔽还是有其存在意义的,比如部分APP的启动广告!
注意事项
- 保证有足够的空间拉取镜像
- 路由器需要开启大陆白名单代理拉取镜像,走代理拉取镜像速度更快
- 镜像拉取成功之后关闭 SSRP/Passwall, 防止创建第二个容器时出现端口被占用的情况
- 如果在使用F大的固件中出现网络崩溃的情况,可以尝试去这里下载另一位网友使用 F 大内核和官方 OpenWrt 打包的固件
如果使用 DOT 请确认 853 端口是否代理,SSRP 代理的常用端口中不包括 853现在有了- WAN/LAN 的
自定义DNS
留空
上面推荐的固件只支持 Amlogic S9xxx 系列的 ARM 盒子!
默认 IP: 192.168.1.1
默认账号: root
默认密码: password
安装命令: openwrt-install
更新命令: openwrt-update
拉取镜像
docker pull adguard/adguardhome:latest
这条命令会拉取最新的稳定版镜像.
之后需要为 AdGuardHome 的数据配置持久化创建文件夹,可以去系统挂载点查看,选一个最大的挂载点创建文件夹即可.
不要在 /tmp 目录下创建,这个是临时目录重启后会删除!
因为是双 AdGuardHome, 所以需要两个工作目录和配置文件夹.
mkdir /mnt/mmcblk2p4/AdGuardHome F大固件已经默认有这个文件夹了
mkdir /mnt/mmcblk2p4/AdGuardHome/workdir1
mkdir /mnt/mmcblk2p4/AdGuardHome/workdir2
mkdir /mnt/mmcblk2p4/AdGuardHome/confdir1
mkdir /mnt/mmcblk2p4/AdGuardHome/confdir2
容器创建
国内AdGuardHome
docker run --name adguardhome1 \
-v /mnt/mmcblk2p4/AdGuardHome/workdir1:/opt/adguardhome/work \
-v /mnt/mmcblk2p4/AdGuardHome/confdir1:/opt/adguardhome/conf \
--net=host \
--restart=always \
-d adguard/adguardhome:latest
AdGuardHome 的默认网页管理入口是 3000,如果不修改,创建第二个容器会出现问题.
国外AdGuardHome
进入初始化配置时网页管理页面端口改成 3002 即可.
docker run --name adguardhome2 \
-v /mnt/mmcblk2p4/AdGuardHome/workdir2:/opt/adguardhome/work \
-v /mnt/mmcblk2p4/AdGuardHome/confdir2:/opt/adguardhome/conf \
--net=host \
--restart=always \
-d adguard/adguardhome:latest
- 如果使用 SSRP/HelloWorld,那么 DNS 服务器端口填写 5335
- 如果使用 Passwall,那么 DNS 服务器端口填写 7913
配置与使用
当两个容器都创建成功,并且可以正常进入,就可以开始配置.
上游 DNS 服务器一般填写运营商DNS和公共DNS即可,如果怕运营商劫持或者DNS污染,可以使用公共的DoH/DoT.(现在大部分地区的主流运营商都很少搞这些花里胡哨的,当然如果国外网站不算的话)
如果上游 DNS 填写了 DoT/DoH 那就必须填写 Bootstrap DNS 服务器.
tls://dot.pub
AdGuardHome 配置完成后再对 OpenWrt 进行配置
网络
➡DHCP/DNS
➡常规设置
➡DNS转发
填写127.0.0.1#5334
网络
➡DHCP/DNS
➡HOSTS和解析文件
➡ 勾选忽略解析文件
网络
➡DHCP/DNS
➡高级设置
➡DNS查询缓存的大小
填写0
(使用 AdGuradHome 的缓存,这一步可有可无)
下面是一些针对 AdGuardHome 的额外修改建议,可以改善日常使用体验,当然不改也不会影响正常使用.以下步骤皆在AdGuardHome内进行设置
➡常规设置
➡日志配置
➡ 24小时 / 7天设置
➡DNS设置
➡上游 DNS 服务器
➡并行请求
设置
➡DNS设置
➡速度限制
建议100
(如无特殊需求建议勾选禁用IPv6
)设置
➡DNS设置
➡DNS缓存配置
➡ 最小TTL值 1800 / 最大TTL值 3600
默认储存90天的日志,会占用过多的空间.
不限制 DNS 查询,有时候会出现崩溃,可以稍微改大点,每个客户端限制每秒查 100 次.
但是这里是作为DNS上游, 所以这里的限制每个客户端DNS查询次数是指OpenWrt的查询(局域网内终端指向OpenWrt的设备也包括在内)
默认的缓存大小是 4MB,不建议修改,4MB 已经能够存储N多记录了.
TTL 值是秒,如果设置的太久,有些网站更换 IP 后依旧会连接原来的 IP 地址,出现无法访问的情况。
(其实设置为一天也行, 最大TTL值填86400)
搭配SSRP
这里和之前SmartDNS的搭配类似.
- 前往访问控制中,将下方 IP 和域名分别加入直连和代理列表
- DNS 解析方式选择使用本机端口为5335的 DNS 服务
- 最后保存 & 应用即可
以及在 Bootstrap DNS 服务器中填写的服务器
如果你是完全按照本教程来可以填写以下 IP
223.5.5.5
119.29.29.29
运营商 DNS
搭配Passwall
这里的操作也差不多
- 把对应域名和 IP 加入 passwall 的直连/代理名单管理 (passwall 自带的列表已经包含很多 IP 和域名,只需要添加一部分)
- 在 DNS 中过滤模式选择
自定义DNS(UDP)
,自定义DNS
填写127.0.0.1#7913
- 最后还是那一步 保存 & 应用
dot.pub
广告屏蔽规则推荐
广告屏蔽规则推荐使用 neodevhost
它整合了 AdGuard、Anti-ad 等规则,具体可看该项目的 Github仓库
一些疑惑
为什么推荐使用并行请求
负载均衡和并行请求,大家看 AdGuardHome 管理页面上面的说明应该很好理解。
而最快的 IP 地址模式是之前有人在 AdGuardHome 的 github 上提的一个 issues,参考的是 smartdns,对所有 DNS 服务器进行查询,返回 IP 后测速,选择最快的 IP,但是实际使用体验并没有想象中那么舒服。
(不过现在AdGuardHome社区已经开始做这个了,BETA测试版已经有这个功能了)
原因可能在于 DNS 查询后仅仅是返回一个最快 IP,并没有后续处理,在 DNS 记录的 TTL 值过期后下一次需要重新查询。
但 smartdns 不同,smartdns 有域名预先获取功能和过期缓存服务功能,一般只选择一个开启即可.
官方文档对这两项功能有详细的说明,如下图:
AdGuardHome 容器更换端口
在容器创建之前我们设置了 ADG 的配置和工作持久化目录.
如果在初始化配置 ADH 之后,想更换使用端口,可以在对应容器的配置目录下对 AdGuardHome.yaml
进行修改.
(confdir1 是国内 ADH 容器,confdir2 是国外 ADH 容器)
bind_port: 3002
是网页管理界面端口.
port: 7913
是 DNS 监听端口.
修改后请务必重启 AdGuardHome 容器.
# 容器ID只需要输入前几位数能够区分其他容器就可以
docker restart 容器名/容器ID
查看当前运行的容器,并列出容器相关信息.
docker ps
要发表评论,您必须先登录。