Remove the release-driven Packer AMI/qcow2 pipeline and everything that existed only to feed it: the image.yml workflow, deploy/packer, deploy/lightsail, deploy/firstboot, the AWS Marketplace checklist, and the first-boot smoke test/job. Keep the cloud-agnostic unattended-install path (cloud-init + install.sh non-interactive) and the Hetzner notes, which never depended on the workflow. Hetzner's snapshot path is dropped too since it relied on firstboot to avoid admin/admin on clones; cloud-init regenerates per-instance credentials on its own. Update deploy/README, the cloud-init and Hetzner docs, the root README plus its six translations, and .gitattributes to match.
16 KiB
English | فارسی | العربية | 中文 | Español | Русский | Türkçe
3X-UI — продвинутая веб-панель управления с открытым исходным кодом для управления серверами Xray-core. Она предоставляет аккуратный многоязычный интерфейс для развёртывания, настройки и мониторинга широкого спектра протоколов прокси и VPN — от одного VPS до развёртываний с несколькими узлами.
Созданный как улучшенный форк оригинального проекта X-UI, 3X-UI добавляет более широкую поддержку протоколов, повышенную стабильность, учёт трафика по каждому клиенту и множество функций для удобства использования.
Important
Этот проект предназначен только для личного использования. Пожалуйста, не используйте его в незаконных целях или в производственной среде.
Возможности
- Многопротокольные входящие подключения — VLESS, VMess, Trojan, Shadowsocks, WireGuard, Hysteria2, HTTP, SOCKS (Mixed), Dokodemo-door / Tunnel и TUN.
- Современные транспорты и безопасность — TCP (Raw), mKCP, WebSocket, gRPC, HTTPUpgrade и XHTTP, защищённые с помощью TLS, XTLS и REALITY.
- Fallback — обслуживание нескольких протоколов на одном порту (например, VLESS и Trojan на 443) с помощью функции fallback в Xray.
- Управление по каждому клиенту — квоты трафика, даты истечения, лимиты IP, статус «онлайн» в реальном времени, а также ссылки для общего доступа, QR-коды и подписки в один клик.
- Статистика трафика — по каждому входящему, по каждому клиенту и по каждому исходящему, с возможностью сброса.
- Поддержка нескольких узлов — управление и масштабирование на несколько серверов из одной панели.
- Исходящие подключения и маршрутизация — WARP, NordVPN, пользовательские правила маршрутизации, балансировщики нагрузки и цепочки исходящих прокси.
- Встроенный сервер подписок с несколькими форматами вывода и пользовательскими шаблонами страниц.
- Telegram-бот для удалённого мониторинга и управления.
- RESTful API с документацией Swagger внутри панели.
- Гибкое хранилище — SQLite (по умолчанию) или PostgreSQL.
- 13 языков интерфейса с тёмной и светлой темами.
- Интеграция с Fail2ban для применения лимитов IP по каждому клиенту.
Скриншоты
Быстрый старт
bash <(curl -Ls https://raw.githubusercontent.com/mhsanaei/3x-ui/master/install.sh)
Чтобы установить конкретную версию, добавьте её тег (например, v3.4.0):
bash <(curl -Ls https://raw.githubusercontent.com/mhsanaei/3x-ui/master/install.sh) v3.4.0
Чтобы установить скользящую dev-сборку (новейший предварительный релиз по каждому коммиту из ветки main, а не стабильный релиз), передайте dev-latest:
bash <(curl -Ls https://raw.githubusercontent.com/mhsanaei/3x-ui/master/install.sh) dev-latest
Во время установки генерируются случайные имя пользователя, пароль и путь доступа. После установки выполните x-ui, чтобы открыть меню управления, где можно запускать/останавливать сервис, просматривать или сбрасывать учётные данные для входа, управлять SSL-сертификатами и многое другое.
Полную документацию смотрите в вики проекта.
Автоматическая установка
Установщик также работает в неинтерактивном режиме для 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 |
Поддерживаемые языки
Интерфейс панели доступен на 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.
Поддержка проекта
Если этот проект полезен для вас, вы можете поставить ему🌟




