DNS: Correct Host behavior

This commit is contained in:
Fangliding
2026-08-31 15:35:40 +08:00
parent 090e425873
commit 5d4ddd2ac3
3 changed files with 6 additions and 3 deletions
+2 -1
View File
@@ -95,9 +95,10 @@ DNS 服务器默认进入路由系统进行匹配,除非其包含 `+local` 在
映射的目标可以是域名,当核心完成匹配,并且其中包含域名时行为会略有不同:
- 其中同时包含 IP 和域名时,删去其中的域名,只返回 IP 地址。
- 其中包含数个域名,存在歧义,查询失败,视为未命中,进入 DNS 查询阶段。
- 其中包含数个域名,存在歧义,视为查询失败。
- 其中有且仅有一个域名时,这个域名将重新进入 Hosts 模块递归解析,重复上面的步骤,最大递归深度为 5。
- 上一条递归查询未查询到 IP,并且最终查询结果有且仅有一个域名,该域名替代原始请求域名,进入 DNS 查询阶段。
- 特别地,如果“域名”是井号后加数字的形式(如 `#3`),任何被该条目匹配到的请求,请求会立即失败。如果请求来自 DNS 出站,核心会返回空的响应以及该数字编号对应的 rcode 以拒绝请求。
其匹配格式(`domain:` `full:` 等等)同常用的 [路由系统](./routing.md#ruleobject) 中的 domain. 不同的是无前缀时此处默认使用 `full:` 前缀(类似常见的 hosts 文件写法)