* docs: add TUIC v5 to READMEs, guides, and protocol references * docs: address review feedback on TUIC architecture, external links, and i18n parity * docs(tuic): drop the Xray-routing claim and qualify Limit IP for TUIC The README feature bullet in all seven locales credited the TUIC sidecar with "seamless Xray routing". A TUIC inbound never enters the Xray config (internal/web/service/xray.go skips model.TUIC) and the generated tuic-server config carries no forwarding target, so decrypted TUIC traffic egresses from the sidecar directly and Xray routing rules never see it; docs/architecture.md in this same branch already says so. An operator reading the bullet would expect geo blocking and outbound selection to cover TUIC clients. The client field table marks Total (GB) as inbound-level for TUIC but left Limit IP at "all". The IP-limit job's only data source is Xray's online-stats API (internal/web/job/check_client_ip_job.go), which TUIC clients never reach, so a Limit IP set on a TUIC client is silently unenforced. Qualify that row the same way in en, fa, ru and zh. --------- Co-authored-by: Sanaei <ho3ein.sanaei@gmail.com>
20 KiB
English | فارسی | العربية | 中文 | Español | Русский | Türkçe
3X-UI — продвинутая веб-панель управления с открытым исходным кодом для управления серверами Xray-core. Она предоставляет аккуратный многоязычный интерфейс для развёртывания, настройки и мониторинга широкого спектра протоколов прокси и VPN — от одного VPS до развёртываний с несколькими узлами.
Созданный как улучшенный форк оригинального проекта X-UI, 3X-UI добавляет более широкую поддержку протоколов, повышенную стабильность, учёт трафика по каждому клиенту и множество функций для удобства использования.
Important
Этот проект предназначен только для личного использования. Пожалуйста, не используйте его в незаконных целях или в производственной среде.
Возможности
- Многопротокольные входящие подключения — VLESS, VMess, Trojan, Shadowsocks, WireGuard, AmneziaWG, TUIC v5, Hysteria2, MTProto, HTTP, SOCKS (Mixed), Dokodemo-door / Tunnel и TUN.
- Современные транспорты и безопасность — TCP (Raw), mKCP, WebSocket, gRPC, HTTPUpgrade и XHTTP, защищённые с помощью TLS, XTLS и REALITY.
- Встроенный AmneziaWG — устойчивый к DPI WireGuard работает прямо в панели на сетевом стеке в пространстве пользователя: без модуля ядра, DKMS и дополнительных пакетов.
- Встроенный TUIC v5 — высокопроизводительный прокси на базе QUIC с нативным учётом трафика через UDP-релей, 0-RTT рукопожатиями и контролем перегрузок BBR.
- MTProto-прокси — секреты FakeTLS, ad-tag и квоты для каждого клиента применяются на лету, не разрывая существующие соединения.
- Fallback — обслуживание нескольких протоколов на одном порту (например, VLESS и Trojan на 443) с помощью функции fallback в Xray.
- Управление по каждому клиенту — квоты трафика, даты истечения, лимиты IP с исключениями для доверенных адресов, лимиты устройств (HWID), запланированные циклы продления, статус «онлайн» в реальном времени, а также ссылки для общего доступа, QR-коды и подписки в один клик.
- Статистика трафика — по каждому входящему, по каждому клиенту и по каждому исходящему, с возможностью сброса.
- Поддержка нескольких узлов — управление и масштабирование на несколько серверов из одной панели, включая клонирование входящих на другие узлы.
- Исходящие подключения и маршрутизация — WARP, NordVPN, PIA, пользовательские правила маршрутизации, балансировщики нагрузки с переключением между балансировщиками и цепочки исходящих прокси. Встроенные категории geosite и geoip можно просматривать прямо в редакторе правил.
- Встроенный сервер подписок — вывод в форматах raw, JSON и Clash, выбираемый автоматически по User-Agent клиента, а также пользовательские шаблоны страниц.
- Telegram-бот для удалённого мониторинга и управления.
- RESTful API с токенами ограниченной области действия и необязательным сроком действия, а также справочником API внутри панели.
- Устанавливаемая панель (PWA) — закрепите 3X-UI на рабочем столе или главном экране телефона.
- Гибкое хранилище — SQLite (по умолчанию) или PostgreSQL.
- 13 языков интерфейса с тёмной и светлой темами.
- Интеграция с Fail2ban для применения лимитов IP по каждому клиенту.
Скриншоты
Быстрый старт
bash <(curl -Ls https://raw.githubusercontent.com/mhsanaei/3x-ui/master/install.sh)
Чтобы установить конкретную версию, добавьте её тег (например, v3.7.0):
bash <(curl -Ls https://raw.githubusercontent.com/mhsanaei/3x-ui/master/install.sh) v3.7.0
Чтобы установить скользящую dev-сборку (новейший предварительный релиз по каждому коммиту из ветки main, а не стабильный релиз), передайте dev-latest:
bash <(curl -Ls https://raw.githubusercontent.com/mhsanaei/3x-ui/master/install.sh) dev-latest
Во время установки генерируются случайные имя пользователя, пароль и путь доступа. После установки выполните x-ui, чтобы открыть меню управления, где можно запускать/останавливать сервис, просматривать или сбрасывать учётные данные для входа, управлять SSL-сертификатами и многое другое.
Каждый файл релиза публикуется вместе с контрольной суммой .sha256. И install.sh, и программа обновления сверяют архив с этой суммой и прерывают работу при несовпадении.
Полную документацию — установка, настройка, эксплуатация и полный справочник API — смотрите на docs.sanaei.dev.
Автоматическая установка
Установщик также работает в неинтерактивном режиме для cloud-init.
Задайте XUI_NONINTERACTIVE=1 (или передайте по конвейеру без TTY), и установка пройдёт от начала до конца
без единого запроса: будут сгенерированы случайные учётные данные и записаны в
/etc/x-ui/install-result.env. Смотрите deploy/ для:
- Cloud-init user-data — автоматическая установка в любом облаке (Hetzner/AWS/DO/Vultr/GCP/Azure/Oracle)
- Заметки по Hetzner Cloud — развёртывание на Hetzner на базе cloud-init
Поддерживаемые платформы
Операционные системы: Ubuntu, Debian, Armbian, Fedora, CentOS, RHEL, AlmaLinux, Rocky Linux, Oracle Linux, Amazon Linux, Virtuozzo, Arch, Manjaro, Parch, openSUSE (Tumbleweed / Leap), Alpine и Windows.
Архитектуры: amd64 · 386 · arm64 (aarch64) · armv7 · armv6 · armv5 · s390x.
Варианты базы данных
3X-UI поддерживает два бэкенда, выбираемых при установке:
- SQLite (по умолчанию) — единый файл по пути
/etc/x-ui/x-ui.db. Без настройки, идеально для небольших и средних развёртываний. - PostgreSQL — рекомендуется при большом числе клиентов или конфигурациях с несколькими узлами. Установщик может установить PostgreSQL локально за вас или принять DSN к существующему серверу.
Во время выполнения бэкенд выбирается через переменные окружения (установщик записывает их за вас в /etc/default/x-ui):
XUI_DB_TYPE=postgres
XUI_DB_DSN=postgres://xui:password@127.0.0.1:5432/xui?sslmode=disable
Перенос существующей установки SQLite в PostgreSQL
x-ui migrate-db --dsn "postgres://xui:password@127.0.0.1:5432/xui?sslmode=disable"
# затем задайте XUI_DB_TYPE и XUI_DB_DSN в /etc/default/x-ui и перезапустите:
systemctl restart x-ui
Исходный файл SQLite остаётся нетронутым; удалите его вручную после проверки нового бэкенда.
Docker
Команда по умолчанию docker compose up -d продолжает использовать SQLite. Чтобы запустить со встроенным сервисом PostgreSQL, раскомментируйте две строки переменных окружения XUI_DB_* в docker-compose.yml и запустите с профилем:
docker compose --profile postgres up -d
Образ включает Fail2ban (включён по умолчанию) для применения лимитов IP по каждому клиенту. Fail2ban блокирует нарушителей с помощью iptables, что требует возможности NET_ADMIN. docker-compose.yml уже предоставляет её через cap_add; если вы вместо этого запускаете контейнер через docker run, добавьте возможности самостоятельно, иначе блокировки будут регистрироваться, но никогда не применяться:
docker run -d --cap-add=NET_ADMIN --cap-add=NET_RAW ... ghcr.io/mhsanaei/3x-ui
Переменные окружения
| Переменная | Описание | По умолчанию |
|---|---|---|
XUI_DB_TYPE |
Бэкенд базы данных: sqlite или postgres |
sqlite |
XUI_DB_DSN |
Строка подключения PostgreSQL (когда XUI_DB_TYPE=postgres) |
— |
XUI_DB_FOLDER |
Каталог для файла базы данных SQLite | /etc/x-ui |
XUI_DB_MAX_OPEN_CONNS |
Максимум открытых соединений (пул PostgreSQL) | — |
XUI_DB_MAX_IDLE_CONNS |
Максимум простаивающих соединений (пул PostgreSQL) | — |
XUI_INIT_WEB_BASE_PATH |
Начальный URI-путь для веб-панели | / |
XUI_ENABLE_FAIL2BAN |
Включить применение лимитов IP на основе Fail2ban | true |
XUI_LOG_LEVEL |
Уровень логирования (debug, info, warning, error) |
info |
XUI_DEBUG |
Включить режим отладки | false |
XUI_TUNNEL_HEALTH_MONITOR |
Включить монитор состояния туннеля (опрашивает URL и перезапускает xray после многократных сбоев; перезапуск отключает всех клиентов) | false |
XUI_TUNNEL_HEALTH_PROXY |
Прокси, через который отправляется проба; укажите локальный входящий xray, чтобы проба проверяла туннель (например, socks5://127.0.0.1:1080). Пустое значение означает, что проба проверяет только связь с хостом |
— |
XUI_TUNNEL_HEALTH_URL |
URL, опрашиваемый для проверки состояния туннеля | https://www.cloudflare.com/cdn-cgi/trace |
XUI_TUNNEL_HEALTH_INTERVAL |
Интервал между пробами | 30s |
XUI_TUNNEL_HEALTH_TIMEOUT |
Таймаут на одну пробу | 10s |
XUI_TUNNEL_HEALTH_FAILURES |
Число последовательных сбоев до запуска перезапуска | 3 |
XUI_TUNNEL_HEALTH_COOLDOWN |
Минимальная задержка между последовательными перезапусками | 5m |
NODE_TOKEN_ENCRYPTION |
Шифрование API-токенов узлов при хранении: off, migration или required (без префикса XUI_) |
off |
XUI_NODE_TOKEN_KEY_FILE |
JSON-связка ключей (режим 0600) с идентификатором активного ключа и 32-байтными ключами в base64 |
/etc/x-ui/node_token_key.json |
XUI_NODE_TOKEN_KEY |
Один 32-байтный ключ в base64; используется, только если файл ключей не удалось загрузить | — |
Полный список — в справочнике переменных окружения.
Поддерживаемые языки
Интерфейс панели доступен на 13 языках:
English · فارسی · العربية · 中文(简体) · 中文(繁體) · Español · Русский · Українська · Türkçe · Tiếng Việt · 日本語 · Bahasa Indonesia · Português (Brasil)
Участие в разработке
Вклад приветствуется. Пожалуйста, прочитайте руководство по участию, прежде чем открывать issue или pull request.
Особая благодарность
Благодарности
- Iran v2ray rules (Лицензия: GPL-3.0): Улучшенные правила маршрутизации для v2ray/xray и v2ray/xray-clients со встроенными иранскими доменами и фокусом на безопасность и блокировку рекламы.
- Russia v2ray rules (Лицензия: GPL-3.0): Этот репозиторий содержит автоматически обновляемые правила маршрутизации V2Ray на основе данных о заблокированных доменах и адресах в России.
Инструменты сообщества
Инструменты и интеграции, созданные сообществом вокруг 3x-ui.
- terraform-provider-3x-ui (Лицензия: MIT): Управление входящими, клиентами, настройками панели и конфигурацией Xray через код с помощью Terraform / OpenTofu.
- 3X-UI Manager (Лицензия: MIT): Нативный Android-клиент для 3x-ui — дашборд, входящие, клиенты с QR, узлы и управление несколькими панелями. Доступен в F-Droid.
Поддержка проекта
Если этот проект полезен для вас, вы можете поставить ему🌟




