88466b9b2185cad9f5d499c57b0d753c5335614e
Root cause: nginx auth_request returns a raw 500 to the browser whenever
the /__diag_auth subrequest to the panel returns anything other than
2xx/401/403. Two ways that happens:
- the panel's TLS cert is recorded in the DB (webCertFile) but the file
or symlink is missing on disk (e.g. dangling /root/cert symlink), so
the panel can't serve HTTPS and proxy_pass https:// yields a 502; or
- the panel returns a login 302 for the AJAX auth probe.
Either way the browser got a 500 on the diagnostics page.
- Both scripts: add proxy_intercept_errors on + an error_page in
/__diag_auth that coerces every non-allow status (3xx/4xx/5xx, incl.
401/403 so the server-level "=404" trap can't rewrite a genuine deny)
into a 401 -> @diag_denied, so the flow degrades to a panel-login
redirect instead of a 500. Verified with nginx 1.30.3 across
200/401/302/502 upstream backends: all return a clean 302.
- x-ui-patch.sh: the panel-HTTPS check now also treats a configured-but-
missing cert (-e follows symlinks) as needing repair, re-symlinking the
Let's Encrypt cert and re-running `x-ui cert`.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
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 МБ файлы)
Languages
HTML
54%
Shell
30.9%
JavaScript
11.5%
Python
3.6%