Repository navigation
XPAM Script v1.4.0
XPAM Script v1.4.0
Релиз добавляет запасной транспорт на отдельном домене, автоматическую настройку WARP и уникальные
сайты-маскировки для каждого сервера. Ссылки VLESS и Telegram, домены, клиенты и настройки DoubleHop
при обновлении сохраняются — переподключать никого не нужно.
Два изменения стоит прочитать до обновления: часть команд удалена, а еженедельное обслуживание теперь
может само перезагрузить сервер. Оба описаны ниже.
Запасной транспорт
Если провайдер начинает мешать основному способу связи, раньше оставалось только ждать или переносить
сервер. Теперь на отдельном домене можно поднять второй вход — он работает одновременно с основным и
никак его не затрагивает. В приложение добавляется вторая ссылка, и на неё можно переключиться, когда
первая перестала работать.
Включается из меню: «Дополнительно / обслуживание» → «Транспорты VLESS». Доступны два варианта, xhttp
и grpc. Какой окажется лучше у конкретного провайдера, заранее сказать нельзя; если один работает
плохо, переключитесь на другой — домен и сертификат при этом переиспользуются.
Понадобится ещё один домен или поддомен с A-записью на этот же сервер. Сразу он не нужен — включайте,
когда понадобится. Запасной домен тоже прикрыт сайтом-маскировкой, а если включён DoubleHop, запасной
транспорт тоже пойдёт через Exit-сервер.
При выключении сертификат сохраняется намеренно: у Let's Encrypt есть ограничения на частоту выпуска,
и сохранённый сертификат позволяет включить транспорт обратно сразу.
WARP настраивается сам
Раньше WARP приходилось заводить руками в панели 3x-ui. Теперь в панель заходить не нужно: пункт меню
сам создаёт ключи, регистрирует аккаунт в Cloudflare, поднимает подключение, включает маршрутизацию и
проверяет сервер.
Добавился пункт «Сменить WARP-IP» — если выданный адрес начал ловить капчу или ограничения, он
меняется одним действием, ссылки и клиенты при этом не затрагиваются. Отключение WARP теперь убирает и
сохранённый аккаунт, а не только само подключение.
Если регистрация не прошла, выводится короткое сообщение и конфигурация не меняется. Обычно это
означает, что у хостинга не работает маршрут до Cloudflare.
Отдельно доработана защита от IPv6: смена адреса средствами самой панели добавляет в настройки
IPv6-адрес, который нашей схеме не подходит. XPAM приводит настройки в порядок сразу после смены
адреса, лечит такое расхождение при восстановлении и предупреждает, если в панели включена фоновая
автосмена адреса в обход XPAM.
Сайты-маскировки уникальны для каждого сервера
Раньше все серверы отдавали визуально одинаковый сайт — то есть общий признак, по которому, изучив
один сервер, можно было узнать остальные.
Теперь всё видимое снаружи выводится из имени домена, и отличается не только цвет, а сама страница:
расположение блоков, тип иллюстрации, подача разделов, шрифтовое решение, название «продукта».
Доступно десять разных обликов, у каждого своя вёрстка. Двух одинаковых сайтов не бывает ни у двух
серверов, ни у двух доменов одного сервера.
На страницах появилась сдержанная анимация — мигающий курсор в окне терминала, плавно
прорисовывающийся график. Выдуманных показателей, статусов и дат на сайтах нет: сайт стабилен во
времени, а при системной настройке «уменьшить движение» анимация отключается.
Оформление воспроизводимо: тот же домен всегда даёт тот же сайт, поэтому восстановление и возврат к
стандартным страницам ничего не сдвигают. Свой собственный сайт по-прежнему сохраняется — если
положить файлы в веб-корень домена, XPAM их не тронет.
Изменения в командах
Часть отдельных команд удалена, их функции переехали в меню. Если вы пользовались ими напрямую или
упоминали их в своих скриптах и заметках, замените:
| Было | Стало |
|---|---|
<prefix>-status |
Меню → «Проверить состояние сервера» |
<prefix>-vless, <prefix>-tg |
sudo <prefix>-links — показывает и то, и другое |
<prefix>-links --show-secrets |
sudo <prefix>-links — печатает всё сразу, отдельный флаг не нужен |
Обновление удаляет эти команды с сервера само. <prefix>-netdiag остаётся и работает как прежде.
Само меню тоже изменилось. Пока установка не завершена, в нём только два пункта — SSH-безопасность и
установка; после установки они исчезают. Выбранное действие выполняется, показывает вывод целиком и
возвращает в командную строку, а не перерисовывает меню поверх результата. Если при включении
DoubleHop уже настроен WARP, скрипт предупреждает, что WARP при DoubleHop использоваться не будет —
раньше это выглядело как «WARP настроен, но не работает».
Обновления системы и автоматическая перезагрузка
Еженедельное обслуживание теперь ставит все системные обновления, включая ядро.
Если обновление требует перезагрузки, сервер перезагрузится сам. Это происходит ночью, занимает
меньше минуты и не требует участия, но подключения клиентов в этот момент кратко обрываются. После
перезагрузки автоматически выполняется второй проход и проверка состояния. Уведомление в Telegram
приходит только если что-то пошло не так.
Существующие серверы переключатся на этот режим автоматически при обновлении. Если автоматическая
перезагрузка вам не подходит, задайте XPAM_MAINT_APT_MODE=upgrade в /etc/xpam-script/config.env —
тогда ядро придерживается и сервер сам не перезагружается.
Исправления
- Резервные копии базы 3x-ui теперь корректны при любом режиме работы SQLite. Копия снималась
обычным копированием файла, а это надёжно не во всех режимах: свежие изменения какое-то время живут
в отдельном файле, и в копию не попадали последние добавленные клиенты и подключения — при этом
копия выглядела исправной. Для снимка, из которого восстанавливаетrepair --full, это худший
вариант: восстановление вернуло бы состояние раньше ожидаемого. Теперь копия снимается штатным
механизмом SQLite и проверяется на целостность сразу при создании. repairбольше не перевыпускает данные Telegram-клиента при каждом запуске. Ссылка на
Telegram-прокси продолжала работать, но у клиента каждый раз менялись внутренний идентификатор и
подписка — то есть ссылка и QR-код на странице клиента в панели 3x-ui менялись после каждого
восстановления и каждого еженедельного обслуживания.- Полное восстановление предупреждает про запасной транспорт.
repair --fullвосстанавливает
базу 3x-ui, но не настройки XPAM. Если снимок сделан до включения запасного транспорта, после
восстановления получалось расхождение, а проверка состояния падала без внятной причины. Теперь
предупреждение выводится до подтверждения, а проверка объясняет причину и что делать. - Заголовки безопасности реально доходят до браузера. Они были заданы, но из-за особенности
nginx не отправлялись ни на одном домене. - Диагностику стало возможно читать. Проверка портов печатала три сырых системных дампа шире
экрана, проверка сертификатов повторяла один и тот же сертификат четыре раза подряд, а команда
сетевой диагностики показывала только путь к файлу и больше ничего. Теперь порты сгруппированы и
подписаны, сертификаты умещаются в таблицу со сроком действия, а сетевая диагностика сразу выводит
главное на экран.
Установка
cd /root
curl -fsSL https://raw.githubusercontent.com/deepru/xpam-script/main/bootstrap.sh -o xpam-bootstrap.sh
sudo XPAM_REPO="deepru/xpam-script" bash xpam-bootstrap.shBootstrap скачивает архив этого релиза, сверяет его контрольную сумму с файлом .sha256 и запускает
установщик. Нужен чистый VPS на Ubuntu или Debian с root-доступом, домены с A-записями и SSH-ключ.
Подробно — в руководстве пользователя.
Проверить архив самостоятельно:
sha256sum -c xpam-script-v1.4.0.tar.gz.sha256Обновление с v1.3.9
sudo <prefix>-xpam→ «Дополнительно / обслуживание» → «Проверить обновления XPAM».- Апдейтер скачает релиз, сверит контрольную сумму, сделает резервную копию, применит версию,
проверит сервер и откатится, если что-то пойдёт не так. - После обновления выполните
sudo <prefix>-health --deep.
Ссылки подключения, домены, клиенты, настройки DoubleHop и WARP и ваш собственный сайт при обновлении
сохраняются.
Секреты
Не публикуйте вывод sudo <prefix>-links, ссылки VLESS и Telegram, пароли и токены в чатах, issue,
скриншотах и публичных логах. Для показа состояния при посторонних есть sudo <prefix>-links --safe.