TLS: Remove ECH Force Query

Sync RU doc
This commit is contained in:
Fangliding
2026-04-29 19:24:40 +08:00
parent 122a055eb4
commit a1f2913bad
3 changed files with 11 additions and 44 deletions
-13
View File
@@ -133,7 +133,6 @@ FinalMask 配置,用于对流量进行通用伪装。
"masterKeyLog": "",
"echServerKeys": "",
"echConfigList": "",
"echForceQuery": "",
"echSockopt": {}
}
```
@@ -302,18 +301,6 @@ SecP384r1MLKEM1024*
特别地,可以使用指定的域名用于查询 ECHConfig, 格式为 `"example.com+https://1.1.1.1/dns-query"` 这样 Xray 会强制使用 example.com 的 DNS 记录中的 ECHConfig 用于连接,如果你想从 DNS 获取 ECHConfig 但又不想暴露自己在查询这个域名的 HTTPS 记录或者在这个域名下发布 HTTPS 记录时有一些用。
> `echForceQuery` : string
控制使用 DNS 查询 ECH Config 时的策略,可选 `none`(默认) `half` `full`
`none`: 查询一次,如果没能获取有效 ECH Config 五分钟后才会继续查询。如果查询失败**不会使用 ECH**.
`half`: 查询一次,失败后每次请求都会尝试查询。如果查询失败**不会使用 ECH**。如果查询成功得到响应但是不包含 ECH Config 也**不会使用 ECH**,并且五分钟内不会再次查询。
`full`: 查询一次,强制要求得到了有效 ECH Config 才会成功连接,否则连接会失败。确定要使用 ECH 推荐此选项,前两种模拟 fallback 行为确保可用性但是可能会导致明文 SNI 被发送。
无论查询成功与否,只有第一次连接才会阻塞等待查询响应结果,后续更新不会阻塞连接。
> `echSockopt` : [SockoptObject](#sockoptobject)
调整使用 DNS 查询 ECH 记录时使用的连接的底层 socket 选项。
-13
View File
@@ -132,7 +132,6 @@ FinalMask configuration, used for general traffic obfuscation.
"masterKeyLog": "",
"echServerKeys": "",
"echConfigList": "",
"echForceQuery": "",
"echSockopt": {}
}
```
@@ -296,18 +295,6 @@ The basic format is `"udp://1.1.1.1"`, indicating querying from UDP DNS 1.1.1.1.
Specifically, you can use a designated domain for querying ECHConfig, in the format `"example.com+https://1.1.1.1/dns-query"`. In this way, Xray will force the use of the ECHConfig in the DNS record of `example.com` for connection. This is useful if you want to get ECHConfig from DNS but don't want to expose yourself querying the HTTPS record of this domain or publishing HTTPS records under this domain.
> `echForceQuery` : string
Controls the strategy when using DNS to query ECH Config. Options: `none` (default), `half`, `full`.
`none`: Query once. If a valid ECH Config is not obtained, it will query again after five minutes. If the query fails, **ECH will not be used**.
`half`: Query once. If failed, attempts to query on every request. If the query fails, **ECH will not be used**. If the query succeeds and gets a response but does not contain ECH Config, **ECH will not be used** either, and it will not query again within five minutes.
`full`: Query once. Forcibly requires a valid ECH Config to connect successfully; otherwise, the connection fails. Recommended if you definitely want to use ECH. The first two simulate fallback behavior to ensure availability but may lead to plaintext SNI being sent.
Regardless of query success or failure, only the first connection will block waiting for the query response result; subsequent updates will not block connections.
> `echSockopt` : [SockoptObject](#sockoptobject)
Adjusts the underlying socket options of the connection used when querying ECH records using DNS.
+11 -18
View File
@@ -43,10 +43,7 @@
"interface": "wg0",
"v6only": false,
"tcpWindowClamp": 600,
"tcpMptcp": false,
"tcpNoDelay": false,
"addressPortStrategy": "",
"customSockopt": []
"tcpMptcp": false
}
}
```
@@ -103,6 +100,10 @@ Reality — это самое безопасное на данный момен
Конфигурация HTTPUpgrade для текущего соединения, действительна только если это соединение использует HTTPUpgrade.
> `hysteriaSettings`: [HysteriaObject](./transports/hysteria.md)
Конфигурация Hysteria для текущего соединения, действительна только если это соединение использует Hysteria.
> `sockopt`: [SockoptObject](#sockoptobject)
Конкретные настройки, связанные с прозрачным проксированием.
@@ -132,7 +133,7 @@ Reality — это самое безопасное на данный момен
"masterKeyLog": "",
"echConfigList": "",
"echServerKeys": "",
"echForceQuery": ""
"echSockopt": {}
}
```
@@ -309,18 +310,6 @@ SecP384r1MLKEM1024*
Учтите: сервер, настроенный на использование ECH, всё ещё принимает обычные не-ECH-соединения. Но клиент, настроенный на ECH, при неудачной ECH-рукопожатии сразу завершит соединение, не откатываясь к открытому SNI.
> `echForceQuery` : string
Управляет политикой при использовании DNS-запросов для `ECH Config`, доступны опции `none`(по умолчанию), `half`, `full`.
`none`: Запрашивается один раз. Если не удалось получить действительный `ECH Config`, следующий запрос будет выполнен через пять минут. В случае неудачного запроса **`ECH` использоваться не будет**.
`half`: Запрашивается один раз. В случае неудачи, попытка запроса будет повторяться при каждом новом соединении. В случае неудачного запроса **`ECH` использоваться не будет**. Если запрос успешен, но ответ не содержит `ECH Config`, **`ECH` также использоваться не будет**, и повторных запросов не будет в течение пяти минут.
`full`: Запрашивается один раз, успешное соединение требует обязательного получения действительного `ECH Config`, в противном случае соединение не будет установлено. Этот вариант рекомендуется, если вы уверены в необходимости использования `ECH`. Первые два варианта имитируют поведение `fallback` для обеспечения доступности, но это может привести к отправке `SNI` в открытом виде.
Независимо от успеха запроса, только первое соединение будет блокироваться в ожидании ответа на DNS-запрос. Последующие обновления не будут блокировать соединения.
> `echSockopt` : [SockoptObject](#sockoptobject)
Настраивает параметры базового `socket` для соединения, используемого при выполнении DNS-запросов для записей `ECH`.
@@ -380,8 +369,12 @@ Reality лишь модифицирует TLS, и для реализации н
Обязательный параметр, формат такой же, как у [dest](./features/fallback.md#fallbackobject) в VLESS `fallbacks`.
Прежнее название — `dest`. В текущей версии оба поля являются взаимными псевдонимами.
Если целевой сервер поддерживает пост-квантовый алгоритм обмена ключами X25519MLKEM768, то клиент reality автоматически применит этот алгоритм для согласования ключей. Чтобы проверить поддержку, выполните команду `xray tls ping cloudflare.com` (замените адрес на `dest`, при необходимости добавьте номер порта).
Ядро по наличию этого поля определяет, является ли текущая конфигурация клиентской или серверной. Не указывайте его на стороне клиента, иначе возникнут ошибки распознавания.
::: warning
Из соображений маскировки Xray будет **непосредственно перенаправлять** трафик с неудачной аутентификацией (недопустимый запрос REALITY) на `dest`.
Если IP-адрес сайта `dest` особый (например, сайт использует CloudFlare CDN), это равносильно тому, что ваш сервер действует как port forward для CloudFlare, что может привести к злоупотреблению.
@@ -662,7 +655,7 @@ Reality лишь модифицирует TLS, и для реализации н
"V6Only": false,
"tcpWindowClamp": 600,
"tcpMptcp": false,
"tcpNoDelay": false,
"addressPortStrategy": "",
"customSockopt": []
}
```