Replace the kernel-module/DKMS/awg-quick description (What's different, Supported Platforms, Acknowledgment) with the embedded amneziawg-go + gVisor architecture, and note the temporarily-unsupported per-client IPv6 identity and port-forwarding gap until their fast-follow releases.
23 KiB
English | فارسی | العربية | 中文 | Español | Русский | Türkçe
Это личный форк 3X-UI — продвинутой веб-панели с открытым исходным кодом для управления серверами Xray-core — с одним крупным дополнением: нативной поддержкой AmneziaWG, добавленной как полноценный протокол наравне с VLESS, VMess, Trojan и остальными. Всё остальное, что умеет 3X-UI (многопротокольные входящие, учёт трафика по клиентам, подписки, несколько узлов, Telegram-бот), не изменено и работает точно так же, как в оригинале.
Этот форк существует, чтобы обслуживать собственные роутеры и серверы автора; он не пытается заменить или конкурировать с оригинальным проектом. Если вам нужна универсальная панель — обращайтесь к MHSanaei/3x-ui; всё, что написано ниже, документирует только отличия этого форка.
Important
Этот проект предназначен только для личного использования. Пожалуйста, не используйте его в незаконных целях или в производственной среде.
Чем этот форк отличается: AmneziaWG
AmneziaWG — это WireGuard с добавленным слоем обфускации (мусорные пакеты, случайный паддинг, переписывание магических заголовков), который призван обмануть DPI-фингерпринтинг протокола: тот же туннель, но не выглядящий как туннель в трафике.
- Встроено, а не модуль ядра. AmneziaWG работает целиком внутри процесса панели (amneziawg-go поверх пользовательского сетевого стека) — никакой сборки DKMS, никакого конфликта с Secure Boot, никаких привилегированных сайдкар-контейнеров и вообще ничего ставить на хост не нужно.
- Полноценный протокол. AmneziaWG-инбаунд живёт в той же таблице
Inbound, что и всё остальное, поэтому бесплатно получает bulk-операции, модалку QR/скачивания конфига и ссылки подписки — учить ничего отдельного не нужно. - Полная обфускация AmneziaWG 2.0 — Jc/Jmin/Jmax (мусорные пакеты), S1–S4 (паддинг пакетов), H1–H4 (магические заголовки) и сигнатурный пакет I1, всё редактируется по каждому инбаунду с кнопкой генерации одним кликом, плюс совместимый с 1.x режим для старых клиентов.
- Трафик каждого клиента уже идёт через Xray. Никакого TPROXY, никакого моста, который нужно включать отдельно: каждый AmneziaWG-инбаунд напрямую передаёт трафик в свой loopback-инбаунд SOCKS5 в Xray, поэтому статистика по клиентам, онлайн-статус, sniffing и правила уже существующего меню «Маршрутизация» работают точно так же, как для любого другого протокола — без дополнительной настройки.
- Настоящие ссылки
vpn://— ссылка-копия/QR у клиента и endpoint подписки отдают тот самый форматvpn://, который ожидает официальное приложение AmneziaVPN (base64url обычного.conf), а не выдуманный формат URI, который оно не могло импортировать. - Временно не поддерживается после этого перехода: отдельный публичный IPv6-адрес на каждого клиента и проброс портов по клиентам — обе функции опирались на хостовые правила iptables старого модуля ядра, а у встроенной архитектуры пока нет их аналога. Обе запланированы отдельными релизами следом; уже сохранённые настройки для них никуда не делись, просто пока не действуют.
Другие изменения в этом форке
Более мелкие изменения этого форка, не связанные с AmneziaWG, добавляются сюда по мере появления:
- Автокомплит правил маршрутизации — поля IP/Домен в редакторе правил маршрутизации Xray теперь подсказывают категории geosite/geoip (например, при вводе «you» предложит
geosite:youtube), формируемые прямо из тех.dat-файлов, что реально установлены в папке bin Xray — включая кастомные файлы, добавленные через функцию автообновления Geodata (например,geosite_roscom.dat). Свободный ввод текста по-прежнему работает как раньше. - Live-скорость для AmneziaWG и MTProto — колонка Speed показывала «--» для инбаундов/клиентов AmneziaWG и MTProto (
mtg), хотя суммарный трафик считался верно — ни один из них не работает внутри собственного рантайма Xray-core и поэтому невидим для его stats API. Теперь оба протокола транслируют live-скорость наравне со всеми остальными. - Кастомные файлы в
bin/переживают обновления — переустановка/обновление раньше полностью стирали папкуbin/перед распаковкой нового релиза, тихо удаляя всё, что было туда добавлено вручную (чаще всего — кастомный geoip/geosite-файл, на который ссылается правило маршрутизации черезext:<file>:<code>), и ломая все инбаунды при следующем запуске. Теперь инсталлятор сначала бэкапитbin/и восстанавливает только то, чего нет в новом релизе.
Возможности
- Многопротокольные входящие подключения — VLESS, VMess, Trojan, Shadowsocks, WireGuard, AmneziaWG, 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 по каждому клиенту.
Скриншоты
Быстрый старт
curl -fsSL https://raw.githubusercontent.com/Kuzz007/3x-ui/main/install.sh | bash
Чтобы установить конкретную версию, добавьте её тег (например, v3.5.0-awg.1):
curl -fsSL https://raw.githubusercontent.com/Kuzz007/3x-ui/main/install.sh | bash -s v3.5.0-awg.1
Чтобы установить скользящую сборку dev (последний пре-релиз по коммитам из main, не стабильный релиз), передайте dev:
curl -fsSL https://raw.githubusercontent.com/Kuzz007/3x-ui/main/install.sh | bash -s dev
Собственные стабильные релизы этого форка помечаются тегом <базовая версия апстрима>-awg.N (например, v3.5.0-awg.1, построен поверх того, что апстрим называет v3.5.0) — никогда просто vX.Y.Z — чтобы их нельзя было спутать с настоящим релизом MHSanaei/3x-ui того же номера.
Во время установки генерируются случайные имя пользователя, пароль и путь доступа. После установки выполните x-ui, чтобы открыть меню управления, где можно запускать/останавливать сервис, просматривать или сбрасывать учётные данные для входа, управлять SSL-сертификатами и многое другое.
Общую документацию по панели, помимо этого README, смотрите в оригинальной вики проекта — там ничего специфичного для этого форка, так что всё актуально.
Автоматическая установка
Установщик также работает в неинтерактивном режиме для 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; в CI этого форка её нет — здесь всё нацелено на Linux-серверы/роутеры.)
Архитектуры: amd64 · 386 · arm64 (aarch64) · armv7 · armv6 · armv5 · s390x.
AmneziaWG встроен прямо в бинарник панели (см. Чем этот форк отличается: AmneziaWG) — никакого модуля ядра, никакого отдельного шага установки, никакой специфики под конкретный дистрибутив.
Варианты базы данных
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 остаётся нетронутым; удалите его вручную после проверки нового бэкенда.
Переменные окружения
| Переменная | Описание | По умолчанию |
|---|---|---|
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)
Заметки для разработчика
Это личный форк, и он не ищет сторонних контрибьюторов, но в CONTRIBUTING.md по-прежнему актуальные и полезные инструкции по локальной настройке разработки (версии Go/Node, C-компилятор для CGo, команды сборки/линта/тестов) — пригодится, если сами будете работать с этим кодом.
Благодарность
Этот форк полностью построен поверх MHSanaei/3x-ui — вся панель, поддержка множества протоколов и базовая архитектура — их работа; единственное, что добавлено здесь — поддержка AmneziaWG. Если оригинальный проект оказался вам полезен, ссылки на поддержку автора всё ещё актуальны:
Реализация AmneziaWG в этом форке портирована/вдохновлена:
- amnezia-vpn/amneziawg-go — пользовательская реализация AmneziaWG, которую этот форк встраивает прямо в процесс панели поверх сетевого стека gVisor, заменяя собой прежний бэкенд на основе модуля ядра ниже.
- MHSanaei/3x-ui#6086 — оригинальный PR с AmneziaWG в апстрим (подход через Docker-сайдкар); этот форк переиспользует его фронтенд-схему/структуру UI.
- coinman-dev/3ax-ui — независимый форк, уже использующий нативный AmneziaWG в проде; прежний менеджер этого форка на основе модуля ядра (
awg-quick) и генератор параметров обфускации AmneziaWG 2.0 были портированы из его пакетаawg/до этого перехода.
Благодарности
- alireza0
- 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.




