最近开始折腾MOSDNS+OpenClash+Adguard Home,从网上查到了很多配置教程,发现每种方案都会对各插件功能产生不同的影响,这也是网上会存在多种方案的原因,寻求最佳方案就有了折腾的意义。
首先介绍一下我运行了几年的方案(下图),这个方案不包含MosDNS,也就不能做到防止DNS泄露。但这个方案能在我的OpenWrt上运行多年的原因最大的优点就是兼顾OpenClash的分流和Adguard Home过滤的主要功能。
既然有OpenClash在Adguard Home上游的方案,就有Adguard Home在OpenClash上游的方案,但当初我没有采用这个方案就是因为这会影响Adguard Home对局域网内设备的识别,Adguard Home会将所有网络请求客户端都识别为OpenWrt软路由,Adguard Home也就失去了对特定设备的管控功能。
现在把MosDNS加进来(如下图),上述Adguard Home会将所有网络请求客户端都识别为OpenWrt软路由的情况依然是存在的。
现在我们只需把OpenClash调整到Adguard Home上游即可解决(如下图)。
同时还可以衍生出另一种方案(如下图),将MosDNS的远程DNS服务器设置为OpenClash的DNS监听端口127.0.0.1:7874。在OpenClash的DNS设置中勾选自定义上游 DNS 服务器,然后在NameServer和FallBack中添加国外DNS服务器。这种方案有一个很大的优点是在OpenClash分流访问中国内直连链接都将以解析后的IP形式出现,对于分流规则不是很完备的规则集非常友好。
这里有一点需要注意:MosDNS(我使用的是MosDNS v5.3.1)远程服务器如果在下拉三角中选择插件内置的DNS服务器默认的是tls协议,很有可能不能访问会超时报错。只需在自定义输入框中输入IP地址会默认更改为udp协议便可正常使用。