From 50b117b86ee39a599f28a2b06d0b1c002c47ab0c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E3=81=A1=E3=81=8B?= <88967758+chika0801@users.noreply.github.com> Date: Tue, 26 Dec 2023 15:16:13 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96=20freedom.md=20=E9=83=A8?= =?UTF-8?q?=E5=88=86=E6=8F=8F=E8=BF=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/config/outbounds/freedom.md | 95 +++++++++++++++++--------------- 1 file changed, 52 insertions(+), 43 deletions(-) diff --git a/docs/config/outbounds/freedom.md b/docs/config/outbounds/freedom.md index 543b9e5..d773c3f 100644 --- a/docs/config/outbounds/freedom.md +++ b/docs/config/outbounds/freedom.md @@ -12,7 +12,7 @@ Freedom 是一个出站协议,可以用来向任意网络发送(正常的) "fragment": { "packets": "tlshello", "length": "100-200", - "interval": "10-20" // ms + "interval": "10-20" // 单位ms } } ``` @@ -27,57 +27,24 @@ Xray-core v1.8.6 新增功能:
若不写此参数,或留空,默认值 `"AsIs"`。 -在目标地址为域名时, 配置相应的值, Freedom 的行为模式如下: +当目标地址为域名时,配置相应的值,Freedom 的行为模式如下: -- `"AsIs"`: Freedom 通过系统 DNS 服务器解析获取 IP, 向此域名发出连接。 -- `"UseIP"`、`"UseIPv4"` 和 `"UseIPv6"`: Xray 使用 [内置 DNS 服务器](../dns.md) 解析获取 IP, 向此域名发出连接。 +- `"AsIs"`:Freedom 使用系统 DNS 同时查询 A 和 AAAA 记录获取 IP,向此域名发出连接。IPv4 或 IPv6 优先级由系统控制。 -::: tip TIP 1 -当使用 `"UseIP"` 模式,并且 [出站连接配置](../outbound.md#outboundobject) 中指定了 `sendThrough` 时,Freedom 会根据 `sendThrough` 的值自动判断所需的 IP 类型,IPv4 或 IPv6。 -::: +| | AsIs | +| :--- | :---: | +| 系统有 IPv4 IPv6 | 通常 IPv6 优先 | +| 系统只有 IPv4 | IPv4 | +| 系统只有 IPv6 | IPv6 | -::: tip TIP 2 -当使用 `"UseIPv4"` 或 `"UseIPv6"` 模式时,Freedom 会只使用对应的 IPv4 或 IPv6 地址。当 `sendThrough` 指定了不匹配的本地地址时,将导致连接失败。 -::: +- `"UseIP"`、`"UseIPv6v4"`、`"UseIPv6"`、`"UseIPv4v6"`、`"UseIPv4"`:使用 Xray-core [内置 DNS 服务器](../dns.md) 查询获取 IP,向此域名发出连接。IPv4 或 IPv6 优先级详见下方表格。 -::: tip TIP 3 -`UseIP` 和 `ForceIP` 的区别是,前者解析失败了会走 AsIs,后者解析失败了会被 block。这样整个 `domainStrategy` 都更加灵活了。 -::: - -```jsonc - "dns": { - "servers": [ - "https://1.1.1.1/dns-query" - ], - "queryStrategy": "UseIP" // 默认值 UseIP - } -``` - -- UseIP 同时查询 A 和 AAAA 记录 -- UseIPv4 只查询 A 记录 -- UseIPv6 只查询 AAAA 记录 - -```jsonc - { - "protocol": "freedom", - "settings": { - "domainStrategy": "AsIs" // 默认值 AsIs - } - } -``` - -| | UseIP | UseIPv6v4 | UseIPv6 | UseIPv4v6 | UseIPv4 | +| 系统有 IPv4 IPv6 | UseIP | UseIPv6v4 | UseIPv6 | UseIPv4v6 | UseIPv4 | | :--- | :---: | :---: | :---: | :---: | :---: | | `"queryStrategy": "UseIP"` | **1** | **2** | IPv6 | **3** | IPv4 | | `"queryStrategy": "UseIPv4"` | IPv4 | **4** | **5** | **6** | IPv4 | | `"queryStrategy": "UseIPv6"` | IPv6 | **7** | IPv6 | **8** | **9** | -| | ForceIP | ForceIPv6v4 | ForceIPv6 | ForceIPv4v6 | ForceIPv4 | -| :--- | :---: | :---: | :---: | :---: | :---: | -| `"queryStrategy": "UseIP"` | **1** | **2** | IPv6 | **3** | IPv4 | -| `"queryStrategy": "UseIPv4"` | IPv4 | IPv4 | 冲突 | IPv4 | IPv4 | -| `"queryStrategy": "UseIPv6"` | IPv6 | IPv6 | IPv6 | IPv6 | 冲突 | - **1:** IPv4 IPv6 地址,随机优先
**2:** IPv4 IPv6 地址,IPv6 优先
**3:** IPv4 IPv6 地址,IPv4 优先
@@ -88,6 +55,48 @@ Xray-core v1.8.6 新增功能:
**8:** IPv4 IPv6 地址,IPv4 优先,IPv4 地址由系统 DNS 查询
**9:** IPv4 地址,IPv4 地址由系统 DNS 查询 +- `"ForceIP"`、`"ForceIPv6v4"`、`"ForceIPv6"`、`"ForceIPv4v6"`、`"ForceIPv4"`:使用 Xray-core [内置 DNS 服务器](../dns.md) 查询获取 IP,向此域名发出连接。IPv4 或 IPv6 优先级详见下方表格。 + +| 系统有 IPv4 IPv6 | ForceIP | ForceIPv6v4 | ForceIPv6 | ForceIPv4v6 | ForceIPv4 | +| :--- | :---: | :---: | :---: | :---: | :---: | +| `"queryStrategy": "UseIP"` | **1** | **2** | IPv6 | **3** | IPv4 | +| `"queryStrategy": "UseIPv4"` | IPv4 | IPv4 | 冲突 | IPv4 | IPv4 | +| `"queryStrategy": "UseIPv6"` | IPv6 | IPv6 | IPv6 | IPv6 | 冲突 | + +**1:** IPv4 IPv6 地址,随机优先
+**2:** IPv4 IPv6 地址,IPv6 优先
+**3:** IPv4 IPv6 地址,IPv4 优先 + +- 当使用 `"UseIP"` 系列值 或 `"ForceIP"` 系列值时,若没写 `"dns"` 配置,使用系统 DNS 同时查询 A 和 AAAA 记录获取 IP,向此域名发出连接。IPv4 或 IPv6 优先级详见下方表格。 + +| | UseIP | UseIPv6v4 | UseIPv6 | UseIPv4v6 | UseIPv4 | +| :--- | :---: | :---: | :---: | :---: | :---: | +| 系统有 IPv4 IPv6 | **1** | **2** | IPv6 | **3** | IPv4 | +| 系统只有 IPv4 | IPv4 | 冲突 | 冲突 | IPv4 | IPv4 | +| 系统只有 IPv6 | IPv6 | IPv6 | IPv6 | 冲突 | 冲突 | + +| | ForceIP | ForceIPv6v4 | ForceIPv6 | ForceIPv4v6 | ForceIPv4 | +| :--- | :---: | :---: | :---: | :---: | :---: | +| 系统有 IPv4 IPv6 | **1** | **2** | IPv6 | **3** | IPv4 | +| 系统只有 IPv4 | IPv4 | 冲突 | 冲突 | IPv4 | IPv4 | +| 系统只有 IPv6 | IPv6 | IPv6 | IPv6 | 冲突 | 冲突 | + +**1:** IPv4 IPv6 地址,随机优先
+**2:** IPv4 IPv6 地址,IPv6 优先
+**3:** IPv4 IPv6 地址,IPv4 优先 + +::: tip TIP 1 +当使用 `"UseIP"`、`"ForceIP"` 模式时,并且 [出站连接配置](../outbound.md#outboundobject) 中指定了 `sendThrough` 时,Freedom 会根据 `sendThrough` 的值自动判断所需的 IP 类型,IPv4 或 IPv6。 +::: + +::: tip TIP 2 +当使用 `"UseIPv4"`、`"UseIPv6"` 或 `"ForceIPv4"`、`"ForceIPv6"` 模式时,Freedom 会只使用对应的 IPv4 或 IPv6 地址。当 `sendThrough` 指定了不匹配的本地地址时,将导致连接失败。 +::: + +::: tip TIP 3 +`"UseIPv4"`、`"UseIPv6"` 和 `"ForceIPv4"`、`"ForceIPv6"` 的区别是,前者解析失败了会走 AsIs,后者解析失败了会被 block。这样整个 `domainStrategy` 都更加灵活了。 +::: + > `redirect`: address_port Freedom 会强制将所有数据发送到指定地址(而不是 inbound 指定的地址)。