docs: README под новые возможности; журнал версий в порядке убывания
Синхронизация с автором / sync (push) Successful in 1s
Синхронизация с автором / sync (push) Successful in 1s
This commit is contained in:
+6
-18
@@ -10,7 +10,6 @@
|
|||||||
возвращает 1) убивал скрипт сразу после остановки служб — файлы и `/usr/local/bin/kit` оставались,
|
возвращает 1) убивал скрипт сразу после остановки служб — файлы и `/usr/local/bin/kit` оставались,
|
||||||
поэтому `kit help` продолжал работать. Теперь снос выполняется с отключённым `set -e` и все
|
поэтому `kit help` продолжал работать. Теперь снос выполняется с отключённым `set -e` и все
|
||||||
подобные конвейеры защищены; проверка после сноса это подтверждает списком, если что-то осталось.
|
подобные конвейеры защищены; проверка после сноса это подтверждает списком, если что-то осталось.
|
||||||
|
|
||||||
## v1.2.13: вопросов после показа доступов нет, и никакой работы для невыбранных протоколов
|
## v1.2.13: вопросов после показа доступов нет, и никакой работы для невыбранных протоколов
|
||||||
|
|
||||||
* **Все вопросы — до установщика.** Раньше после установки (когда на экране уже были данные входа
|
* **Все вопросы — до установщика.** Раньше после установки (когда на экране уже были данные входа
|
||||||
@@ -22,7 +21,6 @@
|
|||||||
* Наши команды помнят выбор: установщик пишет список протоколов в `/etc/kit/kl-protos`, и
|
* Наши команды помнят выбор: установщик пишет список протоколов в `/etc/kit/kl-protos`, и
|
||||||
`kit local site` не синхронизирует ответ Hysteria2, если Hysteria2 не ставился (раньше он это делал
|
`kit local site` не синхронизирует ответ Hysteria2, если Hysteria2 не ставился (раньше он это делал
|
||||||
и выдавал предупреждение про отсутствующий Hysteria2).
|
и выдавал предупреждение про отсутствующий Hysteria2).
|
||||||
|
|
||||||
## v1.2.12: не сканируем соседей, когда они не нужны
|
## v1.2.12: не сканируем соседей, когда они не нужны
|
||||||
|
|
||||||
* Автор подбирал сайты-соседи для XHTTP и MTProto **всегда**, когда маскировка доверенная («панель по IP»)
|
* Автор подбирал сайты-соседи для XHTTP и MTProto **всегда**, когда маскировка доверенная («панель по IP»)
|
||||||
@@ -34,14 +32,6 @@
|
|||||||
|
|
||||||
Здесь записи о наших версиях. Файл автора (`CHANGELOG.md`) мы не трогаем — так обновления
|
Здесь записи о наших версиях. Файл автора (`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 и находит свои службы сам
|
## v1.2.11: снос знает про kit-limit и находит свои службы сам
|
||||||
|
|
||||||
* В списке сноса не было `kit-limit.service` и `kit-limit.timer` (юнит «общий лимит трафика» из kit) —
|
* В списке сноса не было `kit-limit.service` и `kit-limit.timer` (юнит «общий лимит трафика» из kit) —
|
||||||
@@ -51,7 +41,6 @@
|
|||||||
новая служба, добавленная автором позже, не останется незамеченной. Проверка после сноса ищет
|
новая служба, добавленная автором позже, не останется незамеченной. Проверка после сноса ищет
|
||||||
по тем же шаблонам и показывает всё найденное.
|
по тем же шаблонам и показывает всё найденное.
|
||||||
* Флаг `--clean` у установщика использует тот же список.
|
* Флаг `--clean` у установщика использует тот же список.
|
||||||
|
|
||||||
## v1.2.10: убран мусор в выводе установщика
|
## v1.2.10: убран мусор в выводе установщика
|
||||||
|
|
||||||
* В шапке `scripts/3x-ui-local.sh` один из флагов потерял `#` и **при каждом запуске печаталось
|
* В шапке `scripts/3x-ui-local.sh` один из флагов потерял `#` и **при каждом запуске печаталось
|
||||||
@@ -59,7 +48,6 @@
|
|||||||
Исправлено, заодно выровнены строки справки.
|
Исправлено, заодно выровнены строки справки.
|
||||||
* В релизный гейт добавлена проверка, которая такое ловит: холостой прогон установщика, чей вывод в stderr
|
* В релизный гейт добавлена проверка, которая такое ловит: холостой прогон установщика, чей вывод в stderr
|
||||||
содержит «command not found / syntax error / bad substitution», релиз не собирается.
|
содержит «command not found / syntax error / bad substitution», релиз не собирается.
|
||||||
|
|
||||||
## v1.2.9: снос действительно убирает всё, повторная установка после сноса
|
## v1.2.9: снос действительно убирает всё, повторная установка после сноса
|
||||||
|
|
||||||
* Список удаляемого в `kit local uninstall` собран заново **по коду установщика** и дополнен тем, чего
|
* Список удаляемого в `kit local uninstall` собран заново **по коду установщика** и дополнен тем, чего
|
||||||
@@ -72,7 +60,6 @@
|
|||||||
* Флаг `--reset-ssh`: снести и наш ssh-дроп-ин (порт возвращается к системному). По умолчанию SSH не трогаем.
|
* Флаг `--reset-ssh`: снести и наш ssh-дроп-ин (порт возвращается к системному). По умолчанию SSH не трогаем.
|
||||||
* У установщика появился флаг **`--clean`**: убрать прошлую установку и поставить заново. Если установщик
|
* У установщика появился флаг **`--clean`**: убрать прошлую установку и поставить заново. Если установщик
|
||||||
всё-таки упал на «уже установлена», в подсказке прямо сказано запустить с `--clean`.
|
всё-таки упал на «уже установлена», в подсказке прямо сказано запустить с `--clean`.
|
||||||
|
|
||||||
## v1.2.8: доступ к панели в конце установки и снос сервера из меню
|
## v1.2.8: доступ к панели в конце установки и снос сервера из меню
|
||||||
|
|
||||||
* В конце установки (перед подпиской) печатается **доступ к панели 3X-UI**: адрес, логин и пароль из
|
* В конце установки (перед подпиской) печатается **доступ к панели 3X-UI**: адрес, логин и пароль из
|
||||||
@@ -84,7 +71,6 @@
|
|||||||
«удалить», есть `--dry-run`.
|
«удалить», есть `--dry-run`.
|
||||||
**SSH не трогается** — ни порт, ни конфиги, ни правила для него: иначе легко потерять доступ к серверу.
|
**SSH не трогается** — ни порт, ни конфиги, ни правила для него: иначе легко потерять доступ к серверу.
|
||||||
В главном меню `kit` появился пункт **10. Удалить всё установленное**.
|
В главном меню `kit` появился пункт **10. Удалить всё установленное**.
|
||||||
|
|
||||||
## v1.2.7: имя 3X-UI_autoVPS, справка kit help, подписка с QR, живые кнопки на заглушках
|
## v1.2.7: имя 3X-UI_autoVPS, справка kit help, подписка с QR, живые кнопки на заглушках
|
||||||
|
|
||||||
* **Сборка называется `3X-UI_autoVPS`** (было `3X-UI KIT`): баннер сервера — `Hacker 07` в том же
|
* **Сборка называется `3X-UI_autoVPS`** (было `3X-UI KIT`): баннер сервера — `Hacker 07` в том же
|
||||||
@@ -132,7 +118,13 @@
|
|||||||
* Флаг `--harden` теперь действительно существует (раньше он уходил установщику автора неизвестным
|
* Флаг `--harden` теперь действительно существует (раньше он уходил установщику автора неизвестным
|
||||||
параметром и ронял установку): закрыть ping и включить автообновления без вопросов.
|
параметром и ронял установку): закрыть ping и включить автообновления без вопросов.
|
||||||
* `--dry-run` показывает, что именно будет спрошено или сделано по умолчанию.
|
* `--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
|
## v1.2.5: суммы релиза в формате, который понимает kit
|
||||||
|
|
||||||
* Исправлена ошибка нашего релизного конвейера: на Windows `sha256sum` пишет суммы как
|
* Исправлена ошибка нашего релизного конвейера: на Windows `sha256sum` пишет суммы как
|
||||||
@@ -143,14 +135,12 @@
|
|||||||
другой машине.
|
другой машине.
|
||||||
* Проверка теперь повторяет логику самого `kit`: подпись `SHA256SUMS` + строгая сверка имени
|
* Проверка теперь повторяет логику самого `kit`: подпись `SHA256SUMS` + строгая сверка имени
|
||||||
каждого файла из подписанного списка (а не только `sha256sum -c`, который звёздочку прощает).
|
каждого файла из подписанного списка (а не только `sha256sum -c`, который звёздочку прощает).
|
||||||
|
|
||||||
## v1.2.4: проверка релиза отдельной командой
|
## v1.2.4: проверка релиза отдельной командой
|
||||||
|
|
||||||
* Флаг `--verify-only`: скачать релиз, проверить подпись `SHA256SUMS` и SHA256 установщика и выйти —
|
* Флаг `--verify-only`: скачать релиз, проверить подпись `SHA256SUMS` и SHA256 установщика и выйти —
|
||||||
можно проверить канал на сервере, ничего не устанавливая.
|
можно проверить канал на сервере, ничего не устанавливая.
|
||||||
* Порядок шагов изменён: проверка подписи теперь идёт до предполётных проверок и до любых
|
* Порядок шагов изменён: проверка подписи теперь идёт до предполётных проверок и до любых
|
||||||
изменений на сервере, чтобы чужой код не запускался раньше проверки.
|
изменений на сервере, чтобы чужой код не запускался раньше проверки.
|
||||||
|
|
||||||
## v1.2.3: установка одной командой (`scripts/3x-ui-local.sh`)
|
## v1.2.3: установка одной командой (`scripts/3x-ui-local.sh`)
|
||||||
|
|
||||||
* Один скрипт на чистом VPS: проверка сервера → скачивание нашего релиза → проверка подписи
|
* Один скрипт на чистом VPS: проверка сервера → скачивание нашего релиза → проверка подписи
|
||||||
@@ -165,7 +155,6 @@
|
|||||||
передаются как есть; есть `--dry-run` (план без изменений) и `--help`.
|
передаются как есть; есть `--dry-run` (план без изменений) и `--help`.
|
||||||
* Публичный ключ форка вшит в обёртку — подпись проверяется до запуска чужого кода; при смене
|
* Публичный ключ форка вшит в обёртку — подпись проверяется до запуска чужого кода; при смене
|
||||||
ключа обновляется и здесь, и в `kit`.
|
ключа обновляется и здесь, и в `kit`.
|
||||||
|
|
||||||
## v1.2.2: команды защиты сервера (поведение из StressOzz/vps-setup)
|
## v1.2.2: команды защиты сервера (поведение из StressOzz/vps-setup)
|
||||||
|
|
||||||
* Новые команды `kit local`: `ssh <порт>` (добавить порт SSH), `ssh --close-old` (закрыть прежние
|
* Новые команды `kit local`: `ssh <порт>` (добавить порт SSH), `ssh --close-old` (закрыть прежние
|
||||||
@@ -182,7 +171,6 @@
|
|||||||
а закрытие старых портов не делается автоматически — там ошибка запирает доступ к серверу.
|
а закрытие старых портов не делается автоматически — там ошибка запирает доступ к серверу.
|
||||||
* Ping отключается правилом ufw (`before.rules`), а не общесистемным `icmp_echo_ignore_all`:
|
* Ping отключается правилом ufw (`before.rules`), а не общесистемным `icmp_echo_ignore_all`:
|
||||||
видно в `ufw status`, отменяется одной командой и не глушит ICMP для внутренних интерфейсов.
|
видно в `ufw status`, отменяется одной командой и не глушит ICMP для внутренних интерфейсов.
|
||||||
|
|
||||||
## v1.2.1: сборка форка поверх 3X-UI_autoVPS 1.2
|
## v1.2.1: сборка форка поверх 3X-UI_autoVPS 1.2
|
||||||
|
|
||||||
* Источник файлов и обновлений — свой репозиторий Gitea: установка и `kit update` берут релиз
|
* Источник файлов и обновлений — свой репозиторий Gitea: установка и `kit update` берут релиз
|
||||||
|
|||||||
@@ -28,9 +28,15 @@
|
|||||||
bash <(curl -fsSL https://git.rukavishnikoff.ru/hacker07/3X-UI_autoVPS/raw/branch/main/scripts/3x-ui-local.sh)
|
bash <(curl -fsSL https://git.rukavishnikoff.ru/hacker07/3X-UI_autoVPS/raw/branch/main/scripts/3x-ui-local.sh)
|
||||||
```
|
```
|
||||||
|
|
||||||
Без флагов скрипт **спрашивает** всё по ходу: какие протоколы ставить (Enter — REALITY + AmneziaWG-3.1),
|
Без флагов скрипт **спрашивает всё заранее, до установки**: какие протоколы ставить (Enter — REALITY +
|
||||||
какую маскировку и домен, закрывать ли ответ на ping, включать ли автообновления безопасности,
|
AmneziaWG-3.1), менять ли порт SSH (Enter — оставить 22), менять ли пароль root, закрывать ли ответ на
|
||||||
менять ли порт SSH (Enter — оставить 22), менять ли пароль root.
|
ping, включать ли автообновления безопасности. Затем сканирует подсеть и **предлагает выбрать сайт
|
||||||
|
маскировки** — отдельно для REALITY и, если выбраны XHTTP/MTProto, отдельно для них: номер из найденных
|
||||||
|
соседей, `0` — ввести адрес вручную, для XHTTP/MTProto ещё и известный сайт (Google, Microsoft, AMD…).
|
||||||
|
|
||||||
|
После установщика скрипт **ничего не спрашивает** — только выполняет выбранное, проверяет сервер и в
|
||||||
|
самом конце показывает то, что нужно унести: **доступ к панели 3X-UI** (адрес, логин, пароль) и
|
||||||
|
**подписку с QR-кодом** и ссылками по протоколам.
|
||||||
|
|
||||||
<img alt="Установка одной командой" src="manuals/assets/script-3x-ui-local.svg" width="860">
|
<img alt="Установка одной командой" src="manuals/assets/script-3x-ui-local.svg" width="860">
|
||||||
|
|
||||||
@@ -67,6 +73,9 @@ bash <(curl -fsSL …/scripts/3x-ui-local.sh) --dry-run # что имен
|
|||||||
| `--harden` / `--no-harden` | закрыть ping и включить автообновления безопасности / не трогать это |
|
| `--harden` / `--no-harden` | закрыть ping и включить автообновления безопасности / не трогать это |
|
||||||
| `--yes` | не задавать вопросы (для автоматизации) |
|
| `--yes` | не задавать вопросы (для автоматизации) |
|
||||||
| `--host IP`, `--user имя`, `--port N`, `--restore файл` | адрес в ссылках, имя первого клиента, порт REALITY, восстановление из копии `kit backup` |
|
| `--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` | служебные |
|
| `--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.
|
1. **Проверка сервера**: root, Debian/Ubuntu, память, место на диске, занятые порты 80/443.
|
||||||
2. **Проверка релиза**: файлы берутся из этого репозитория по тегу, проверяется **подпись `SHA256SUMS`**
|
2. **Проверка релиза**: файлы берутся из этого репозитория по тегу, проверяется **подпись `SHA256SUMS`**
|
||||||
нашим ключом и SHA256 самого установщика. Не сошлось — ничего не запускается.
|
нашим ключом и SHA256 самого установщика. Не сошлось — ничего не запускается.
|
||||||
3. **Выбор протоколов** и запуск установщика: панель 3X-UI, выбранные подключения, nginx на 443,
|
3. **Наши вопросы** (до установки): протоколы, порт SSH, пароль root, ping, автообновления.
|
||||||
сертификат, сайт-заглушка, служба подписки, правила ufw.
|
4. **Установщик**: панель 3X-UI, только выбранные подключения, nginx на 443, сертификат, сайт-заглушка,
|
||||||
4. **Сайт-заглушка**: ставится случайный правдоподобный ИТ-сайт из нашего набора (10 штук) и
|
служба подписки, правила ufw. Маскировку спрашивает он: свой домен, сосед по подсети или свой сайт.
|
||||||
синхронизируется в ответ Hysteria2.
|
Если выбран сосед — сначала идёт **скан подсети**, затем меню выбора сайта (см. выше).
|
||||||
5. **Наши вопросы и правки**: закрыть ответ на ping, включить обновления безопасности, сменить порт
|
5. **Наши действия** (без вопросов): правдоподобный ИТ-сайт-заглушка вместо авторской страницы,
|
||||||
SSH, сменить пароль root.
|
`kit fix` (время и безопасные починки), закрыть ответ на ping, включить обновления безопасности,
|
||||||
6. **`kit fix`** — синхронизация времени и безопасные починки.
|
перевести SSH на новый порт, сменить пароль root.
|
||||||
7. **Проверка**: `kit check` (порты, службы, подписка, сертификат, маскировка) и сводка
|
6. **Проверка**: `kit check` (порты, службы, подписка, сертификат, маскировка) и сводка
|
||||||
`kit local hardening`. В конце — как забрать ссылки и подписку.
|
`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 net site`,
|
||||||
`kit local site`.
|
`kit local site`.
|
||||||
|
|
||||||
|
**Сайт маскировки выбираете вы.** После скана подсети установщик спрашивает отдельно для REALITY
|
||||||
|
(найденный сосед или свой адрес) и отдельно для XHTTP/MTProto (найденный, свой или известный сайт —
|
||||||
|
список известных расширен Google, Amazon, Samsung, Yahoo, Microsoft, AMD, Intel, NVIDIA). Выбранный
|
||||||
|
адрес проверяется на TLS 1.3 + HTTP/2. Если XHTTP и MTProto не выбраны, второго вопроса нет.
|
||||||
|
|
||||||
|
Для протоколов, которые **не** выбраны, не делается ничего: ни подключений, ни записей в nginx, ни
|
||||||
|
ссылок в подписке, ни лишних обращений к сети (например, обход соседей запускается только когда он
|
||||||
|
действительно нужен).
|
||||||
|
|
||||||
## Сайт-заглушка
|
## Сайт-заглушка
|
||||||
|
|
||||||
На 443 при неизвестном имени отдаётся страница нашего набора: небольшие правдоподобные ИТ-сайты
|
На 443 при неизвестном имени отдаётся страница нашего набора: небольшие правдоподобные ИТ-сайты
|
||||||
@@ -163,6 +183,7 @@ kit local site --show # какой стоит сейчас
|
|||||||
| `kit local ping off\|on\|status` | ответ на ICMP echo правилом ufw (видно в `ufw status`, отменяется одной командой) |
|
| `kit local ping off\|on\|status` | ответ на ICMP echo правилом ufw (видно в `ufw status`, отменяется одной командой) |
|
||||||
| `kit local passwd [юзер]`, `--generate` | смена пароля (спрашивает дважды, в логи не попадает) |
|
| `kit local passwd [юзер]`, `--generate` | смена пароля (спрашивает дважды, в логи не попадает) |
|
||||||
| `kit local upgrades on\|off\|status` | обновления безопасности |
|
| `kit local upgrades on\|off\|status` | обновления безопасности |
|
||||||
|
| `kit local uninstall` | **снести установку целиком**: панель, службы и файлы kit, nginx и сайт, сертификаты, наши правки системы и правила ufw для 80/443. Спрашивает слово «удалить», есть `--dry-run`. **SSH не трогает** |
|
||||||
| `kit local hardening`, `masking`, `channel`, `seams`, `version` | сводка защиты, состояние маскировки, канал обновлений, какие места форк правит у автора |
|
| `kit local hardening`, `masking`, `channel`, `seams`, `version` | сводка защиты, состояние маскировки, канал обновлений, какие места форк правит у автора |
|
||||||
|
|
||||||
У любой правки есть `--dry-run` — показывает план и ничего не меняет. Копии изменённых файлов
|
У любой правки есть `--dry-run` — показывает план и ничего не меняет. Копии изменённых файлов
|
||||||
|
|||||||
Reference in New Issue
Block a user