From d034e207da5bbfec59d28fe6dfd947082bd26cce Mon Sep 17 00:00:00 2001 From: hacker07 Date: Tue, 13 Oct 2026 22:59:43 +0300 Subject: [PATCH] =?UTF-8?q?docs:=20README=20=D0=BF=D0=BE=D0=B4=20=D0=BD?= =?UTF-8?q?=D0=BE=D0=B2=D1=8B=D0=B5=20=D0=B2=D0=BE=D0=B7=D0=BC=D0=BE=D0=B6?= =?UTF-8?q?=D0=BD=D0=BE=D1=81=D1=82=D0=B8;=20=D0=B6=D1=83=D1=80=D0=BD?= =?UTF-8?q?=D0=B0=D0=BB=20=D0=B2=D0=B5=D1=80=D1=81=D0=B8=D0=B9=20=D0=B2=20?= =?UTF-8?q?=D0=BF=D0=BE=D1=80=D1=8F=D0=B4=D0=BA=D0=B5=20=D1=83=D0=B1=D1=8B?= =?UTF-8?q?=D0=B2=D0=B0=D0=BD=D0=B8=D1=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- FORK-CHANGELOG.md | 24 ++++++------------------ README.md | 45 +++++++++++++++++++++++++++++++++------------ 2 files changed, 39 insertions(+), 30 deletions(-) diff --git a/FORK-CHANGELOG.md b/FORK-CHANGELOG.md index f9acafa..adc9c45 100644 --- a/FORK-CHANGELOG.md +++ b/FORK-CHANGELOG.md @@ -10,7 +10,6 @@ возвращает 1) убивал скрипт сразу после остановки служб — файлы и `/usr/local/bin/kit` оставались, поэтому `kit help` продолжал работать. Теперь снос выполняется с отключённым `set -e` и все подобные конвейеры защищены; проверка после сноса это подтверждает списком, если что-то осталось. - ## v1.2.13: вопросов после показа доступов нет, и никакой работы для невыбранных протоколов * **Все вопросы — до установщика.** Раньше после установки (когда на экране уже были данные входа @@ -22,7 +21,6 @@ * Наши команды помнят выбор: установщик пишет список протоколов в `/etc/kit/kl-protos`, и `kit local site` не синхронизирует ответ Hysteria2, если Hysteria2 не ставился (раньше он это делал и выдавал предупреждение про отсутствующий Hysteria2). - ## v1.2.12: не сканируем соседей, когда они не нужны * Автор подбирал сайты-соседи для XHTTP и MTProto **всегда**, когда маскировка доверенная («панель по IP») @@ -34,14 +32,6 @@ Здесь записи о наших версиях. Файл автора (`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.11: снос знает про kit-limit и находит свои службы сам * В списке сноса не было `kit-limit.service` и `kit-limit.timer` (юнит «общий лимит трафика» из kit) — @@ -51,7 +41,6 @@ новая служба, добавленная автором позже, не останется незамеченной. Проверка после сноса ищет по тем же шаблонам и показывает всё найденное. * Флаг `--clean` у установщика использует тот же список. - ## v1.2.10: убран мусор в выводе установщика * В шапке `scripts/3x-ui-local.sh` один из флагов потерял `#` и **при каждом запуске печаталось @@ -59,7 +48,6 @@ Исправлено, заодно выровнены строки справки. * В релизный гейт добавлена проверка, которая такое ловит: холостой прогон установщика, чей вывод в stderr содержит «command not found / syntax error / bad substitution», релиз не собирается. - ## v1.2.9: снос действительно убирает всё, повторная установка после сноса * Список удаляемого в `kit local uninstall` собран заново **по коду установщика** и дополнен тем, чего @@ -72,7 +60,6 @@ * Флаг `--reset-ssh`: снести и наш ssh-дроп-ин (порт возвращается к системному). По умолчанию SSH не трогаем. * У установщика появился флаг **`--clean`**: убрать прошлую установку и поставить заново. Если установщик всё-таки упал на «уже установлена», в подсказке прямо сказано запустить с `--clean`. - ## v1.2.8: доступ к панели в конце установки и снос сервера из меню * В конце установки (перед подпиской) печатается **доступ к панели 3X-UI**: адрес, логин и пароль из @@ -84,7 +71,6 @@ «удалить», есть `--dry-run`. **SSH не трогается** — ни порт, ни конфиги, ни правила для него: иначе легко потерять доступ к серверу. В главном меню `kit` появился пункт **10. Удалить всё установленное**. - ## v1.2.7: имя 3X-UI_autoVPS, справка kit help, подписка с QR, живые кнопки на заглушках * **Сборка называется `3X-UI_autoVPS`** (было `3X-UI KIT`): баннер сервера — `Hacker 07` в том же @@ -132,7 +118,13 @@ * Флаг `--harden` теперь действительно существует (раньше он уходил установщику автора неизвестным параметром и ронял установку): закрыть ping и включить автообновления без вопросов. * `--dry-run` показывает, что именно будет спрошено или сделано по умолчанию. +## 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.5: суммы релиза в формате, который понимает kit * Исправлена ошибка нашего релизного конвейера: на Windows `sha256sum` пишет суммы как @@ -143,14 +135,12 @@ другой машине. * Проверка теперь повторяет логику самого `kit`: подпись `SHA256SUMS` + строгая сверка имени каждого файла из подписанного списка (а не только `sha256sum -c`, который звёздочку прощает). - ## v1.2.4: проверка релиза отдельной командой * Флаг `--verify-only`: скачать релиз, проверить подпись `SHA256SUMS` и SHA256 установщика и выйти — можно проверить канал на сервере, ничего не устанавливая. * Порядок шагов изменён: проверка подписи теперь идёт до предполётных проверок и до любых изменений на сервере, чтобы чужой код не запускался раньше проверки. - ## v1.2.3: установка одной командой (`scripts/3x-ui-local.sh`) * Один скрипт на чистом VPS: проверка сервера → скачивание нашего релиза → проверка подписи @@ -165,7 +155,6 @@ передаются как есть; есть `--dry-run` (план без изменений) и `--help`. * Публичный ключ форка вшит в обёртку — подпись проверяется до запуска чужого кода; при смене ключа обновляется и здесь, и в `kit`. - ## v1.2.2: команды защиты сервера (поведение из StressOzz/vps-setup) * Новые команды `kit local`: `ssh <порт>` (добавить порт SSH), `ssh --close-old` (закрыть прежние @@ -182,7 +171,6 @@ а закрытие старых портов не делается автоматически — там ошибка запирает доступ к серверу. * Ping отключается правилом ufw (`before.rules`), а не общесистемным `icmp_echo_ignore_all`: видно в `ufw status`, отменяется одной командой и не глушит ICMP для внутренних интерфейсов. - ## v1.2.1: сборка форка поверх 3X-UI_autoVPS 1.2 * Источник файлов и обновлений — свой репозиторий Gitea: установка и `kit update` берут релиз diff --git a/README.md b/README.md index eb7504a..5314ede 100644 --- a/README.md +++ b/README.md @@ -28,9 +28,15 @@ bash <(curl -fsSL https://git.rukavishnikoff.ru/hacker07/3X-UI_autoVPS/raw/branch/main/scripts/3x-ui-local.sh) ``` -Без флагов скрипт **спрашивает** всё по ходу: какие протоколы ставить (Enter — REALITY + AmneziaWG-3.1), -какую маскировку и домен, закрывать ли ответ на ping, включать ли автообновления безопасности, -менять ли порт SSH (Enter — оставить 22), менять ли пароль root. +Без флагов скрипт **спрашивает всё заранее, до установки**: какие протоколы ставить (Enter — REALITY + +AmneziaWG-3.1), менять ли порт SSH (Enter — оставить 22), менять ли пароль root, закрывать ли ответ на +ping, включать ли автообновления безопасности. Затем сканирует подсеть и **предлагает выбрать сайт +маскировки** — отдельно для REALITY и, если выбраны XHTTP/MTProto, отдельно для них: номер из найденных +соседей, `0` — ввести адрес вручную, для XHTTP/MTProto ещё и известный сайт (Google, Microsoft, AMD…). + +После установщика скрипт **ничего не спрашивает** — только выполняет выбранное, проверяет сервер и в +самом конце показывает то, что нужно унести: **доступ к панели 3X-UI** (адрес, логин, пароль) и +**подписку с QR-кодом** и ссылками по протоколам. Установка одной командой @@ -67,6 +73,9 @@ bash <(curl -fsSL …/scripts/3x-ui-local.sh) --dry-run # что имен | `--harden` / `--no-harden` | закрыть ping и включить автообновления безопасности / не трогать это | | `--yes` | не задавать вопросы (для автоматизации) | | `--host IP`, `--user имя`, `--port N`, `--restore файл` | адрес в ссылках, имя первого клиента, порт REALITY, восстановление из копии `kit backup` | +| `--clean` | убрать прошлую (оборвавшуюся) установку и поставить заново — SSH не трогает | +| `--auto-sni` | не показывать меню выбора сайта маскировки, подобрать самим (автоподбор автора) | +| `--no-sub` | не показывать в конце доступ к панели, подписку и QR-код | | `--no-time`, `--no-check`, `--verify-only`, `--dry-run`, `-h` | служебные | ## Что происходит по шагам @@ -74,15 +83,17 @@ bash <(curl -fsSL …/scripts/3x-ui-local.sh) --dry-run # что имен 1. **Проверка сервера**: root, Debian/Ubuntu, память, место на диске, занятые порты 80/443. 2. **Проверка релиза**: файлы берутся из этого репозитория по тегу, проверяется **подпись `SHA256SUMS`** нашим ключом и SHA256 самого установщика. Не сошлось — ничего не запускается. -3. **Выбор протоколов** и запуск установщика: панель 3X-UI, выбранные подключения, nginx на 443, - сертификат, сайт-заглушка, служба подписки, правила ufw. -4. **Сайт-заглушка**: ставится случайный правдоподобный ИТ-сайт из нашего набора (10 штук) и - синхронизируется в ответ Hysteria2. -5. **Наши вопросы и правки**: закрыть ответ на ping, включить обновления безопасности, сменить порт - SSH, сменить пароль root. -6. **`kit fix`** — синхронизация времени и безопасные починки. -7. **Проверка**: `kit check` (порты, службы, подписка, сертификат, маскировка) и сводка - `kit local hardening`. В конце — как забрать ссылки и подписку. +3. **Наши вопросы** (до установки): протоколы, порт SSH, пароль root, ping, автообновления. +4. **Установщик**: панель 3X-UI, только выбранные подключения, nginx на 443, сертификат, сайт-заглушка, + служба подписки, правила ufw. Маскировку спрашивает он: свой домен, сосед по подсети или свой сайт. + Если выбран сосед — сначала идёт **скан подсети**, затем меню выбора сайта (см. выше). +5. **Наши действия** (без вопросов): правдоподобный ИТ-сайт-заглушка вместо авторской страницы, + `kit fix` (время и безопасные починки), закрыть ответ на ping, включить обновления безопасности, + перевести SSH на новый порт, сменить пароль root. +6. **Проверка**: `kit check` (порты, службы, подписка, сертификат, маскировка) и сводка + `kit local hardening`. +7. **В самом конце** — **доступ к панели 3X-UI** (адрес, логин, пароль из `/root/3x-ui.txt`) и + **подписка с QR-кодом** и ссылками по протоколам. После них скрипт уже ничего не делает и не спрашивает. ## Протоколы @@ -110,6 +121,15 @@ bash <(curl -fsSL …/scripts/3x-ui-local.sh) --dry-run # что имен дополнительных объяснений на клиенте. Маскировку и сайт можно менять потом: `kit net site`, `kit local site`. +**Сайт маскировки выбираете вы.** После скана подсети установщик спрашивает отдельно для REALITY +(найденный сосед или свой адрес) и отдельно для XHTTP/MTProto (найденный, свой или известный сайт — +список известных расширен Google, Amazon, Samsung, Yahoo, Microsoft, AMD, Intel, NVIDIA). Выбранный +адрес проверяется на TLS 1.3 + HTTP/2. Если XHTTP и MTProto не выбраны, второго вопроса нет. + +Для протоколов, которые **не** выбраны, не делается ничего: ни подключений, ни записей в nginx, ни +ссылок в подписке, ни лишних обращений к сети (например, обход соседей запускается только когда он +действительно нужен). + ## Сайт-заглушка На 443 при неизвестном имени отдаётся страница нашего набора: небольшие правдоподобные ИТ-сайты @@ -163,6 +183,7 @@ kit local site --show # какой стоит сейчас | `kit local ping off\|on\|status` | ответ на ICMP echo правилом ufw (видно в `ufw status`, отменяется одной командой) | | `kit local passwd [юзер]`, `--generate` | смена пароля (спрашивает дважды, в логи не попадает) | | `kit local upgrades on\|off\|status` | обновления безопасности | +| `kit local uninstall` | **снести установку целиком**: панель, службы и файлы kit, nginx и сайт, сертификаты, наши правки системы и правила ufw для 80/443. Спрашивает слово «удалить», есть `--dry-run`. **SSH не трогает** | | `kit local hardening`, `masking`, `channel`, `seams`, `version` | сводка защиты, состояние маскировки, канал обновлений, какие места форк правит у автора | У любой правки есть `--dry-run` — показывает план и ничего не меняет. Копии изменённых файлов