日志
- 2023-09-24:新增Meta内核的测试和配置。新增使用默认外部端口号/密钥的风险提醒。
前言
经过《NAS系列 基于Clash内核的策略分流方案》和《NAS系列 基于多ADGuard Home实现DNS分流和个性化管理》的学习,我们大致知道了DNS分流的基本原理和特点。本文主要内容就是在OpenWrt里实操一下如何配置DNS。本文会默认你对OpenWrt相对熟悉;否则不要轻易使用本教程,因为分分钟可能导致断网 (ฅ´ω`ฅ)
测试环境
如果OpenWrt/OpenClash的版本相关太远,可能有些选项的名字和位置会和图示有所不同。
- OpenWrt: x86/64; OpenWrt 02.13.2023 by Kiddin’ / LuCI Master git-fa1c483
- OpenClash: TUN内核版本为
2023.03.04-5-g4a8cefb
; 客户端版本为v0.45.103-beta
备份配置
在进行可能崩溃和断网的高危操作时,最好先备份OpenWrt的现有配置,以免搞乱OpenWrt配置导致上不了网:
这里的备份是操作系统级别的,包括OpenWrt和它的插件的配置都会完全被备份。因此,如果你恢复备份,相当于将OpenWrt和它的插件的配置重置为之前备份的状态。
原生DNS
根据使用场景,我们将使用双ADGuard Home作为DNS服务器,因此需要将OpenWrt系统接管的DNS转发至Clash而不是Dnsmasq(后者是默认选项)。通过局域网IP+端口登陆OpenWrt GUI。
系统DNS设置都在网络——DHCP/DNS
中完成。我们先关闭dnsmasq的DNS重定向:
在示例Clash配置文件中,我们看到Clash监听DNS的默认端口是7874
,这与OpenClash客户端的选项是对应的:
因为后面我们需要Clash内核接管DNS请求,因此我们需要将系统DNS转发至路由器的7874
端口:
此外,我们还要进一步屏蔽系统DNS的某些关键设置。比如,忽略解析文件
以避免其与我们的自定义DNS服务器相冲突:
禁用系统DNS缓存
以避免域名-IP映射关系冲突:
其它选项默认或按需设置即可。这些系统DNS设置将为后面使用双ADGuard Home奠定基础。值得注意的是,由于我们还没有配置好OpenClash,此时可能会处于断网状态,但应该问题不大,完成后续的操作即可。
OpenClash设置
图片中会附有示例配置文件中的参数,以便更清晰地展示配置逻辑。
根据场景要求,我们需要使用Clash的Fake-IP TUN模式:
为了后续方便规避PT流量,我们需要使用防火墙转发本地DNS劫持:
以后,只要添加transmission等PT下载器的局域网IP到黑名单中即可:
接下来,我们要定义一下Clash内核的DNS行为,包括确认使用自定义上游DNS服务器
、设置fallback filter
和fake-ip-filter
:
添加自定义ADGuard Home服务器。默认还有其它DNS,千万不要打勾,不然双ADGuard的效果就无了:
最后,根据不良林大佬的建议,使用默认9090端口和密钥很容易导致订阅被窃取。为了安全起见,大家应该更改OpenClash外部访问的端口和登录密钥:
Meta内核
小结
关于OpenWrt的DNS设置就介绍到这里。有一部分是在系统配置里设置的;但主体部分是在OpenClash插件里完成的。关于OpenClash和ADGuard Home的配置介绍就到此为止吧,其它设置自己试着摸索一下,我就不再讲解更多细节了,都挺简单的 (ฅ´ω`ฅ)
---------------
完结,撒花!如果您点一下广告,可以养活苯苯😍😍😍
这个利用fallback和ADH分流DNS解析学到了! 之前没想到过这个思路,一直都是把Openclash作为ADH的上游。
我在《NAS系列 OpenWrt系列 基于多ADGuard Home实现DNS分流和个性化管理》中更加详细地讨论了多ADGuard Home的配合用法。欢迎指教喔!