Files
3X-UI_autoVPS/FORK-CHANGELOG.md
T

17 KiB
Raw Permalink Blame History

Что нового в сборке форка

Здесь записи о наших версиях. Файл автора (CHANGELOG.md) мы не трогаем — так обновления автора не конфликтуют с нашими записями.

v1.2.6: вопросы при установке

  • README.md переписан целиком: убрано авторское описание с его командой установки, добавлены актуальная команда, флаги, таблица протоколов, список сайтов-заглушек, команды kit и kit local, канал обновлений и оговорки. Две картинки — наши (manuals/assets/fork-banner.svg и manuals/assets/script-3x-ui-local.svg, терминал собран из настоящего вывода скрипта).
  • Шов в README больше не нужен (tools/fork_apply.py): файл наш целиком, как kit-local.sh.

v1.2.9: снос действительно убирает всё, повторная установка после сноса

  • Список удаляемого в kit local uninstall собран заново по коду установщика и дополнен тем, чего не хватало: /usr/local/lib/kit-sub, /root/kit-backup-* и /root/x-ui-before-* (копии kit), /var/log/kit-install-check.log, /usr/bin/x-ui.new, строка include kit-stream.conf в nginx.conf, симлинки в sites-enabled/streams-enabled, файл автообновлений безопасности, пользователь kit-sub. Из-за пропущенных файлов установщик после сноса отказывался ставить заново («3X-UI уже установлена»).
  • После сноса печатается проверка теми же условиями, что у установщика, и список того, что осталось на диске — вместо бодрого «удалено» вслепую.
  • Флаг --reset-ssh: снести и наш ssh-дроп-ин (порт возвращается к системному). По умолчанию SSH не трогаем.
  • У установщика появился флаг --clean: убрать прошлую установку и поставить заново. Если установщик всё-таки упал на «уже установлена», в подсказке прямо сказано запустить с --clean.

v1.2.8: доступ к панели в конце установки и снос сервера из меню

  • В конце установки (перед подпиской) печатается доступ к панели 3X-UI: адрес, логин и пароль из файла /root/3x-ui.txt — раньше это было видно только в общем потоке вывода установщика.
  • kit local uninstall — снос установки целиком: панель и служба x-ui, ядро Xray, службы и файлы kit (kit-sub, автообновление, cron), конфиги nginx и сайт-заглушка, сертификаты (acme.sh), наши правки системы (правило ICMP, обновления безопасности), наши бэкапы и файл с данными панели. Правила ufw для 80/443 снимаются, ответ на ping возвращается. Спрашивает подтверждение словом «удалить», есть --dry-run. SSH не трогается — ни порт, ни конфиги, ни правила для него: иначе легко потерять доступ к серверу. В главном меню kit появился пункт 10. Удалить всё установленное.

v1.2.7: имя 3X-UI_autoVPS, справка kit help, подписка с QR, живые кнопки на заглушках

  • Сборка называется 3X-UI_autoVPS (было 3X-UI KIT): баннер сервера — Hacker 07 в том же стиле, новое имя в справке, версии, описаниях служб и в имени профиля в клиенте. В файлах автора это сделано швами (tools/fork_apply.py), поэтому обновление автора правки не затирает.

  • Совместимость шапки релиза. В подписанном SHA256SUMS этого релиза шапка пишется двумя строками (старая и новая), а проверка на сервере принимает обе. Иначе уже установленные серверы отказались бы ставить обновление: они сверяют точный вид строки. Со следующего релиза останется только новое имя.

  • Убрано дублирование подсказки «Дальше обязательно» при смене порта SSH: она печаталась и установщиком, и командой kit local ssh.

  • kit help — полный справочник по категориям: пользователи, подключения и порты, маскировка и сайт, проверка и починка, обслуживание и обновление, защита сервера (наш слой). Раньше kit help показывал короткий список автора и не упоминал наши команды. Чтобы справка не отставала молча, добавлена проверка tools/check-help.sh: она сверяет справку с диспетчером команд и встроена в сборку релиза (tools/release.sh).

  • У сайтов-заглушек все ссылки и кнопки живые: нажатие открывает окно «раздел в разработке, приносим извинения» (закрыть — кнопкой, кликом мимо окна или Esc). Никаких внешних запросов: скрипт и стили внутри страницы.

  • В самом конце установки (после всех проверок) печатается то, что нужно сохранить: подписка с QR-кодом и ссылки по протоколам — авторской командой kit user link <имя> --all, поэтому вывод совпадает с тем, что показывает kit потом. Отключается флагом --no-sub.

  • Набор по умолчанию — REALITY + AmneziaWG-3.1 (самый совместимый минимум); ответ «все» ставит полный набор автора. Умолчание задаётся в одном месте (DEFAULT_PROTOS).

  • Сайт-заглушка переделан на ИТ-тематику: десять правдоподобных сайтов (дата-аналитика, DevOps, мониторинг, разработка, аудит, ИТ-поддержка, колокейшн, заметки про Linux, бэкапы, документация) вместо авторских «кофеен и пекарен». Ставится случайный, конкретный — kit local site 7, список — kit local site --list. Команда обновляет и файл для nginx, и копию страницы внутри подключения Hysteria2 (kit net masq on): если менять файл вручную, 443/tcp и UDP-порт начнут отвечать разными страницами — это заметно снаружи.

  • Обёртка спрашивает, какие протоколы ставить (нумерованный список, 1,3,11 или «все», Enter — набор автора): невыбранные протоколы не создаются вообще — ни подключения в панели, ни записей в nginx, ни ссылок в подписке. Список и умолчание взяты из самого установщика (ALL_PROTOS/DEFAULT_PROTOS), передаётся его же флагом --protocols, так что поведение не расходится с авторским. Свой --protocols можно задать флагом — тогда вопроса не будет.

  • Обёртка scripts/3x-ui-local.sh теперь спрашивает, а не решает за вас: закрывать ли ответ на ping, включать ли автообновления безопасности, менять ли порт SSH (Enter — оставить текущий, число — перевести на него; мусор и занятый порт переспрашивает), менять ли пароль root. Маскировку и домен, как и раньше, спрашивает установщик автора.

  • Смена порта SSH никогда не закрывает прежний порт сама: сначала добавляется новый, затем скрипт печатает две команды — проверить вход во втором окне и закрыть прежние (kit local ssh --close-old).

  • Запуск без флагов = «одна команда, дальше вопросы». Флаг --yes — наоборот, ничего не спрашивать (для автоматизации): ping закрывается, автообновления включаются, порт SSH и пароль не трогаются.

  • Флаг --harden теперь действительно существует (раньше он уходил установщику автора неизвестным параметром и ронял установку): закрыть ping и включить автообновления без вопросов.

  • --dry-run показывает, что именно будет спрошено или сделано по умолчанию.

v1.2.5: суммы релиза в формате, который понимает kit

  • Исправлена ошибка нашего релизного конвейера: на Windows sha256sum пишет суммы как hash *файл, а kit на сервере сверяет имя строго ($2 == "файл") — то есть kit update отклонил бы релизы v1.2.1–v1.2.4 как «в подписанном списке нет такого файла». Теперь tools/release.sh приводит список к POSIX-виду (hash файл) до подписи.
  • scripts/3x-ui-local.sh принимает оба формата, чтобы не спотыкаться о суммы, собранные на другой машине.
  • Проверка теперь повторяет логику самого kit: подпись SHA256SUMS + строгая сверка имени каждого файла из подписанного списка (а не только sha256sum -c, который звёздочку прощает).

v1.2.4: проверка релиза отдельной командой

  • Флаг --verify-only: скачать релиз, проверить подпись SHA256SUMS и SHA256 установщика и выйти — можно проверить канал на сервере, ничего не устанавливая.
  • Порядок шагов изменён: проверка подписи теперь идёт до предполётных проверок и до любых изменений на сервере, чтобы чужой код не запускался раньше проверки.

v1.2.3: установка одной командой (scripts/3x-ui-local.sh)

  • Один скрипт на чистом VPS: проверка сервера → скачивание нашего релиза → проверка подписи SHA256SUMS и SHA256 самого установщика → установщик автора (панель 3X-UI, протоколы, сайт-заглушка, маскировка, сертификат, подписка, ufw) → наши дополнения → проверка.
  • По умолчанию досыпает: закрыть ответ на ping (правилом ufw), включить обновления безопасности, kit fix (время и безопасные починки), в конце kit check и сводку kit local hardening. Отключается флагами --no-harden, --no-time, --no-check.
  • Второй порт SSH — только по явному флагу --ssh-port N: прежний порт продолжает работать, закрытие — отдельным шагом kit local ssh --close-old N. Автоматически доступ не запираем.
  • Все флаги установщика автора (--domain, --sni, --panel-on, --host, --restore …) передаются как есть; есть --dry-run (план без изменений) и --help.
  • Публичный ключ форка вшит в обёртку — подпись проверяется до запуска чужого кода; при смене ключа обновляется и здесь, и в kit.

v1.2.2: команды защиты сервера (поведение из StressOzz/vps-setup)

  • Новые команды kit local: ssh <порт> (добавить порт SSH), ssh --close-old (закрыть прежние порты), ping off|on (не отвечать на ICMP echo), passwd [--generate] (сменить пароль), upgrades on|off|status (автообновления безопасности), hardening (сводка по защите сервера).
  • Сделано безопаснее, чем в источнике: конфиг sshd проверяется через sshd -t до перезапуска, новый порт сначала открывается в ufw, прежний порт продолжает работать до отдельного шага --close-old, у правок есть --dry-run, а копии изменённых файлов остаются в /root/kit-local-backup-<дата>/ (не в /tmp).
  • apt full-upgrade из источника не выполняется: вместо него включаются обновления безопасности (только security, без самовольной перезагрузки) — это не затрагивает закреплённые версии панели и ядра, которые ставятся не из apt.
  • Учтён Ubuntu 24.04: если SSH слушает systemd (ssh.socket), порт добавляется socket-drop-in'ом, а закрытие старых портов не делается автоматически — там ошибка запирает доступ к серверу.
  • Ping отключается правилом ufw (before.rules), а не общесистемным icmp_echo_ignore_all: видно в ufw status, отменяется одной командой и не глушит ICMP для внутренних интерфейсов.

v1.2.1: сборка форка поверх 3X-UI_autoVPS 1.2

  • Источник файлов и обновлений — свой репозиторий Gitea: установка и kit update берут релиз оттуда, а подпись релиза проверяется ключом форка. Авторский ночной апдейт приходит в наш канал, поэтому наши доработки не стираются ночью.
  • Дополнения форка живут отдельным файлом /usr/local/lib/kit/kit-local.sh и подключаются одной строкой: kit local help | version | channel | seams | masking.
  • Наш файл едет в том же подписанном релизе, что и код автора: он входит в SHA256SUMS, проверяется по подписи и обновляется вместе с kit.
  • Швы в коде автора описаны в tools/fork_apply.py (источник правды), синхронизация с автором и проверки — tools/fork-sync.sh.

Основа — 3X-UI_autoVPS 1.2 (панель 3X-UI v3.9.0, ядро Xray v26.6.27). Что нового у автора — в CHANGELOG.md.