Skip to content

Commit 794b0cb

Browse files
authored
Update domainStrategy
1 parent f22cac3 commit 794b0cb

File tree

2 files changed

+7
-18
lines changed

2 files changed

+7
-18
lines changed

docs/config/outbounds/freedom.md

Lines changed: 5 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -31,18 +31,11 @@ Freedom 是一个出站协议,可以用来向任意网络发送(正常的)
3131
3232
默认值 `"AsIs"`
3333

34-
当目标地址为域名时,配置相应的值,Freedom 的行为模式如下:
35-
36-
- 当使用 `"AsIs"` 时,Xray 将直接使用 golang 默认的连接优先级。出于一些原因,UDP连接如果使用域名会无视系统设置优先IPv4。
37-
- 当填写其他值时,将使用 Xray-core [内置 DNS 服务器](../dns.md) 服务器进行解析。若不存在DNSObject,则使用系统DNS。若有多个符合条件的IP地址时,核心会随机选择一个IP作为目标IP。
38-
- `"IPv4"` 代表尝试仅使用 IPv4 进行连接,`"IPv4v6"` 代表尝试使用 IPv4 或 IPv6 连接,但对于双栈域名,使用 IPv4。(v4v6调换后同理,不再赘述)
39-
- 当在内置DNS设置了 `"queryStrategy"` 后,实际行为将会与这个选项取并,只有都被包含的IP类型才会被解析,如 `"queryStrategy": "UseIPv4"` `"domainStrategy": "UseIP"`,实际上等同于 `"domainStrategy": "UseIPv4"`
40-
- 当使用 `"Use"` 开头的选项时,若解析结果不符合要求(如,域名只有IPv4解析结果但使用了UseIPv6),则会回落回AsIs。
41-
- 当使用 `"Force"` 开头的选项时,若解析结果不符合要求,则该连接会无法建立。
42-
43-
::: tip TIP 1
44-
当使用 `"UseIP"``"ForceIP"` 模式时,并且 [出站连接配置](../outbound.md#outboundobject) 中指定了 `sendThrough` 时,Freedom 会根据 `sendThrough` 的值自动判断所需的 IP 类型,IPv4 或 IPv6。若手动指定了单种IP类型(如UseIPv4),但与 `sendThrough` 指定的本地地址不匹配,将会导致连接失败。
45-
:::
34+
所有参数含义均约等于 [sockopt](../transport.md#sockoptobject) 中的 domainStrategy. Freedom 的 domainStrategy 只是出于兼容性而保留,不要同时设置两个。
35+
36+
在这里使用 AsIs 才可以把域名交给后面的 sockopt 模块,如果在这里设置非 AsIs 导致域名被解析为具体 IP 会使后续的 sockopt.domainStrategy 以及其相关的 happyEyeballs 失效。(如果不调整这两个设置则没有影响)
37+
38+
Freedom 在发送 UDP 时出于一些原因无视两个 domainStrategy 强制偏好 IPv4.
4639

4740
> `redirect`: address_port
4841

docs/config/transport.md

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -696,17 +696,13 @@ OCSP 装订更新间隔,单位为秒,默认值为 0. 任意非 0 值将启
696696
> "UseIP" | "UseIPv6v4" | "UseIPv6" | "UseIPv4v6" | "UseIPv4"<br>
697697
> "ForceIP" | "ForceIPv6v4" | "ForceIPv6" | "ForceIPv4v6" | "ForceIPv4"
698698
699-
在之前的版本中,当 Xray 尝试使用域名建立系统连接时,域名的解析由系统完成,不受 Xray
700-
控制。这导致了在 [非标准 Linux 环境中无法解析域名](https://github.com/v2ray/v2ray-core/issues/1909) 等问题。为此,Xray 1.3.1 为 Sockopt 引入了 Freedom
701-
中的 domainStrategy,解决了此问题。
702-
703699
默认值 `"AsIs"`
704700

705701
当目标地址为域名时,配置相应的值,Outbound 连接远端服务器的行为模式如下:
706702

707-
- 当使用 `"AsIs"`Xray 将直接使用 go 自带的 Dial 发起连接,优先级固定为 RFC6724 的默认值(不会遵守 gai.conf 等配置) (人话:IPv6 优先)
703+
- 当使用 `"AsIs"`, Xray 不对域名进行特殊处理,到最后 Xray 将直接使用 go 自带的 Dial 发起连接,优先级固定为 RFC6724 的默认值(不会遵守 gai.conf 等配置) 通常来说为 IPv6 优先。
708704
- 当填写其他值时,将使用 Xray-core [内置 DNS 服务器](dns.md) 服务器进行解析。若不存在DNSObject,则使用系统DNS。若有多个符合条件的IP地址时,核心会随机选择一个IP作为目标IP。
709-
- `"IPv4"` 代表尝试仅使用IPv4进行连接`"IPv4v6"` 代表尝试使用IPv4或IPv6连接,但对于双栈域名,使用IPv4。(v4v6调换后同理,不再赘述)
705+
- `"IPv4"` 代表尝试仅使用 IPv4 进行连接`"IPv4v6"` 代表尝试使用 IPv4 或 IPv6 连接,但对于双栈域名,使用 IPv4。(v4v6 调换后同理,不再赘述)
710706
- 当在内置DNS设置了 `"queryStrategy"` 后,实际行为将会与这个选项取并,只有都被包含的IP类型才会被解析,如 `"queryStrategy": "UseIPv4"` `"domainStrategy": "UseIP"`,实际上等同于 `"domainStrategy": "UseIPv4"`
711707
- 当使用 `"Use"` 开头的选项时,若解析结果不符合要求(如,域名只有IPv4解析结果但使用了UseIPv6),则会回落回AsIs。
712708
- 当使用 `"Force"` 开头的选项时,若解析结果不符合要求,则该连接会无法建立。

0 commit comments

Comments
 (0)