| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112 |
- ---
- title: TUIC
- description: Настройка входящего подключения TUIC в 3x-ui — параметры перегрузок QUIC, 0-RTT рукопожатия и многопользовательская аутентификация.
- icon: Zap
- ---
- **TUIC** (v5) — это протокол проксирования, работающий поверх транспортного уровня **QUIC** (HTTP/3).
- Он использует 0-RTT рукопожатия, мультиплексирование соединений без блокировки начала очереди
- и настраиваемый контроль перегрузок для поддержания стабильной связи на сетях с потерями пакетов.
- <Callout type="info">
- Как и MTProto, TUIC работает как **изолированный процесс-сайдкар** (`tuic-server` 1.0.0,
- написан на Rust), а не внутри Xray-core. Панель управляет жизненным циклом бинарника,
- генерирует конфигурации, отслеживает его состояние, фиксирует общий трафик инбаунда
- и онлайн-активность клиентов.
- </Callout>
- ## Ключевые параметры
- ### Параметры сервера и QUIC
- | Поле | Описание |
- | --- | --- |
- | **Порт** | UDP-порт для входящих QUIC-соединений клиентов. |
- | **Сертификат и ключ** | Полная цепочка SSL-сертификата и приватный ключ. Протокол QUIC требует обязательного шифрования TLS; поддерживаются сертификаты Let's Encrypt / ACME или самоподписанные. |
- | **SNI** | Имя сервера (Server Name Indication), совпадающее с доменным именем в сертификате. |
- | **Контроль перегрузок** | Алгоритм контроля перегрузок QUIC: `bbr` (рекомендуется для максимальной скорости), `cubic` или `new_reno`. |
- | **ALPN** | Токены протоколов уровня приложений (по умолчанию: `h3`). |
- | **Режим UDP Relay** | Режим инкапсуляции пакетов: `native` (QUIC datagrams, рекомендуется) или `quic`. |
- | **Zero-RTT Handshake** | Включает 0-RTT возобновление сессий для мгновенного повторного подключения клиентов без ожидания завершения рукопожатия. |
- | **Таймаут аутентификации** | Максимальное время (в секундах) на прохождение аутентификации клиентом (по умолчанию: `3s`). |
- | **Максимальный простой** | Таймаут бездействия (в секундах) перед закрытием неактивных QUIC-соединений (по умолчанию: `15s`). |
- | **Максимальный размер пакета** | Максимальный размер пакета UDP-релея в байтах (по умолчанию: `1500`). |
- ## Настройка в панели
- <Steps>
- <Step>
- ### Добавьте инбаунд
- Создайте новый инбаунд и выберите протокол **TUIC**. Задайте UDP-порт (например, `8443` или `443`).
- </Step>
- <Step>
- ### Укажите TLS-сертификат
- Укажите пути к файлам сертификата и приватного ключа (или вставьте их содержимое напрямую). Убедитесь, что поле SNI совпадает с доменом сертификата.
- </Step>
- <Step>
- ### Настройте параметры QUIC
- Панель автоматически подставляет рекомендованные настройки (`bbr`, `h3`, `native`). При необходимости настройте таймауты или включите **Zero-RTT Handshake**.
- </Step>
- <Step>
- ### Добавьте клиентов
- Для каждого клиента требуется **Email** (идентификатор), **UUID** (токен) и **Пароль**. Панель автоматически генерирует надёжные случайные данные при создании клиента.
- </Step>
- <Step>
- ### Экспортируйте и подключитесь
- Скопируйте ссылку `tuic://…` или откройте **окно QR-кода**, чтобы скачать готовый конфигурационный файл **Clash / Mihomo YAML**.
- </Step>
- </Steps>
- ## Поддержка клиентами и конфигурация
- TUIC v5 поддерживается всеми популярными клиентами, включая **Clash Verge Rev**, **Mihomo**, **Flclash**, **sing-box** и **v2rayN**.
- ### Конфигурация Clash / Mihomo
- Панель предоставляет автоматический экспорт в формат YAML прямо в окне QR-кода клиента:
- ```yaml title="clash-tuic.yaml"
- proxies:
- - name: "3x-ui-tuic"
- type: tuic
- server: vpn.example.com
- port: 8443
- uuid: 8a47f2b1-5e8c-4a3d-9b1e-7f6c5d4a3b2a
- password: secure-random-password
- alpn:
- - h3
- sni: vpn.example.com
- congestion-controller: bbr
- udp-relay-mode: native
- reduce-rtt: false
- skip-cert-verify: false
- ```
- ### Формат ссылки для обмена
- Ссылки TUIC используют стандартный формат URI:
- ```text
- tuic://<uuid>:<password>@<host>:<port>?congestion_control=bbr&alpn=h3&sni=vpn.example.com&udp_relay_mode=native&allow_insecure=0#Remark
- ```
- ## Архитектура и примечания
- <Callout type="info">
- - **Автономный сайдкар**: Панель поставляется со скомпилированными статическими `musl`-бинарниками `tuic-server` для Linux (amd64, arm64, armv7, 386) и исполняемым файлом для Windows.
- - **Учёт трафика и лимиты**: Панель сама занимает публичный UDP-порт инбаунда небольшим relay и запускает `tuic-server` за ним на loopback-порту, поэтому входящие и исходящие байты инбаунда считаются точно на любой ОС и ограничиваются на **уровне инбаунда** (`inbounds.total`); в логах `tuic-server` адресом каждого клиента будет `127.0.0.1`. Поскольку апстрим `tuic-server` не предоставляет внутреннего API метрик по отдельным пользователям, персональные квоты трафика (`totalGB`) для клиентов TUIC не поддерживаются. Доступ клиентов контролируется по сроку действия (`expiryTime`) и переключателю активности.
- - **Статус онлайн и «старт после первого использования»**: Панель определяет активность клиента по строкам Info в логе сайдкара (в них есть UUID клиента), поэтому этим функциям нужен уровень логов `info` или `debug`; `warn` и `error` их отключают.
- - **Изменения клиентов и соединения**: Поскольку апстрим `tuic-server` не поддерживает динамическую перезагрузку пользователей без перезапуска, любое изменение списка клиентов (добавление, редактирование или отключение) перезапускает процесс сайдкара и кратковременно сбрасывает активные соединения.
- - **Развёртывание**: Поскольку TUIC управляется локальным процессом хоста, такие инбаунды работают локально на главной панели.
- </Callout>
|