Транспорты и безопасность
Все транспорты, которые предоставляет 3x-ui — TCP, mKCP, WebSocket, gRPC, HTTPUpgrade, XHTTP, Hysteria — с их настройками, а также обфускация FinalMask, sockopt, TLS/REALITY, XTLS-Vision и шифрование VLESS.
Транспорт определяет, как пакеты переносятся между клиентом и сервером, уровень безопасности определяет, как они шифруются и маскируются, а FinalMask может обфусцировать всё, что остаётся. Панель предлагает только допустимые комбинации; на этой странице перечислены настройки каждого транспорта и правила, которые применяет панель.
Транспорты
Выберите транспорт (поле network у inbound) в форме inbound/outbound. Каждый
network записывает свой собственный ключ настроек на проводе (tcpSettings,
kcpSettings, …).
| Транспорт | Ключ настроек | Когда использовать |
|---|---|---|
| TCP (Raw) | tcpSettings | Минимальные накладные расходы. Основа для REALITY + XTLS-Vision и фолбэков; опциональная HTTP/1.1-камуфляжная маскировка заголовка. |
| mKCP | kcpSettings | Надёжный протокол поверх UDP — обменивает пропускную способность на меньшую задержку на каналах с потерями. Не несёт TLS/REALITY. |
| WebSocket | wsSettings | Работает через CDN и HTTP-реверс-прокси; очень совместимый. |
| gRPC | grpcSettings | На базе HTTP/2; хорошо мультиплексируется и чисто проксируется через Nginx. |
| HTTPUpgrade | httpupgradeSettings | Дружественный к CDN апгрейд HTTP/1.1 Upgrade; легче полноценного WebSocket. |
| XHTTP | xhttpSettings | Современный HTTP-транспорт с мультиплексированием потоков; дружественный к CDN и совместимый с REALITY. |
| Hysteria | hysteriaSettings | Транспорт на базе QUIC — только для протокола Hysteria2. |
Inbound-соединения WireGuard и Tunnel (dokodemo-door) не предоставляют
селектор транспорта — их поток несёт только security/sockopt. Прежние панели
также предоставляли «сырой» транспорт HTTP/2 (http); он был вытеснен
XHTTP и больше недоступен для выбора.
TCP (Raw) — tcpSettings
| Поле | По умолчанию | Значение |
|---|---|---|
acceptProxyProtocol | false | Принимать PROXY-протокол от вышестоящего прокси, чтобы сохранить реальный IP клиента. |
header.type | none | none или http для камуфляжа под HTTP/1.1. |
header.request / response | — | При type: http: метод, путь, версия и карта заголовков, имитирующие обычный обмен HTTP. |
mKCP — kcpSettings
| Поле | По умолчанию | Значение |
|---|---|---|
mtu | 1350 | Максимальный размер передаваемого блока, в байтах (576–1460). |
tti | 20 | Интервал времени передачи, в мс (10–100). Меньше = отзывчивее, но больше накладных расходов. |
uplinkCapacity | 5 | Бюджет пропускной способности на отдачу, в МБ/с. |
downlinkCapacity | 20 | Бюджет пропускной способности на приём, в МБ/с. |
cwndMultiplier | 1 | Множитель окна перегрузки; повышайте, чтобы сильнее нагружать хорошие каналы. |
maxSendingWindow | 2097152 | Верхний предел числа пакетов «в пути». |
mKCP не может нести TLS или REALITY. Чтобы замаскировать его, добавьте
UDP-маску FinalMask — маска mkcp-legacy воспроизводит классическую
обфускацию заголовка, которую старые версии Xray хранили в
kcpSettings.header/seed (этих полей здесь больше нет).
WebSocket — wsSettings
| Поле | По умолчанию | Значение |
|---|---|---|
path | / | Путь запроса — маршрутизируйте по нему, когда несколько сервисов делят один хост. |
host | (нет) | Переопределение заголовка Host (полезно за CDN). |
headers | {} | Дополнительные заголовки запроса. |
heartbeatPeriod | 0 | Секунды между keepalive-пингами; 0 отключает их. |
acceptProxyProtocol | false | Принимать PROXY-протокол от вышестоящего прокси. |
gRPC — grpcSettings
| Поле | По умолчанию | Значение |
|---|---|---|
serviceName | (нет) | Путь gRPC-сервиса; работает как секретный маршрут. |
authority | (нет) | Переопределение псевдозаголовка :authority. |
multiMode | false | Мультиплексировать несколько потоков по одному соединению. |
HTTPUpgrade — httpupgradeSettings
| Поле | По умолчанию | Значение |
|---|---|---|
path | / | Путь запроса. |
host | (нет) | Переопределение заголовка Host. |
headers | {} | Дополнительные заголовки запроса. |
acceptProxyProtocol | false | Принимать PROXY-протокол от вышестоящего прокси. |
HTTPUpgrade — это одноразовый HTTP/1.1 Upgrade без фреймирования WebSocket,
поэтому поля heartbeat нет.
XHTTP — xhttpSettings
У XHTTP (SplitHTTP) большой набор полей; панель заполняет разумные значения по умолчанию. Те, что вы обычно будете трогать:
| Поле | По умолчанию | Значение |
|---|---|---|
path | / | Путь запроса. |
host | (нет) | Переопределение заголовка Host. |
mode | auto | auto, packet-up, stream-up или stream-one. packet-up наиболее совместим с CDN; stream-* имеют меньшую задержку. |
xPaddingBytes | 100-1000 | Диапазон случайного паддинга, размывающего размеры пакетов. |
scMaxBufferedPosts | 30 | Серверный буфер для загружаемых POST-запросов. |
scStreamUpServerSecs | 20-80 | Окно сервера в режиме stream-up (диапазон через дефис). |
xmux (enableXmux) | (выкл.) | Мультиплексирование соединений — maxConcurrency 16-32, maxConnections 6, … Включайте при высокой конкурентности. |
Поля Session-ID (sessionIDPlacement, sessionIDKey, sessionIDTable,
sessionIDLength) и параметры scMin/MaxEachPostBytes — продвинутые; оставьте
их пустыми, если только вы не подстраиваетесь под конкретный upstream.
Hysteria — hysteriaSettings
Допустимо, только когда протокол — Hysteria2.
| Поле | По умолчанию | Значение |
|---|---|---|
version | 2 | Версия протокола Hysteria. |
auth | (нет) | Общая строка аутентификации. |
udpIdleTimeout | 60 | Секунды (2–600) до сброса простаивающих UDP-сессий. |
masquerade | — | Маскировка под HTTP/3-сервер: type proxy/file/string с url/dir/content, а также headers и statusCode. |
FinalMask — обфускация на позднем уровне
FinalMask оборачивает трафик после уровней транспорта и безопасности, поэтому он может замаскировать транспорты, не несущие TLS (например, mKCP), или добавить вторую оболочку поверх TLS. Маски настраиваются по направлениям:
- TCP-маски —
fragment,sudoku,header-custom,xmc(маскирует поток под трафик протокола Minecraft; требуется пароль, имя хоста и имена игроков опциональны). - UDP-маски —
salamander,mkcp-legacy,header-custom,xdns,xicmp,noise,sudoku,realm. (mkcp-legacyвоспроизводит старую обфускацию заголовка mKCP.) - Параметры QUIC — управление перегрузкой (
reno,bbr,brutal,force-brutal), скорости отдачи/приёма Brutal,udpHop(ротация QUIC-порта в пределах диапазона для обхода блокировки портов) и настройка окна приёма.
FinalMask заменяет обфускацию header/seed на уровне отдельного транспорта,
которую предоставляли старые сборки Xray.
sockopt — низкоуровневые опции сокета
sockopt идёт вместе с любым транспортом и настраивает низлежащий сокет. Самые
полезные поля:
| Поле | По умолчанию | Значение |
|---|---|---|
tcpFastOpen | false | Включить TCP Fast Open. |
tcpcongestion | bbr | Управление перегрузкой: bbr, cubic или reno. |
tproxy | off | Режим прозрачного прокси: off, redirect или tproxy. |
domainStrategy | AsIs | Как разрешаются адреса (UseIP, ForceIPv4, …). |
dialerProxy | (нет) | Пропускать набор этого outbound через другой outbound по тегу. |
interface | (нет) | Привязка к конкретному сетевому интерфейсу. |
mark | 0 | SO_MARK для policy routing (0 = не задано). |
Числовые поля, оставленные равными 0, опускаются на проводе, поэтому Xray
сохраняет умолчания ОС. Продвинутые записи (happyEyeballs, customSockopt[],
таймеры keepalive) доступны для особых случаев.
Безопасность
Уровень безопасности — это одно из значений none, tls или
reality, со следующими правилами совместимости:
| Безопасность | Допустимые транспорты | Допустимые протоколы |
|---|---|---|
| TLS | tcp, ws, grpc, httpupgrade, xhttp | VLESS, VMess, Trojan, Shadowsocks (Hysteria2 всегда TLS) |
| REALITY | tcp, grpc, xhttp | VLESS, Trojan |
mKCP и Hysteria не используют отдельный уровень TLS/REALITY — mKCP работает в открытом виде (обфусцируйте его с помощью FinalMask), а Hysteria по своей природе использует QUIC/TLS. REALITY маскирует ваш сервер под настоящий TLS-сайт и не требует сертификата — см. REALITY.
Поток XTLS-Vision
Поток xtls-rprx-vision быстрый и устойчивый к DPI. Он доступен для VLESS,
когда выполнено одно из условий:
- транспорт — это «сырой» TCP с безопасностью TLS или REALITY (классический XTLS-Vision), либо
- транспорт — это XHTTP с включённым шифрованием VLESS (см. ниже).
Поток задаётся на клиенте VLESS, а не на inbound. При классическом Vision поверх TCP панель также может предложить Vision seed после того, как клиент начнёт использовать этот поток.
Шифрование VLESS (ML-KEM)
VLESS поддерживает постквантовое шифрование (ML-KEM / mlkem768x25519),
которое хранится в поле decryption у inbound (сервер) и в поле encryption у
клиентов (для генерации ссылок). Когда оно включено, становится доступен поток
Vision поверх XHTTP. Сгенерируйте ключи в настройках VLESS на панели.
Шифры Shadowsocks
Inbound-соединения Shadowsocks поддерживают как классические шифры, так и
Shadowsocks-2022 (имена методов, начинающиеся с 2022-blake3-). Большинство
шифров рассчитаны на нескольких пользователей; 2022-blake3-chacha20-poly1305
рассчитан на одного пользователя.
Транспорты и безопасность должны совпадать на обоих концах. Ссылка на
подключение, которую использует клиент, кодирует их (type=ws,
security=reality, flow=xtls-rprx-vision, …) — декодируйте любую ссылку с
помощью инспектора ссылок на подключение.

3x-ui test