优化 freedom.md 部分描述

This commit is contained in:
ちか 2023-12-26 15:16:13 +08:00 committed by GitHub
parent f224f0334c
commit 50b117b86e
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -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 新增功能:<br>
若不写此参数,或留空,默认值 `"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 地址,随机优先<br>
**2** IPv4 IPv6 地址IPv6 优先<br>
**3** IPv4 IPv6 地址IPv4 优先<br>
@ -88,6 +55,48 @@ Xray-core v1.8.6 新增功能:<br>
**8** IPv4 IPv6 地址IPv4 优先IPv4 地址由系统 DNS 查询<br>
**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 地址,随机优先<br>
**2** IPv4 IPv6 地址IPv6 优先<br>
**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 地址,随机优先<br>
**2** IPv4 IPv6 地址IPv6 优先<br>
**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 指定的地址)。