Ivan RazinandClaude Opus 4.8 fb68047c02 Fix diag 404: derive panel domain from webCertFile, purge stale vhosts
The diagnostics page 404'd because the fresh panel vhost (with the diag
SSO bridge) was written to the wrong filename and never served: the
nginx-scan domain detection picked the wrong panel domain when stale /
duplicate vhost files from older installs lingered (the loop result is
glob/locale-order dependent, and a leftover panel vhost shadowed the real
one by server_name). The vhost that actually served traffic was a stale,
pre-bridge config, so /<panel>/diag fell through to a 404.

- Panel domain now comes from the authoritative source, the cert x-ui is
  configured with (DB webCertFile -> /root/cert/<domain>/ or
  /etc/letsencrypt/live/<domain>/); nginx scan is only a fallback, and it
  no longer overwrites an already-resolved domain.
- Skip 00-maps.conf in the detection loop.
- At activation: remove stale panel/reality vhost FILES whose name doesn't
  match the managed domains, wipe ALL sites-enabled symlinks, then relink
  only the four managed configs — so nothing stale can stay loaded and
  shadow the panel vhost.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-06 09:55:57 +03:00

3x-ui-pro

Автоматическая установка панели 3x-ui с nginx, SSL, Clash-подпиской и диагностикой сети.

  • Debian 12 / Ubuntu 24
  • Два домена или поддомена (для панели и для REALITY)
  • Автоматическое обновление SSL-сертификатов
  • Поддержка VLESS+REALITY, VLESS+WebSocket, VLESS+XHTTP, Trojan+gRPC — всё через порт 443

Что устанавливается

Компонент Описание
3x-ui VPN-панель с веб-интерфейсом
nginx Обратный прокси, SNI-роутинг
certbot Let's Encrypt SSL
Clash-подписка Автоматическая выдача clash.yaml по User-Agent
Диагностика MTR-трейсер + тест скорости в браузере
Фейковый сайт Случайный HTML-сайт-прикрытие
Бэкап Скрипт резервного копирования

Установка

Шаг 1 — скачать скрипт

wget -qO x-ui-latest.sh https://raw.githubusercontent.com/mozaroc/3x-ui-pro/main/x-ui-latest.sh

Шаг 2 — запустить

bash x-ui-latest.sh -install y -subdomain panel.example.com -reality_domain r.example.com

Замените panel.example.com на домен панели, r.example.com — на домен для REALITY.


Патч

Применить текущие фиксы к существующей установке (без изменений БД):

bash <(curl -fsSL https://raw.githubusercontent.com/mozaroc/3x-ui-pro/main/x-ui-patch.sh)

Удаление

bash x-ui-latest.sh -uninstall y

Параметры запуска

Параметр Описание
-install y Установить
-subdomain <домен> Домен панели и подписок
-reality_domain <домен> Домен назначения для REALITY
-auto_domain y Автоопределение домена (без ручного ввода)
-uninstall y Полное удаление

Clash-подписка

Работает через определение User-Agent — один URL, разное поведение:

  • Clash / Mihomo / Stash → получают clash.yaml с готовой конфигурацией
  • Обычный браузер / другие клиенты → получают стандартную страницу подписки 3x-ui

Ссылку для импорта выводит скрипт после установки.


Бэкап и восстановление

Установить скрипт бэкапа

wget -qO /usr/local/bin/x-ui-backup https://raw.githubusercontent.com/mozaroc/3x-ui-pro/main/assets/backup/x-ui-backup.sh
chmod +x /usr/local/bin/x-ui-backup

Создать бэкап

x-ui-backup backup

Список бэкапов

x-ui-backup list

Восстановить из бэкапа (на чистом сервере, пакеты ставятся автоматически)

x-ui-backup restore /var/backups/x-ui/x-ui-backup-20260101-120000.tar.gz

Бэкап включает: конфиги nginx, БД панели, бинарник 3x-ui, SSL-сертификаты, веб-контент, systemd-юниты, cron, правила UFW.


Диагностика сети

После установки доступна по ссылке, которую выводит скрипт. Включает:

  • MTR-трейс до вашего IP
  • Тест скорости загрузки и отдачи (512 МБ файлы)
S
Description
No description provided
Readme
305 KiB
Languages
HTML 54%
Shell 30.9%
JavaScript 11.5%
Python 3.6%