mirror of
https://github.com/MHSanaei/3x-ui.git
synced 2026-10-15 18:35:00 +03:00
aacfaebab8
* fix(tuic): restore client speed and certificate layout * docs(tuic): clarify native runtime and protocol behavior * fix(websocket): preserve traffic updates from independent sources * fix(docs): sync websocket traffic schema and drop restating TUIC tests docs/public/openapi.json still described the old traffic event, without clientTrafficSource/clientTrafficIntervalMs or the TUIC oneOf branch, so the docs site showed a payload the panel no longer sends. No check covers that copy. The TUIC certificate layout test and the TUIC speed payload test only read back the literals the code writes, so neither could fail on a real regression. Both are removed, along with the className that existed only for the layout test. --------- Co-authored-by: MHSanaei <ho3ein.sanaei@gmail.com>
112 lines
9.2 KiB
Plaintext
112 lines
9.2 KiB
Plaintext
---
|
||
title: TUIC
|
||
description: Настройка входящего подключения TUIC в 3x-ui — параметры перегрузок QUIC, 0-RTT рукопожатия и многопользовательская аутентификация.
|
||
icon: Zap
|
||
---
|
||
|
||
**TUIC** (v5) — это протокол проксирования, работающий поверх транспортного уровня **QUIC** (HTTP/3).
|
||
Он использует 0-RTT рукопожатия, мультиплексирование соединений без блокировки начала очереди
|
||
и настраиваемый контроль перегрузок для поддержания стабильной связи на сетях с потерями пакетов.
|
||
|
||
<Callout type="info">
|
||
TUIC работает как **встроенный нативный Go-сервер** прямо внутри процесса 3x-ui. Расшифрованный трафик направляется в ядро Xray-core через локальный SOCKS5-мост, что обеспечивает полную поддержку правил маршрутизации Xray, каскадирования (например, TUIC → VLESS / WARP), персональных квот клиентов (`totalGB`) и горячего обновления пользователей без обрыва соединений.
|
||
</Callout>
|
||
|
||
## Ключевые параметры
|
||
|
||
### Параметры сервера, QUIC и клиентского профиля
|
||
|
||
| Поле | Описание |
|
||
| --- | --- |
|
||
| **Порт** | UDP-порт для входящих QUIC-соединений клиентов. |
|
||
| **Сертификат и ключ** | Полная цепочка SSL-сертификата и приватный ключ. Протокол QUIC требует обязательного шифрования TLS; поддерживаются сертификаты Let's Encrypt / ACME или самоподписанные. |
|
||
| **SNI** | Server Name Indication для профиля клиента. Укажите домен, покрытый сертификатом сервера; это поле не настраивает сертификат listener'а. |
|
||
| **Контроль перегрузок** | Алгоритм QUIC в настройках сервера и экспортируемом профиле: `bbr`, `cubic` или `new_reno`. Сервер использует BBR или New Reno; при выборе CUBIC клиентский профиль сохраняет CUBIC, а сервер пока применяет New Reno. |
|
||
| **ALPN** | Токены протоколов уровня приложений (по умолчанию: `h3`). |
|
||
| **Режим UDP Relay** | Режим UDP в профиле клиента: `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">
|
||
- **Нативный Go-движок**: TUIC v5 работает на 100% нативно на Go внутри процесса 3x-ui. Никаких внешних сторонних бинарников скачивать не требуется.
|
||
- **Маршрутизация и каскады в Xray**: Трафик проходит через движок маршрутизации Xray. Теги инбаундов (`in-<port>-udp`) полноценно участвуют в правилах маршрутизации (Routing Rules), блокировках geosite/geoip и перенаправлении в любые аутбаунды (VLESS, Shadowsocks, WARP и др.).
|
||
- **Персональные квоты трафика**: Лимиты трафика (`totalGB`) и сроки действия (`expiryTime`) учитываются и применяются индивидуально для каждого клиента.
|
||
- **Скорость и общий трафик**: Нативные счётчики клиентов TUIC опрашиваются раз в 10 секунд и передаются в панель для отображения скорости. Xray отдельно считает общий трафик инбаунда через локальный relay; событие скорости TUIC повторно его не начисляет.
|
||
- **Ограничения UDP**: На одно QUIC-соединение допускается до 256 активных UDP-ассоциаций. Неактивные ассоциации закрываются через пять минут. Это лимит на соединение, а не общий лимит узла. TUIC использует выделенный локальный SOCKS-порт из диапазона `64001–65000`; 3x-ui проверяет его конфликты с управляемыми инбаундами и relay-портами.
|
||
- **Горячее обновление без обрыва связи**: Добавление, редактирование или отключение клиентов обновляет реестр пользователей в памяти без перезапуска порта и без сброса активных сессий других пользователей.
|
||
- **Развёртывание**: Инбаунд TUIC можно создать на дочернем узле или клонировать туда. TUIC-сервер запускает панель самого узла, поэтому на узле нужна панель v3.8.0 или новее; более старый узел главная панель отклоняет.
|
||
</Callout>
|