1
0
mirror of https://github.com/XTLS/Xray-docs-next.git synced 2025-08-26 13:25:45 +00:00

RU REALITY: Add rate limiting to fallback handling via token bucket

This commit is contained in:
Nikita Korotaev 2025-04-06 21:08:52 +05:00 committed by Meo597
parent d0ab676c84
commit 7d1afa75f5

View File

@ -286,6 +286,12 @@ x25519Kyber768Draft00
"maxClientVer": "", "maxClientVer": "",
"maxTimeDiff": 0, "maxTimeDiff": 0,
"shortIds": ["", "0123456789abcdef"], "shortIds": ["", "0123456789abcdef"],
"limitUploadRate": 0,
"limitUploadBrust": 0,
"limitUploadAfter": 0,
"limitDownloadRate": 0,
"limitDownloadBrust": 0,
"limitDownloadAfter": 0,
"fingerprint": "chrome", "fingerprint": "chrome",
"serverName": "", "serverName": "",
"publicKey": "", "publicKey": "",
@ -319,7 +325,9 @@ Reality лишь модифицирует TLS, и для реализации н
::: warning ::: warning
Из соображений маскировки Xray будет **непосредственно перенаправлять** трафик с неудачной аутентификацией (недопустимый запрос REALITY) на `dest`. Из соображений маскировки Xray будет **непосредственно перенаправлять** трафик с неудачной аутентификацией (недопустимый запрос REALITY) на `dest`.
Если IP-адрес сайта `dest` особый (например, сайт использует CloudFlare CDN), это равносильно тому, что ваш сервер действует как port forward для CloudFlare, что может привести к злоупотреблению. Если IP-адрес сайта `dest` особый (например, сайт использует CloudFlare CDN), это равносильно тому, что ваш сервер действует как port forward для CloudFlare, что может привести к злоупотреблению.
Чтобы этого избежать, можно рассмотреть возможность использования Nginx и других методов для фильтрации нежелательных SNI. Чтобы этого избежать, можно рассмотреть возможность использования Nginx и других методов для фильтрации нежелательных SNI.
Или вы также можете рассмотреть настройку соответствующих параметров `limit****`, чтобы ограничить скорость.
::: :::
> `xver` : number > `xver` : number
@ -358,6 +366,53 @@ Reality лишь модифицирует TLS, и для реализации н
Если содержит пустое значение, `shortId` клиента может быть пустым. Если содержит пустое значение, `shortId` клиента может быть пустым.
::: warning
Предупреждение: Лучшей практикой для REALITY всегда является использование сертификата из той же ASN, поэтому, скорее всего, вам эта функция не понадобится; только если вы вынуждены использовать сертификат CDN, можно рассмотреть включение этой функции, чтобы избежать превращения вашего сервера в узел для других.
Включение ограничения скорости может ввести новые характеристики, обнаруживаемые GFW! Если вы разработчик GUI/панели/скрипта установки в один клик, обязательно рандомизируйте эти параметры!
:::
::: tip
Следующие шесть параметров `limit****` являются необязательными и позволяют ограничить скорость для проксируемых REALITY-соединений. По умолчанию установлено значение 0, что означает "не включено".
Принцип: Алгоритм ограничения скорости активируется после передачи `after` байт.
Ограничение скорости использует алгоритм Token Bucket. Емкость ведра равна `brust`. Каждый переданный байт расходует один токен. Изначально ведро `brust` заполнено.
Ведро пополняется со скоростью `rate` токенов в секунду, пока не достигнет полной емкости.
Пример: `after=10485760`, `brust=5242880`, `rate=1048576` означает, что после передачи `10 МБ` скорость будет ограничена до `1 МБ/с`. Если передача приостановлена, через 5 секунд возможен всплеск скорости до `5 МБ/с`, после чего скорость снова вернется к `1 МБ/с`.
Рекомендации: Слишком большие значения `after` и `brust` не обеспечат эффективного ограничения скорости, тогда как слишком маленькие `rate` и `brust` могут быть легко обнаружены.
Параметры следует устанавливать разумно, учитывая размер ресурсов сайта, с которого "заимствуется" сертификат. Если всплески скорости нежелательны, можно установить `brust` равным `rate`.
:::
> `limitUploadRate` : number
Необязательный параметр. Ограничивает базовую скорость загрузки (upload) для проксируемых REALITY-соединений (байт/секунду).
Не может быть больше, чем `limitUploadBrust`.
> `limitUploadBrust` : number
Необязательный параметр. Ограничивает пиковую (burst) скорость загрузки (upload) для проксируемых REALITY-соединений (байт/секунду).
Не может быть меньше, чем `limitUploadRate`.
> `limitUploadAfter` : number
Необязательный параметр. Ограничение скорости загрузки (upload) для проксируемых REALITY-соединений начинается после передачи указанного количества байт.
> `limitDownloadRate` : number
Необязательный параметр. Ограничивает базовую скорость скачивания (download) для проксируемых REALITY-соединений (байт/секунду).
Не может быть больше, чем `limitDownloadBrust`.
> `limitDownloadBrust` : number
Необязательный параметр. Ограничивает пиковую (burst) скорость скачивания (download) для проксируемых REALITY-соединений (байт/секунду).
Не может быть меньше, чем `limitDownloadRate`.
> `limitDownloadAfter` : number
Необязательный параметр. Ограничение скорости скачивания (download) для проксируемых REALITY-соединений начинается после передачи указанного количества байт.
::: tip ::: tip
Ниже приведена конфигурация для **исходящего** подключения (**клиента**). Ниже приведена конфигурация для **исходящего** подключения (**клиента**).
::: :::