mirror of
https://github.com/XTLS/Xray-docs-next.git
synced 2026-10-07 14:28:03 +03:00
Refine domainStrategy
This commit is contained in:
+14
-5
@@ -4,20 +4,29 @@
|
||||
|
||||
Xray 内置的 DNS 模块,主要有三大用途:
|
||||
|
||||
- 在路由阶段,解析域名为 IP, 并且根据域名解析得到的 IP 进行规则匹配以分流。<br>
|
||||
是否解析域名用以分流,与路由模块中 `routing.domainStrategy` 的值有关,只有在设置以下两种值时,才会使用内置 DNS 服务器进行 DNS 查询:
|
||||
- "IPIfNonMatch", 请求目标是域名且不附带 IP 时,先用其它条件进行一轮匹配,若本轮没有命中任何一条路由规则,则对这个域名使用内置 DNS 服务器进行 DNS 查询,并且使用查询返回的 IP 地址再重新进行一轮路由匹配。
|
||||
- "IPOnDemand", 请求目标是域名且不附带 IP 时,当路由匹配时碰到任何基于 IP 的规则,将域名立即解析为 IP 进行匹配。
|
||||
- 在路由阶段,解析域名为 IP, 并且根据域名解析得到的 IP 进行规则匹配以分流。
|
||||
::: details 详细说明
|
||||
是否解析域名用以 IP 分流,取决于 `routing.domainStrategy` 的值,只有在设置以下两种值时,才有可能使用内置 DNS 服务器进行 DNS 查询:
|
||||
- `"IPIfNonMatch"`:第一轮路由匹配未命中任何规则时,只要存在包含 `ip` 条件的规则且目标包含域名,就会使用内置 DNS 解析域名。
|
||||
- `"IPOnDemand"`:只要目标包含域名,并遇到包含 `ip` 条件的规则,就会使用内置 DNS 解析域名。
|
||||
|
||||
- 在出站阶段,解析目标域名,用于连接或发送给远端代理服务器:
|
||||
:::
|
||||
|
||||
- 在出站阶段,解析目标域名,用于连接或发送给远端代理服务器。
|
||||
::: details 详细说明
|
||||
- 如在 VLESS 出站中,将 `targetStrategy` 设置为 `UseIP`,会先通过本地的内置 DNS 模块解析被代理请求的目标域名,再将解析得到的 IP 发给远端代理服务器。
|
||||
- 如在 VLESS 出站中,将 `sockopt.domainStrategy` 设置为 `UseIP`,会通过内置 DNS 模块解析 VLESS 服务器的域名,再连接解析得到的 IP。
|
||||
- 如在 Freedom 出站中,将 `sockopt.domainStrategy` 设置为 `UseIP`,会通过内置 DNS 模块解析请求的目标域名,再连接解析得到的 IP。
|
||||
- 如在 Wireguard 出站中,协议不允许传递域名作为目标,可选用内置 DNS 模块解析为 IP。
|
||||
|
||||
:::
|
||||
|
||||
- TUN/透明代理时通过路由和 DNS 出站组合,以劫持 DNS 流量到此模块;或利用 [Tunnel](./inbounds/tunnel.md) 直接对外暴露 53 端口充当递归 DNS 服务器。
|
||||
::: details 详细说明
|
||||
- 只支持最基本的 IP 查询(A 和 AAAA 记录),CNAME 记录将会重复查询直至返回 A/AAAA 记录为止。其它查询不会进入内置 DNS 服务器,而是根据你在出站中的配置可以丢弃或透传给其它服务器。
|
||||
|
||||
:::
|
||||
|
||||
## DNS 处理流程
|
||||
|
||||
域名将先执行 Hosts 映射检查(详见 `hosts` 字段),若没有查出需要的 IP,则继续使用 DNS 服务器进行查询。
|
||||
|
||||
Reference in New Issue
Block a user