昨天新更新的direct-nameserver研究了半天不知道怎么用,希望各位大佬不吝赐教 #1567
Replies: 6 comments 6 replies
-
|
域名解析时 direct-nameserver 和 nameserver/fallback 两条路径是平级的,如果配置了 direct-nameserver 那 nameserver/fallback 这条路径就无效了。 源码 executor ApplyConfig -> updateDNS: if r.DirectResolver.Invalid() {
// r.DirectResolver 对应配置文件的 direct-nameserver, 配置了就会走这部分逻辑
// 如果 `direct-nameserver-follow-policy: true` 则会引用 r.Resolver.policy (对应配置文件的 nameserver-policy)
resolver.DirectHostResolver = r.DirectResolver
} else {
// r.Resolver 对应就是 nameserver/fallback/nameserver-policy 这一堆, 配置文件不配置 direct-nameserver 就会走这部分逻辑
resolver.DirectHostResolver = r.Resolver
}dns resolver 的创建 dns.resolver |
Beta Was this translation helpful? Give feedback.
-
|
翻mihomo群聊大概是如下逻辑: direct-nameserver 用于 direct 出口域名解析的 DNS 服务器, 等于在 nameserver-policy 加了条路由规则 Rules 里为所有 Direct 的DNS请求规则.(路由规则有些单独不在 Rule-set 里的 Direct) direct-nameserver-follow-policy 为 true 就先查 nameserver policy 默认为不遵守,仅当 direct-nameserver 不为空时生效 然后再是 nameserver-policy >>> nameserver <===> fallback 的配置
以及 direct-nameserver-follow-policy 为 true 实际上等于二选一 !!
respect-rules 等于省掉了 nameserver-policy 配的 💩\ 花一样.
省流就是 direct-nameserver 用 ISP 的; nameserver 用海外的. 不要什么 nameserver-policy & fallback 那一坨. 对于域名匹配到 IP-CIDR规则后没有加 no-resolve IP规则会解析多次DNS.(理想情况是到 GeoIP: CN 才会开始解析) 使用 nameserver (海外的,可添加 ecs 参数. 若解析得到的 IP匹配 GeoIP: CN 的会用 direct-nameserver 二次解析:
解决了可直连的小众网站被解析到 海外CDN的问题. 以及众多的 DNS 检测网站并发走了 nameserver fallback
以及 fake-ip 还是 redir-host模式 如何匹配
|
Beta Was this translation helpful? Give feedback.
-
|
用 Nikki 在路由器内测试, 第一份 Config: 观察到 weibo 在 fake-ip filter - geostie:cn 内. redir-host 请求 name server 然后兜底回 ISP_DNS |
Beta Was this translation helpful? Give feedback.
-
|
第二份 Config: (增改简略) 观察到 某些域名 redir-host 请求 遵照 |
Beta Was this translation helpful? Give feedback.
-
|
第三份 Config: (增改简略) 观察到: weibo 在 fake-ip filter - geostie:cn 内. redir-host 请求 name server 然后兜底回 ISP_DNS 但为何拿到的是 fakeip [198.18.0.35] [198.18.0.60] & 在面板 flush Fake-IP 后试了两次均为如此..
|
Beta Was this translation helpful? Give feedback.
-
|
我刚开始尝试自己写配置文件 |
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
-
是这么个用法吗?
原来是按wiki的nspolicy非cn ns用cn
现在加了这么一功能
感觉ns继续用cn会乱套
所以这么改了一下
但感觉还是怪怪的
希望各位大佬不吝赐教
顺便再麻烦大佬重画下 https://wiki.metacubex.one/config/dns/diagram 的流程图吧
Beta Was this translation helpful? Give feedback.
All reactions