diff --git a/docs/ru/config/transport.md b/docs/ru/config/transport.md index d688c42..e07d420 100644 --- a/docs/ru/config/transport.md +++ b/docs/ru/config/transport.md @@ -119,7 +119,9 @@ Reality — это самое безопасное на данный момен "fingerprint": "chrome", "pinnedPeerCertificateChainSha256": [""], "curvePreferences": [""], - "masterKeyLog": "" + "masterKeyLog": "", + "echConfigList": "", + "echServerKeys": "" } ``` @@ -276,7 +278,28 @@ x25519Kyber768Draft00 > `masterKeyLog` : string -Путь к файлу журнала (Pre)-Master-Secret, который можно использовать для расшифровки TLS-соединений, отправляемых Xray, с помощью Wireshark и других программ, пока не поддерживается для использования с utls. +Файл журнала (Pre)-Master-Secret, путь к которому задаётся здесь, может быть использован в Wireshark и других программах для расшифровки TLS-соединений, устанавливаемых Xray. + +> `echConfigList` : string + +Только для клиента. Задаёт ECHConfig; если значение задано — клиент включает Encrypted Client Hello. Поддерживаются два формата. + +Фиксированный ECHConfig, например `"AF7+DQBaAAAgACA51i3Ssu4wUMV4FNCc8iRX5J+YC4Bhigz9sacl2lCfSQAkAAEAAQABAAIAAQADAAIAAQACAAIAAgADAAMAAQADAAIAAwADAAtleGFtcGxlLmNvbQAA"` + +Получение через DNS. Удобно при использовании CDN: по HTTPS-записи можно динамически получить ECHConfig; Xray будет соблюдать TTL, возвращённый сервером. Запрашивается SNI из конфигурации или доменное имя сервера (если SNI пуст и целью является домен). + +Базовый вид строки: `"udp://1.1.1.1"` — запрос по UDP DNS к 1.1.1.1. `"https://1.1.1.1/dns-query"` — запрос по DoH (пример; замените на доступный сервер). В обоих случаях можно указать порт, например `udp://1.1.1.1:53`; если порт не указан, берутся значения по умолчанию 53/443. + +Особый случай: можно задать домен, из чьей записи будет браться ECHConfig, например `"example.com+https://1.1.1.1/dns-query"`. Тогда Xray принудительно использует ECHConfig из DNS-записи example.com, что полезно, если нужно получить ECHConfig через DNS, но не хочется светить целевой домен в HTTPS-запросе или публиковать у него HTTPS-запись. + +> `echServerKeys` : string + +Только для сервера. Включает Encrypted Client Hello на стороне сервера. + +Создайте ключи командой `xray tls ech --serverName example.com` где `example.com` — SNI, который будет открыт наружу (можно указать любой). Server Key содержит и ECHConfig; если клиентский Config потерян, его можно восстановить командой `xray tls ech -i "ваш server key"`. +Полученный Config можно опубликовать в HTTPS-записи DNS (см. пример в [Google DNS](https://dns.google/query?name=encryptedsni.com&rr_type=HTTPS) или RFC 9460). + +Учтите: сервер, настроенный на использование ECH, всё ещё принимает обычные не-ECH-соединения. Но клиент, настроенный на ECH, при неудачной ECH-рукопожатии сразу завершит соединение, не откатываясь к открытому SNI. ### RealityObject