tuic.mdx 8.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112
  1. ---
  2. title: TUIC
  3. description: Настройка входящего подключения TUIC в 3x-ui — параметры перегрузок QUIC, 0-RTT рукопожатия и многопользовательская аутентификация.
  4. icon: Zap
  5. ---
  6. **TUIC** (v5) — это протокол проксирования, работающий поверх транспортного уровня **QUIC** (HTTP/3).
  7. Он использует 0-RTT рукопожатия, мультиплексирование соединений без блокировки начала очереди
  8. и настраиваемый контроль перегрузок для поддержания стабильной связи на сетях с потерями пакетов.
  9. <Callout type="info">
  10. Как и MTProto, TUIC работает как **изолированный процесс-сайдкар** (`tuic-server` 1.0.0,
  11. написан на Rust), а не внутри Xray-core. Панель управляет жизненным циклом бинарника,
  12. генерирует конфигурации, отслеживает его состояние, фиксирует общий трафик инбаунда
  13. и онлайн-активность клиентов.
  14. </Callout>
  15. ## Ключевые параметры
  16. ### Параметры сервера и QUIC
  17. | Поле | Описание |
  18. | --- | --- |
  19. | **Порт** | UDP-порт для входящих QUIC-соединений клиентов. |
  20. | **Сертификат и ключ** | Полная цепочка SSL-сертификата и приватный ключ. Протокол QUIC требует обязательного шифрования TLS; поддерживаются сертификаты Let's Encrypt / ACME или самоподписанные. |
  21. | **SNI** | Имя сервера (Server Name Indication), совпадающее с доменным именем в сертификате. |
  22. | **Контроль перегрузок** | Алгоритм контроля перегрузок QUIC: `bbr` (рекомендуется для максимальной скорости), `cubic` или `new_reno`. |
  23. | **ALPN** | Токены протоколов уровня приложений (по умолчанию: `h3`). |
  24. | **Режим UDP Relay** | Режим инкапсуляции пакетов: `native` (QUIC datagrams, рекомендуется) или `quic`. |
  25. | **Zero-RTT Handshake** | Включает 0-RTT возобновление сессий для мгновенного повторного подключения клиентов без ожидания завершения рукопожатия. |
  26. | **Таймаут аутентификации** | Максимальное время (в секундах) на прохождение аутентификации клиентом (по умолчанию: `3s`). |
  27. | **Максимальный простой** | Таймаут бездействия (в секундах) перед закрытием неактивных QUIC-соединений (по умолчанию: `15s`). |
  28. | **Максимальный размер пакета** | Максимальный размер пакета UDP-релея в байтах (по умолчанию: `1500`). |
  29. ## Настройка в панели
  30. <Steps>
  31. <Step>
  32. ### Добавьте инбаунд
  33. Создайте новый инбаунд и выберите протокол **TUIC**. Задайте UDP-порт (например, `8443` или `443`).
  34. </Step>
  35. <Step>
  36. ### Укажите TLS-сертификат
  37. Укажите пути к файлам сертификата и приватного ключа (или вставьте их содержимое напрямую). Убедитесь, что поле SNI совпадает с доменом сертификата.
  38. </Step>
  39. <Step>
  40. ### Настройте параметры QUIC
  41. Панель автоматически подставляет рекомендованные настройки (`bbr`, `h3`, `native`). При необходимости настройте таймауты или включите **Zero-RTT Handshake**.
  42. </Step>
  43. <Step>
  44. ### Добавьте клиентов
  45. Для каждого клиента требуется **Email** (идентификатор), **UUID** (токен) и **Пароль**. Панель автоматически генерирует надёжные случайные данные при создании клиента.
  46. </Step>
  47. <Step>
  48. ### Экспортируйте и подключитесь
  49. Скопируйте ссылку `tuic://…` или откройте **окно QR-кода**, чтобы скачать готовый конфигурационный файл **Clash / Mihomo YAML**.
  50. </Step>
  51. </Steps>
  52. ## Поддержка клиентами и конфигурация
  53. TUIC v5 поддерживается всеми популярными клиентами, включая **Clash Verge Rev**, **Mihomo**, **Flclash**, **sing-box** и **v2rayN**.
  54. ### Конфигурация Clash / Mihomo
  55. Панель предоставляет автоматический экспорт в формат YAML прямо в окне QR-кода клиента:
  56. ```yaml title="clash-tuic.yaml"
  57. proxies:
  58. - name: "3x-ui-tuic"
  59. type: tuic
  60. server: vpn.example.com
  61. port: 8443
  62. uuid: 8a47f2b1-5e8c-4a3d-9b1e-7f6c5d4a3b2a
  63. password: secure-random-password
  64. alpn:
  65. - h3
  66. sni: vpn.example.com
  67. congestion-controller: bbr
  68. udp-relay-mode: native
  69. reduce-rtt: false
  70. skip-cert-verify: false
  71. ```
  72. ### Формат ссылки для обмена
  73. Ссылки TUIC используют стандартный формат URI:
  74. ```text
  75. tuic://<uuid>:<password>@<host>:<port>?congestion_control=bbr&alpn=h3&sni=vpn.example.com&udp_relay_mode=native&allow_insecure=0#Remark
  76. ```
  77. ## Архитектура и примечания
  78. <Callout type="info">
  79. - **Автономный сайдкар**: Панель поставляется со скомпилированными статическими `musl`-бинарниками `tuic-server` для Linux (amd64, arm64, armv7, 386) и исполняемым файлом для Windows.
  80. - **Учёт трафика и лимиты**: Панель сама занимает публичный UDP-порт инбаунда небольшим relay и запускает `tuic-server` за ним на loopback-порту, поэтому входящие и исходящие байты инбаунда считаются точно на любой ОС и ограничиваются на **уровне инбаунда** (`inbounds.total`); в логах `tuic-server` адресом каждого клиента будет `127.0.0.1`. Поскольку апстрим `tuic-server` не предоставляет внутреннего API метрик по отдельным пользователям, персональные квоты трафика (`totalGB`) для клиентов TUIC не поддерживаются. Доступ клиентов контролируется по сроку действия (`expiryTime`) и переключателю активности.
  81. - **Статус онлайн и «старт после первого использования»**: Панель определяет активность клиента по строкам Info в логе сайдкара (в них есть UUID клиента), поэтому этим функциям нужен уровень логов `info` или `debug`; `warn` и `error` их отключают.
  82. - **Изменения клиентов и соединения**: Поскольку апстрим `tuic-server` не поддерживает динамическую перезагрузку пользователей без перезапуска, любое изменение списка клиентов (добавление, редактирование или отключение) перезапускает процесс сайдкара и кратковременно сбрасывает активные соединения.
  83. - **Развёртывание**: Поскольку TUIC управляется локальным процессом хоста, такие инбаунды работают локально на главной панели.
  84. </Callout>