From ec8907c9123727baf0c412e97109bb2fc7629799 Mon Sep 17 00:00:00 2001 From: Meow <197331664+Meo597@users.noreply.github.com> Date: Mon, 6 Oct 2025 01:36:17 +0800 Subject: [PATCH] CN Route: Further explanation of domainStrategy's resolution behavior (#747) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * CN Route: Further explanation of domainStrategy's resolution behavior https://github.com/XTLS/Xray-core/blob/3edfb0e33557330ac721862adb2e4be89ee7412a/app/router/router.go#L184-214 * Update routing.md * Update routing.md * Update routing.md * Update routing.md --------- Co-authored-by: 风扇滑翔翼 --- docs/config/routing.md | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/docs/config/routing.md b/docs/config/routing.md index 99cf3010..75d9c53d 100644 --- a/docs/config/routing.md +++ b/docs/config/routing.md @@ -24,11 +24,17 @@ 域名解析策略,根据不同的设置使用不同的策略。 -- `"AsIs"`:只使用域名进行路由选择。默认值。 -- `"IPIfNonMatch"`:当域名没有匹配任何规则时,将域名解析成 IP(A 记录或 AAAA 记录)再次进行匹配; - - 当一个域名有多个 A 记录时,会尝试匹配所有的 A 记录,直到其中一个与某个规则匹配为止; - - 解析后的 IP 仅在路由选择时起作用,转发的数据包中依然使用原始域名; -- `"IPOnDemand"`:当匹配时碰到任何基于 IP 的规则,将域名立即解析为 IP 进行匹配; +- `"AsIs"`:不进行额外操作,使用目标地址里的域名或者 sniff 到的域名。默认值。 +- `"IPIfNonMatch"`:一整轮匹配结束后,当没有命中任何规则时,将域名解析成 IP 再次进行二次匹配; +- `"IPOnDemand"`:在开始进行匹配前,直接先将域名解析为 IP 进行匹配; + +解析将同时包含 IPv4 与 IPv6(你可以在内置 DNS 的 `queryStrategy` 进行二次限制) 域名解析出多条 IP 时每条规则将依次尝试全部 IP 然后再匹配下一条路由(如果该条未命中)。 + +当开启 sniff + routeOnly 使路由系统可以同时看见 IP 和域名时,如果发生上述的解析,路由系统只能看到由域名解析出的 IP 而无法看见原始目标 IP, 除非解析失败。 + +当存在两个域名时(目标域名 + sniff 结果) 无论是用于解析还是用于域名匹配,sniff 结果的优先级总是更高。 + +无论解析与否,路由系统不会影响真正目标地址,请求的目标仍然是原始目标。 > `rules`: \[[RuleObject](#ruleobject)\]