type
status
date
slug
summary
tags
category
icon
password
URL
有几种方案
- 客户端→Dnsmasq(53)→Clash(7874)→ADG(5335)
- 客户端→Dnsmasq(53)→ADG(5335)→Clash(7874)
- 客户端→ADG(53)→Clash(7874)
方案思考
以下ADG指AdGuard Home,Clash指OpenClash,Dnsmasq是openwrt里自带的dns服务应用
一开始我用的是1,在clash里开启dns劫持,让Dnsmasq把请求转发到clash,然后在clash里设置自定义上游dns,把底下所有的上游dns勾选都去掉,新建一个FallBack从ADG里获取结果
这样配置成功了,但广告去除效果不好,经大佬的解答,如果要屏蔽广告的地址在Clash就已经决定走代理,就不会向上游ADG去请求,而且ADG里客户端只能看见127.0.0.1这一条,不够完美,所以这条方案放弃
随后我选择的是方案2,配置成功了,ADG里的客户端也都能正常显示了,但这时候个人感觉前面多了Dnsmasq似乎多余了,因为他只是转发了一下,所以衍生出了方案3,但方案3有个缺点,因为Dnsmasq和dhcp功能是在一起的,跳过了Dnsmasq则dhcp也不能用了,解决方案就是用ADG里的dhcp功能,去lan接口里设置忽略此接口(不在此接口提供dhcp服务),完美
方案3的配置(其他方案可网上自行搜索)
- 网络-接口-Lan,底下基本设置勾选 「忽略此接口」
- 网络-DHCP/DNS-高级设置,把dns服务器端口由53改为其他,比如5335,主要不要端口冲突,保存生效
- 服务-AdGuard Home,点更新核心,点启用,重定向选择「无」,点手动设置,按如下修改,改完保存&应用
- 服务-OpenClash-全局设置-dns设置,去掉本地dns劫持,勾选自定义上游dns服务器,然后在下面自定义dns里看够不够用,自己有更好的dns也可以加上去,勾选远程域名解析,应用配置
配置结束,点击AdGuard Home里AdGuardHome Web:3003,可以打开ADG的管理界面,点击「过滤器->dns封锁清单」,去网上找一些大神维护的ADG的去广告规则,加进去
去找个广告多的页面试试看,拦截数有没有加,正常情况下应该没问题了
最后要说一下,软路由里的广告过滤效果期望不要太高,毕竟他只是通过dns来禁用一些广告图片之类的加载,浏览器的话还是用去广告插件更好,手机里一般通过梯子软件里增加过滤来去除,他可以对response响应结果直接做修改,能做的自然也就多一些
- 作者:Wilson Zeng
- 链接:https://wilsonzeng.com/article/144b05e9-65f9-4b4f-9504-74724dfb65d3
- 声明:本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。