Repository navigation
Releases: Shepard86rus/3x-ui-dual-domain
Release list
v0.5.8
install больше не обрывается перезагрузкой посреди установки.
Что исправлено
- Предпроверка ядра в самом начале install: если ядро устарело (для него нет заголовков) или уже ждёт перезагрузки, скрипт предлагает обновить систему, перезагружает сервер и просит запустить install заново. Установка идёт уже на свежем ядре.
- Установщик панели больше не перезагружает сервер сам посреди установки после установки нового ядра для AmneziaWG (отключено в скачанном install.sh; если текст апстрима изменится, скрипт предупредит).
- Итоговый экран: если после установки нужна перезагрузка, она стоит первым пунктом, в конце спрашивается «Перезагрузить сервер сейчас?».
- healthcheck [9]: подсказывает перезагрузку, если модуль AWG ещё не загружен из-за нового ядра.
- Контейнеры, запуск без терминала и SKIP_KERNEL_PREFLIGHT=1 предпроверку пропускают; на уже настроенном сервере вопрос по умолчанию «нет».
Проверено: аудит, прогон на чистой Ubuntu 24.04 со старым ядром (87 проверок OK, 0 провалено).
Обновление существующих нод: sudo bash /root/3x-ui-dual-domain.sh upgrade
v0.5.7
Точечные правки по аудиту ZCode релиза v0.5.6. Новых функций нет.
- add-xhttp: проверка бэкапа БД перед правкой; если инбаунд на 127.0.0.1:8447 уже есть, команда отказывает и подсказывает remove-xhttp (дубль не создаётся)
- откат и remove-xhttp: сбой запуска x-ui больше не обрывает команду молча, печатается предупреждение
- healthcheck [4]: исключение XHTTP-инбаунда только по порту и listen (тег может переименоваться)
- install: INSTALL_SELF принимается только если это скрипт (запуск через curl | bash)
- upgrade: защита от параллельного запуска (flock)
Обновление: bash 3x-ui-dual-domain.sh upgrade
v0.5.6 — третий вход XHTTP+Reality, аккуратный конец установки
Что нового
- Третий вход XHTTP+Reality на отдельном имени, без CDN: команды
add-xhttp <имя>иremove-xhttp. Свой сертификат и сайт-заглушка, гость без ключа видит обычный сайт. - Встроено в установку: необязательный вопрос про третье имя. Если с XHTTP что-то не вышло, основная схема всё равно ставится.
- Конец установки стал понятнее: одна итоговая сводка (панель, логин и пароль, подписки, что работает, что сделать сейчас), подробности в логе.
healthcheck: новый блок проверки XHTTP,rebind-ipучитывает третье имя.
Важно знать
XHTTP и Reality работают в клиентах на ядре Xray (например INCY). Клиенты на ядре mihomo (Clash Verge, XKeen) с Xray 26.9.8+ и отпечатком firefox не подключаются, подробности в docs/xhttp.md.
Обновление
Для установленных серверов: sudo bash 3x-ui-dual-domain.sh upgrade.
v0.5.5 — безопасный upgrade (sha256), защита от ложных откатов
v0.5.5 — правки по перекрёстному аудиту v0.5.4
Безопасность
upgradeтеперь качает ассет последнего релиза и сверяет sha256 с3x-ui-dual-domain.sh.sha256(раньше — rawmainбез проверки). Нет файла суммы или она не сошлась — отказ. Веткаmainзащищена (только через PR).- Бот: убрана кнопка «⬆ Панель (update)» (слепой ввод в меню под root), проверяется автор команды (
from.id).
Надёжность
- x-ui, остановленный
add-h2/add-reality-front, при любом выходе скрипта запускается обратно (trap). - Нет xray-бинаря для пробы = «не проверено», а не провал самотеста и откат.
- Повторный
add-reality-frontчитает параметры Reality-пробы из БД; без пробы «ГОТОВО» сопровождается предупреждением. Пробы берут только включённого неистёкшего клиента. - AAAA-проверка без ложных FAIL (таймаут dig, CNAME; три резолвера; нет ответа — WARN).
add-h2не затирает нештатные fallbacks (принудительно:LUCX_FORCE_FALLBACKS=1).- healthcheck: все AWG-порты в whitelist UDP;
get_server_ipс локальными источниками; свободные порты проб;upgradeпишет маркер версии.
Известные ограничения (отложено): самотест идёт ключом реального клиента; мёртвая Reality-only ветка install; Н7.
Файлы релиза: 3x-ui-dual-domain.sh и 3x-ui-dual-domain.sh.sha256 (оба обязательны для upgrade).
v0.5.4: h2 + Reality перед TLS на одном 443, add-h2, add-reality-front
Что нового
- Установка без вопроса о режиме: всегда VLESS+TLS+Vision на 443, h2 и Reality перед TLS (nginx stream SNI-роутер → 127.0.0.1:8446). Отключение: H2=0, REALITY_FRONT=0.
- Самотест через публичный IP с временными клиентами; при провале nginx возвращается на 443, установка продолжается.
- Новые команды для ретрофита: add-h2, add-reality-front (идемпотентны, с бэкапом и авто-откатом).
- add-reality блокируется, пока активен Reality-front.
- healthcheck: блок [7a] (alpn/fallback h2, h2c 8081, ALPN h2 снаружи, параметры Reality-инбаунда, слушатель 8446).
- Исправления по аудиту: acceptProxyProtocol при reuse, подсказка про add-h2, выбор клиента для пробы.
Проверено
Чистая установка на тестовой ноде: healthcheck 77 OK / 0 FAIL, самотест TLS и Reality OK, живой клиент по обеим ссылкам, сертификаты из бэкапа без нового выпуска Let's Encrypt.
Откат
Предыдущие версии скрипта сохранены. Ретрофит-команды печатают путь бэкапа и команду восстановления.
v0.5.3 — авто-настройка инбаундов и подписок, клиенты видны сразу
- Инбаунды VLESS/HY2: адрес в ссылке = REALITY_DOMAIN (custom), uTLS firefox — автоматически
- Рекомендованные настройки подписок (Clash/Mihomo, Happ, Incy); правила Clash скачиваются по тегу релиза (clash-universal.yaml, нужен Mihomo ≥ 1.19)
- После создания инбаундов вызывается x-ui migrate — клиенты сразу видны на странице Clients (lucx .302)
- certbot --keep-until-expiring: существующий не просроченный сертификат не перевыпускается
- Итоговый текст установки: что сделано автоматически и что осталось вручную
- Только для новой установки; существующие ноды не меняются
v0.5.2
- install не создаёт дубли строк webListen/webPort/webBasePath в settings
(INSERT OR IGNORE → INSERT ... SELECT ... WHERE NOT EXISTS)
v0.5.1
- HSTS на заглушках (новые установки)
- Vision по умолчанию для VLESS+TLS (install, add-vls, ссылки)
- hc [14]: счётчик попыток входа по SSH (справочно)
- PSI_WARN_PCT: порог io-давления вынесен в переменную
- add-swap / remove-swap (по явной команде)
- Бот: управление клиентами (создать, удалить, список), sub-ссылка на VLESS+Hy2
- hc [12]: проверка API-токена панели
- README: как создать API-токен
- tools/hub: черновик модуля клиентов для хаб-бота
v0.5.0 — drop-in песочницы AWG больше не нужен (панель lucx.292+)
v0.5.0 — drop-in песочницы AWG больше не нужен (панель lucx.292+)
Причина релиза: панель lucx.292 сама разрешает запись в /etc/amnezia (путь добавлен в ReadWritePaths юнита x-ui в install/update), поэтому drop-in 20-awg-amnezia.conf из v0.4.9 больше не нужен.
- install/upgrade больше не ставят drop-in; команда
ensure-awg-dropinоставлена безвредной заглушкой (апгрейд из v0.4.9 её вызывает) - healthcheck [13] проверяет факт — что реально разрешено юниту x-ui (
systemctl show x-ui -p ReadWritePaths), а не наличие нашего файла; FAIL только если есть AWG-инбаунды, а юнит не может писать в/etc/amnezia(панель lucx.291) — совет: обновить панель до lucx.292+ - healthcheck [13]: предупреждение (WARN), если диск ВМ подвисает (PSI
io full avg300 ≥ 3%) — такие подвисания дают «database is locked» в панели - Telegram-бот: кнопка «Бэкап БД» делает копию через
sqlite3 .backup(простойcpживой базы в WAL-режиме неполный); чтобы получить новое тело бота:sudo bash 3x-ui-dual-domain.sh add-bot(токен и настройки сохраняются) - исправлен текст ошибки про выбор типа БД; README: абзац про песочницу и AWG переписан
Уже поставленные drop-in'ы безвредны: скрипт их не трогает, при желании удаляются вручную (rm + systemctl daemon-reload).