对照 v1.8.6 版本,修订了一些内容 (#442)

* 修订 wireguard.md

* 修订 freedom.md

* 修订 transport.md

* 修订 dns.md

* 修订 h2.md
pull/443/head
ちか 11 months ago committed by GitHub
parent b270b7fc2b
commit e6df59f62a
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -57,7 +57,7 @@ Xray 内置的 DNS 模块,主要有两大用途:
"clientIP": "1.2.3.4" "clientIP": "1.2.3.4"
}, },
{ {
"address": "https://1.1.1.1/dns-query", "address": "https://8.8.8.8/dns-query",
"domains": [ "domains": [
"geosite:netflix" "geosite:netflix"
], ],
@ -146,21 +146,21 @@ Xray 内置的 DNS 模块,主要有两大用途:
> `queryStrategy`: "UseIP" | "UseIPv4" | "UseIPv6" > `queryStrategy`: "UseIP" | "UseIPv4" | "UseIPv6"
`UseIPv4` 只查询 A 记录;`UseIPv6` 只查询 AAAA 记录。默认值为 `UseIP`,即查询 A 和 AAAA 记录。 默认值 `UseIP` 同时查询 A 和 AAAA 记录。`UseIPv4` 只查询 A 记录;`UseIPv6` 只查询 AAAA 记录。
Xray-core v1.8.6 新增功能:`queryStrategy` 可以在每一项 `DNS` 服务器中分别设置。 Xray-core v1.8.6 新增功能:`queryStrategy` 可以在每一项 `DNS` 服务器中分别设置。
```jsonc ```json
"dns": { "dns": {
"servers": [ "servers": [
"https://1.1.1.1/dns-query", "https://1.1.1.1/dns-query",
{ {
"address": "https://1.1.1.1/dns-query", "address": "https://8.8.8.8/dns-query",
"domains": [ "domains": [
"geosite:netflix" "geosite:netflix"
], ],
"skipFallback": true, "skipFallback": true,
"queryStrategy": "UseIPv4" // geosite:netflix 的域名使用 "UseIPv4" "queryStrategy": "UseIPv4" // netflix 的域名查询 A 记录
}, },
{ {
"address": "https://1.1.1.1/dns-query", "address": "https://1.1.1.1/dns-query",
@ -168,17 +168,28 @@ Xray-core v1.8.6 新增功能:`queryStrategy` 可以在每一项 `DNS` 服务
"geosite:openai" "geosite:openai"
], ],
"skipFallback": true, "skipFallback": true,
"queryStrategy": "UseIPv6" // geosite:openai 的域名使用 "UseIPv6" "queryStrategy": "UseIPv6" // openai 的域名查询 AAAA 记录
} }
], ],
"queryStrategy": "UseIP" // 全局使用 "UseIP" "queryStrategy": "UseIP" // 全局同时查询 A 和 AAAA 记录
} }
``` ```
**注意:**<br> ::: tip TIP 1
当子项中的 `"queryStrategy"` 值与全局 `"queryStrategy"` 值冲突时,子项的查询将空响应。 全局 `"queryStrategy"` 值优先,当子项中的 `"queryStrategy"` 值与全局 `"queryStrategy"` 值冲突时,子项的查询将空响应。
:::
```jsonc ::: tip TIP 2
当子项中不写 `"queryStrategy"` 参数时,使用全局 `"queryStrategy"` 参数值。与 Xray-core v1.8.6 以前版本行为相同。
:::
例如:<br>
全局 `"queryStrategy": "UseIPv6"` 与 子项 `"queryStrategy": "UseIPv4"` 冲突。<br>
全局 `"queryStrategy": "UseIPv4"` 与 子项 `"queryStrategy": "UseIPv6"` 冲突。<br>
全局 `"queryStrategy": "UseIP"` 与 子项 `"queryStrategy": "UseIPv6"` 不冲突。<br>
全局 `"queryStrategy": "UseIP"` 与 子项 `"queryStrategy": "UseIPv4"` 不冲突。
```json
"dns": { "dns": {
"servers": [ "servers": [
"https://1.1.1.1/dns-query", "https://1.1.1.1/dns-query",
@ -188,14 +199,14 @@ Xray-core v1.8.6 新增功能:`queryStrategy` 可以在每一项 `DNS` 服务
"geosite:netflix" "geosite:netflix"
], ],
"skipFallback": true, "skipFallback": true,
"queryStrategy": "UseIPv6" // "UseIPv6" 与 "UseIPv4" 冲突 "queryStrategy": "UseIPv6" // 全局 "UseIPv4" 与 子项 "UseIPv6" 冲突
} }
], ],
"queryStrategy": "UseIPv4" "queryStrategy": "UseIPv4"
} }
``` ```
子项 geosite:netflix 的查询由于 `"queryStrategy"` 值冲突,得到空响应。geosite:netflix 的域名由全局 DNS `https://1.1.1.1/dns-query` 查询,得到 A 记录。 子项 netflix 的域名查询由于 `"queryStrategy"` 值冲突得到空响应。netflix 的域名由 `https://1.1.1.1/dns-query` 查询,得到 A 记录。
> `disableCache`: true | false > `disableCache`: true | false

@ -12,7 +12,7 @@ Freedom 是一个出站协议,可以用来向任意网络发送(正常的)
"fragment": { "fragment": {
"packets": "tlshello", "packets": "tlshello",
"length": "100-200", "length": "100-200",
"interval": "10-20" // ms "interval": "10-20" // 单位ms
} }
} }
``` ```
@ -27,57 +27,24 @@ Xray-core v1.8.6 新增功能:<br>
若不写此参数,或留空,默认值 `"AsIs"` 若不写此参数,或留空,默认值 `"AsIs"`
在目标地址为域名时, 配置相应的值, Freedom 的行为模式如下: 当目标地址为域名时配置相应的值Freedom 的行为模式如下:
- `"AsIs"`: Freedom 通过系统 DNS 服务器解析获取 IP, 向此域名发出连接。 - `"AsIs"`Freedom 使用系统 DNS 同时查询 A 和 AAAA 记录获取 IP向此域名发出连接。IPv4 或 IPv6 优先级由系统控制。
- `"UseIP"`、`"UseIPv4"` 和 `"UseIPv6"`: Xray 使用 [内置 DNS 服务器](../dns.md) 解析获取 IP, 向此域名发出连接。
::: tip TIP 1 | | AsIs |
当使用 `"UseIP"` 模式,并且 [出站连接配置](../outbound.md#outboundobject) 中指定了 `sendThrough`Freedom 会根据 `sendThrough` 的值自动判断所需的 IP 类型IPv4 或 IPv6。 | :--- | :---: |
::: | 系统有 IPv4 IPv6 | 通常 IPv6 优先 |
| 系统只有 IPv4 | IPv4 |
::: tip TIP 2 | 系统只有 IPv6 | IPv6 |
当使用 `"UseIPv4"``"UseIPv6"` 模式时Freedom 会只使用对应的 IPv4 或 IPv6 地址。当 `sendThrough` 指定了不匹配的本地地址时,将导致连接失败。
:::
::: tip TIP 3
`UseIP``ForceIP` 的区别是,前者解析失败了会走 AsIs后者解析失败了会被 block。这样整个 `domainStrategy` 都更加灵活了。
:::
```jsonc
"dns": {
"servers": [
"https://1.1.1.1/dns-query"
],
"queryStrategy": "UseIP" // 默认值 UseIP
}
```
- UseIP 同时查询 A 和 AAAA 记录 - `"UseIP"`、`"UseIPv6v4"`、`"UseIPv6"`、`"UseIPv4v6"`、`"UseIPv4"`:使用 Xray-core [内置 DNS 服务器](../dns.md) 查询获取 IP向此域名发出连接。IPv4 或 IPv6 优先级详见下方表格。
- 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": "UseIP"` | **1** | **2** | IPv6 | **3** | IPv4 |
| `"queryStrategy": "UseIPv4"` | IPv4 | **4** | **5** | **6** | IPv4 | | `"queryStrategy": "UseIPv4"` | IPv4 | **4** | **5** | **6** | IPv4 |
| `"queryStrategy": "UseIPv6"` | IPv6 | **7** | IPv6 | **8** | **9** | | `"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> **1** IPv4 IPv6 地址,随机优先<br>
**2** IPv4 IPv6 地址IPv6 优先<br> **2** IPv4 IPv6 地址IPv6 优先<br>
**3** IPv4 IPv6 地址IPv4 优先<br> **3** IPv4 IPv6 地址IPv4 优先<br>
@ -88,6 +55,48 @@ Xray-core v1.8.6 新增功能:<br>
**8** IPv4 IPv6 地址IPv4 优先IPv4 地址由系统 DNS 查询<br> **8** IPv4 IPv6 地址IPv4 优先IPv4 地址由系统 DNS 查询<br>
**9** 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 地址,随机优先<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 > `redirect`: address_port
Freedom 会强制将所有数据发送到指定地址(而不是 inbound 指定的地址)。 Freedom 会强制将所有数据发送到指定地址(而不是 inbound 指定的地址)。

@ -66,7 +66,7 @@ Wireguard 服务器列表,其中每一项是一个服务器配置。
Xray-core v1.8.6 新增参数。<br> Xray-core v1.8.6 新增参数。<br>
若不写此参数,或留空,默认值 `"ForceIP"`<br> 若不写此参数,或留空,默认值 `"ForceIP"`<br>
当目标地址为域名时,使用 Xray-core [内置 DNS 服务器](./dns.md)查询获取 IP若没写 `"dns"` 配置,使用系统 DNS将此 IP 通过 wireguard 发出连接。<br> 当目标地址为域名时,使用 Xray-core [内置 DNS 服务器](../dns.md)查询获取 IP若没写 `"dns"` 配置,使用系统 DNS将此 IP 通过 wireguard 发出连接。<br>
| domainStrategy | test-ipv6.com | bgp.he.net | chat.openai.com | | domainStrategy | test-ipv6.com | bgp.he.net | chat.openai.com |
| :--- | :---: | :---: | :---: | | :--- | :---: | :---: | :---: |
@ -79,11 +79,11 @@ Xray-core v1.8.6 新增参数。<br>
**1** 提示`你已经有 IPv6 地址了,但你的浏览器不太愿意用,这一点比较令人担心。`<br> **1** 提示`你已经有 IPv6 地址了,但你的浏览器不太愿意用,这一点比较令人担心。`<br>
**2** 有机率提示`你已经有 IPv6 地址了,但你的浏览器不太愿意用,这一点比较令人担心。` **2** 有机率提示`你已经有 IPv6 地址了,但你的浏览器不太愿意用,这一点比较令人担心。`
**注意1** ::: tip
- 若与 `"queryStrategy"` 产生冲突,会造成网站不能打开 `domainStrategy` 的值与 `"dns"` 配置中 `"queryStrategy"` 的值产生冲突,会造成网站打开失败
- 例如当 `domainStrategy: "ForceIPv4"` 时geosite:openai 的网站使用了 `"queryStrategy": "UseIPv6"`,将打开失败。 :::
```jsonc ```json
"dns": { "dns": {
"servers": [ "servers": [
"https://1.1.1.1/dns-query", "https://1.1.1.1/dns-query",
@ -96,14 +96,17 @@ Xray-core v1.8.6 新增参数。<br>
"queryStrategy": "UseIPv6" // 只查询 AAAA 记录 "queryStrategy": "UseIPv6" // 只查询 AAAA 记录
} }
], ],
"queryStrategy": "UseIP" // 若不写此参数,默认值 UseIP即同时查询 A 和 AAAA 记录,可选值 UseIPv4 和 UseIPv6其它记录类型由系统 DNS 查询 "queryStrategy": "UseIP" // 同时查询 A 和 AAAA 记录,若不写此参数,默认值 UseIP
}, },
``` ```
**注意2** `domainStrategy: "ForceIPv4"` 时,控制 geosite:openai 域名查询的 DNS 字段使用了 `"queryStrategy": "UseIPv6"`,将会导致 geosite:openai 的网站打开失败。
- Xray-core v1.8.0 - v1.8.4 没有 `"domainStrategy"`
- 当目标地址为域名时,使用 Xray-core 内置 DNS 服务器查询获取 IP使用 `"dns"` 配置中的 `"queryStrategy"` 的值来控制 IPv4 或 IPv6 优先级。 ::: tip
- 若没写 `"dns"` 配置,使用系统 DNS 查询获取 IPIPv4 或 IPv6 优先级由系统控制。 Xray-core v1.8.0 - v1.8.4 没有 `"domainStrategy"`<br>
当目标地址为域名时,使用 Xray-core 内置 DNS 服务器查询获取 IP。使用 `"dns"` 配置中 `"queryStrategy"` 的值控制 IPv4 或 IPv6 优先级。<br>
若没写 `"dns"` 配置,使用系统 DNS 查询获取 IPIPv4 或 IPv6 优先级由系统控制。
:::
### Peers ### Peers

@ -76,18 +76,25 @@
"grpcSettings": {}, "grpcSettings": {},
"sockopt": { "sockopt": {
"mark": 0, "mark": 0,
"tcpMaxSeg": 1440,
"tcpFastOpen": false, "tcpFastOpen": false,
"tproxy": "off", "tproxy": "off",
"domainStrategy": "AsIs", "domainStrategy": "AsIs",
"dialerProxy": "", "dialerProxy": "",
"acceptProxyProtocol": false, "acceptProxyProtocol": false,
"tcpKeepAliveInterval": 0, "tcpKeepAliveInterval": 0,
"V6Only": false "tcpKeepAliveIdle": 300,
"tcpUserTimeout": 10000,
"tcpcongestion": "bbr",
"interface": "wg0",
"V6Only": false,
"tcpMptcp": false,
"tcpNoDelay": false
} }
} }
``` ```
> `network`: "tcp" | "kcp" | "ws" | "http" | "domainsocket" | "quic" | "grpc" > `network`: "tcp" | "kcp" | "ws" | "http" | "h2" | "quic" | "grpc" | "domainsocket"
连接的数据流所使用的传输方式类型,默认值为 `"tcp"` 连接的数据流所使用的传输方式类型,默认值为 `"tcp"`
@ -676,4 +683,4 @@ Xray-core v1.8.6 新增参数。<br>
> `tcpNoDelay`: true | false > `tcpNoDelay`: true | false
默认值 `false`,建议与 "tcpMptcp": true 一起启用。 默认值 `false`,建议与 `"tcpMptcp": true` 一起启用。

@ -43,6 +43,10 @@ HTTP/2 内置多路复用,不建议使用 HTTP/2 时启用 mux.cool。
客户端会随机从列表中选出一个域名进行通信,服务器会验证域名是否在列表中。 客户端会随机从列表中选出一个域名进行通信,服务器会验证域名是否在列表中。
::: tip
若不写 `"httpSettings"``"host": []` 值留空时,会使用默认值 `"www.example.com"`,需要两端 `"host"` 值一致才能连接成功。`"host": [""]` 不是值留空。
:::
> `path`: string > `path`: string
HTTP 路径,由 `/` 开头, 客户端和服务器必须一致。 HTTP 路径,由 `/` 开头, 客户端和服务器必须一致。

Loading…
Cancel
Save