3x-ui3x-ui test
Конфигурация

Транспорты и безопасность

Все транспорты, которые предоставляет 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-камуфляжная маскировка заголовка.
mKCPkcpSettingsНадёжный протокол поверх UDP — обменивает пропускную способность на меньшую задержку на каналах с потерями. Не несёт TLS/REALITY.
WebSocketwsSettingsРаботает через CDN и HTTP-реверс-прокси; очень совместимый.
gRPCgrpcSettingsНа базе HTTP/2; хорошо мультиплексируется и чисто проксируется через Nginx.
HTTPUpgradehttpupgradeSettingsДружественный к CDN апгрейд HTTP/1.1 Upgrade; легче полноценного WebSocket.
XHTTPxhttpSettingsСовременный HTTP-транспорт с мультиплексированием потоков; дружественный к CDN и совместимый с REALITY.
HysteriahysteriaSettingsТранспорт на базе QUIC — только для протокола Hysteria2.

Inbound-соединения WireGuard и Tunnel (dokodemo-door) не предоставляют селектор транспорта — их поток несёт только security/sockopt. Прежние панели также предоставляли «сырой» транспорт HTTP/2 (http); он был вытеснен XHTTP и больше недоступен для выбора.

TCP (Raw) — tcpSettings

ПолеПо умолчаниюЗначение
acceptProxyProtocolfalseПринимать PROXY-протокол от вышестоящего прокси, чтобы сохранить реальный IP клиента.
header.typenonenone или http для камуфляжа под HTTP/1.1.
header.request / responseПри type: http: метод, путь, версия и карта заголовков, имитирующие обычный обмен HTTP.

mKCP — kcpSettings

ПолеПо умолчаниюЗначение
mtu1350Максимальный размер передаваемого блока, в байтах (576–1460).
tti20Интервал времени передачи, в мс (10–100). Меньше = отзывчивее, но больше накладных расходов.
uplinkCapacity5Бюджет пропускной способности на отдачу, в МБ/с.
downlinkCapacity20Бюджет пропускной способности на приём, в МБ/с.
cwndMultiplier1Множитель окна перегрузки; повышайте, чтобы сильнее нагружать хорошие каналы.
maxSendingWindow2097152Верхний предел числа пакетов «в пути».

mKCP не может нести TLS или REALITY. Чтобы замаскировать его, добавьте UDP-маску FinalMask — маска mkcp-legacy воспроизводит классическую обфускацию заголовка, которую старые версии Xray хранили в kcpSettings.header/seed (этих полей здесь больше нет).

WebSocket — wsSettings

ПолеПо умолчаниюЗначение
path/Путь запроса — маршрутизируйте по нему, когда несколько сервисов делят один хост.
host(нет)Переопределение заголовка Host (полезно за CDN).
headers{}Дополнительные заголовки запроса.
heartbeatPeriod0Секунды между keepalive-пингами; 0 отключает их.
acceptProxyProtocolfalseПринимать PROXY-протокол от вышестоящего прокси.

gRPC — grpcSettings

ПолеПо умолчаниюЗначение
serviceName(нет)Путь gRPC-сервиса; работает как секретный маршрут.
authority(нет)Переопределение псевдозаголовка :authority.
multiModefalseМультиплексировать несколько потоков по одному соединению.

HTTPUpgrade — httpupgradeSettings

ПолеПо умолчаниюЗначение
path/Путь запроса.
host(нет)Переопределение заголовка Host.
headers{}Дополнительные заголовки запроса.
acceptProxyProtocolfalseПринимать PROXY-протокол от вышестоящего прокси.

HTTPUpgrade — это одноразовый HTTP/1.1 Upgrade без фреймирования WebSocket, поэтому поля heartbeat нет.

XHTTP — xhttpSettings

У XHTTP (SplitHTTP) большой набор полей; панель заполняет разумные значения по умолчанию. Те, что вы обычно будете трогать:

ПолеПо умолчаниюЗначение
path/Путь запроса.
host(нет)Переопределение заголовка Host.
modeautoauto, packet-up, stream-up или stream-one. packet-up наиболее совместим с CDN; stream-* имеют меньшую задержку.
xPaddingBytes100-1000Диапазон случайного паддинга, размывающего размеры пакетов.
scMaxBufferedPosts30Серверный буфер для загружаемых POST-запросов.
scStreamUpServerSecs20-80Окно сервера в режиме stream-up (диапазон через дефис).
xmux (enableXmux)(выкл.)Мультиплексирование соединений — maxConcurrency 16-32, maxConnections 6, … Включайте при высокой конкурентности.

Поля Session-ID (sessionIDPlacement, sessionIDKey, sessionIDTable, sessionIDLength) и параметры scMin/MaxEachPostBytes — продвинутые; оставьте их пустыми, если только вы не подстраиваетесь под конкретный upstream.

Hysteria — hysteriaSettings

Допустимо, только когда протокол — Hysteria2.

ПолеПо умолчаниюЗначение
version2Версия протокола Hysteria.
auth(нет)Общая строка аутентификации.
udpIdleTimeout60Секунды (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 идёт вместе с любым транспортом и настраивает низлежащий сокет. Самые полезные поля:

ПолеПо умолчаниюЗначение
tcpFastOpenfalseВключить TCP Fast Open.
tcpcongestionbbrУправление перегрузкой: bbr, cubic или reno.
tproxyoffРежим прозрачного прокси: off, redirect или tproxy.
domainStrategyAsIsКак разрешаются адреса (UseIP, ForceIPv4, …).
dialerProxy(нет)Пропускать набор этого outbound через другой outbound по тегу.
interface(нет)Привязка к конкретному сетевому интерфейсу.
mark0SO_MARK для policy routing (0 = не задано).

Числовые поля, оставленные равными 0, опускаются на проводе, поэтому Xray сохраняет умолчания ОС. Продвинутые записи (happyEyeballs, customSockopt[], таймеры keepalive) доступны для особых случаев.

Безопасность

Уровень безопасности — это одно из значений none, tls или reality, со следующими правилами совместимости:

БезопасностьДопустимые транспортыДопустимые протоколы
TLStcp, ws, grpc, httpupgrade, xhttpVLESS, VMess, Trojan, Shadowsocks (Hysteria2 всегда TLS)
REALITYtcp, grpc, xhttpVLESS, 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, …) — декодируйте любую ссылку с помощью инспектора ссылок на подключение.

On this page