diff --git a/FORK-CHANGELOG.md b/FORK-CHANGELOG.md index d71d3f9..7eff78f 100644 --- a/FORK-CHANGELOG.md +++ b/FORK-CHANGELOG.md @@ -5,6 +5,11 @@ ## 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`. * Набор по умолчанию — **REALITY + AmneziaWG-3.1** (самый совместимый минимум); ответ «все» ставит полный набор автора. Умолчание задаётся в одном месте (`DEFAULT_PROTOS`). * **Сайт-заглушка переделан на ИТ-тематику:** десять правдоподобных сайтов (дата-аналитика, DevOps, diff --git a/FORK.md b/FORK.md index 26d3c6f..c0f4eac 100644 --- a/FORK.md +++ b/FORK.md @@ -115,7 +115,7 @@ Hysteria2 (UDP 443) работают как работали; исходящий | Описание «швов» в коде автора | `tools/fork_apply.py` | только мы | | Синхронизация с автором и проверки | `tools/fork-sync.sh` | только мы | | Записи о наших версиях | `FORK-CHANGELOG.md` | только мы | -| Предупреждение в шапке `README.md` | первые строки `README.md` | только мы (шов) | +| `README.md` | целиком, включая картинки в `manuals/assets/` | только мы | | Файлы автора (`scripts/kit.sh`, `scripts/3x-ui.sh`, …) | как есть | только автор | Ключевая идея: в файлах автора мы правим только «швы» — несколько констант, одну строку подключения @@ -186,10 +186,11 @@ git push origin dev v$(cat VERSION) upstream Проверять релиз надо логикой самого `kit`, а не одной `sha256sum -c`. 6. **Сборка релиза обращается к GitHub** (сверка закреплённых версий панели и ядра). Из домашней сети TLS до GitHub иногда рвётся (`schannel: failed to receive handshake`) — просто повторить запуск. -7. **Шапка `README.md` — наш шов.** Человек, открывший репозиторий, читает README автора и видит там - команду установки **его** сборки: поставив по ней, он получит авторский канал обновлений, и ночное - автообновление вернёт авторскую сборку. Поэтому сверху вставлен наш блок. Если при обновлении - автора здесь конфликт — оставляем наш блок вверху, остальное берём авторское. +7. **`README.md` — наш файл целиком.** Авторское описание убрано: иначе человек, открывший + репозиторий, читает команду установки **авторской** сборки, ставит по ней и оказывается на + авторском канале обновлений — ночное автообновление вернёт его сборку. При обновлении из + авторского проекта README конфликтует: берём нашу версию (`git checkout --ours README.md`), + авторские правки в нём нас не интересуют. ## Что проверено на сегодня diff --git a/README.md b/README.md index aa16a11..91fdc56 100644 --- a/README.md +++ b/README.md @@ -1,318 +1,196 @@ -> **Это форк — сервер ставится и обновляется из этого репозитория, а не с GitHub.** -> Установка одной командой (подробности и флаги — в [FORK.md](FORK.md)): -> `bash <(curl -fsSL https://git.rukavishnikoff.ru/hacker07/3X-UI_autoVPS/raw/branch/main/scripts/3x-ui-local.sh) --domain vpn.example.com` -> Свои команды `kit local …` и записи о версиях — [FORK.md](FORK.md), [FORK-CHANGELOG.md](FORK-CHANGELOG.md). -> Ниже — **авторское** описание: его команды и значки ведут в репозиторий автора и включают его -> канал обновлений, то есть ночное автообновление вернёт авторскую сборку вместо нашей. -
-3X-UI KIT +3X-UI autoVPS -**Установка 3X-UI одной командой: 11 протоколов, один порт 443, одна подписка на всё** +**Сервер одной командой: панель 3X-UI, VPN-протоколы за одним портом 443, одна подписка на все устройства** -[![Версия](https://img.shields.io/github/v/release/itsnotkubrick/3X-UI_KIT?label=3X-UI%20KIT&color=93E06F&labelColor=221B17)](https://github.com/itsnotkubrick/3X-UI_KIT/releases/latest) -[![Протоколов](https://img.shields.io/badge/протоколов-11-93E06F?labelColor=221B17)](manuals/3x-ui.md#протоколы) -[![3X-UI](https://img.shields.io/badge/3X--UI-v3.9.0-93E06F?labelColor=221B17)](https://github.com/MHSanaei/3x-ui) -[![Звёзды](https://img.shields.io/github/stars/itsnotkubrick/3X-UI_KIT?label=звёзды&style=flat&color=93E06F&labelColor=221B17)](https://github.com/itsnotkubrick/3X-UI_KIT/stargazers) -[![Обновлено](https://img.shields.io/github/last-commit/itsnotkubrick/3X-UI_KIT?label=обновлено&color=93E06F&labelColor=221B17)](https://github.com/itsnotkubrick/3X-UI_KIT/commits) +Сборка со **своим каналом обновлений**: сервер ставится и обновляется из этого репозитория, релизы +подписаны, ночное автообновление не вернёт чужую версию. В основе — открытый проект 3X-UI KIT.
---- +## Что ставится -> [!WARNING] -> **Проект – набор скриптов с открытым кодом.** Он не оказывает услуг связи и не предоставляет доступ -> к серверам. Вы ставите его на собственный сервер и сами отвечаете за соблюдение законодательства -> своей страны. Проект создан в образовательных целях. - -> [!TIP] -> **Вышла версия 1.2:** панель 3X-UI v3.9.0, меню `kit`, раздельная маршрутизация и `--restore`. -> [Что нового](https://github.com/itsnotkubrick/3X-UI_KIT/releases/tag/v1.2) · -> сервер на 1.1.x обновится сам этой ночью, а на 1.0 одной командой: -> ```bash -> curl -fsSL https://raw.githubusercontent.com/itsnotkubrick/3X-UI_KIT/v1.2/scripts/kit.sh -o /usr/local/bin/kit && chmod 755 /usr/local/bin/kit && kit update -> ``` - -**3X-UI KIT** превращает чистый VPS в готовый VPN-сервер за несколько минут. Скрипт ставит -официальную панель [3X-UI](https://github.com/MHSanaei/3x-ui), настраивает все популярные -протоколы, сертификат и файрвол и выдаёт одну ссылку-подписку. Её можно вставить в любое -приложение – оно само получит подходящие ему протоколы. Домен не нужен. - -
-Конец установки 3X-UI KIT -
- -## Возможности - -- 🧩 **11 протоколов на одном порту 443.** Панель, подписка и все TCP-протоколы спрятаны за одним портом, - а на случайный заход сервер показывает обычный сайт. Протоколы: VLESS REALITY, VLESS XHTTP + REALITY, - VLESS WebSocket + TLS, Trojan gRPC + TLS, VMess WebSocket + TLS, Shadowsocks 2022, Hysteria2, TUIC v5, - AmneziaWG, AmneziaWG 3.1, MTProto (прокси для Telegram). -- 🔗 **Одна подписка на все приложения.** Hiddify, Happ, v2rayN, Karing, Clash Verge и FlClash - получают свой формат и только те протоколы, которые распознают. -- 🧭 **Раздельная маршрутизация.** Через VPN идут только зарубежные сервисы, остальное – напрямую. - Правила приезжают вместе с подпиской, DNS не течёт. -- 🥷 **Маскировка.** Со своим доменом на сервере стоит ваш сайт, без него сайт подбирается среди соседей - по подсети. REALITY работает с `xtls-rprx-vision`. -- 👥 **Пользователи во все протоколы сразу.** Один пользователь – одна подписка, общий лимит трафика, - срок и число устройств. Меню `kit` работает как у x-ui: выбрали цифру – готово. -- 💾 **Резервная копия и переезд на новый сервер одной командой.** Копия сохраняет подключения, ключи - и пользователей, а на чистом VPS (даже с другим IP) сервер поднимается из неё за несколько минут. -- 🔄 **Обновляется само, но только подписанными релизами.** -- 🩺 **Проверка и починка сервера** одной командой. - -## Что понадобится - -- VPS с **Ubuntu 22.04/24.04** или **Debian 12/13** и доступом root по SSH -- Свободные порты **443** и **80** – на свежем сервере они свободны - -Нужен VPS? Я сам использую **[IS Hosting](https://ishosting.io/affiliate/NTg4MiM4)** и рекомендую его -(реферальная ссылка). +| Что | Зачем | +|---|---| +| Панель **3X-UI** + ядро **Xray** | управление подключениями и пользователями | +| **nginx** на порту 443 | разводит подключения по именам и путям, отдаёт сайт-заглушку | +| VPN-подключения | REALITY, Hysteria2, AmneziaWG, XHTTP, VLESS-WS, Trojan-gRPC, VMess-WS, Shadowsocks, TUIC, MTProto, WireGuard — какие выберете | +| **Подписка** (`kit-sub`) | одна ссылка на все устройства: Happ, Hiddify, v2rayN, Clash/Mihomo | +| **Сайт-заглушка** | на 443 и в ответе Hysteria2 — правдоподобный ИТ-сайт из нашего набора | +| **ufw**, обновления безопасности, синхронизация времени | защита сервера и корректная работа REALITY | ## Установка -Подключитесь к серверу по SSH и выполните одну команду на чистом VPS. - -Панель 3X-UI, все протоколы на порту 443 и одна подписка на всё: +От root, на чистом сервере (Debian 11+ / Ubuntu 22.04+, 64-бит): ```bash -bash <(curl -fsSL https://raw.githubusercontent.com/itsnotkubrick/3X-UI_KIT/main/scripts/3x-ui.sh) +bash <(curl -fsSL https://git.rukavishnikoff.ru/hacker07/3X-UI_autoVPS/raw/branch/main/scripts/3x-ui-local.sh) ``` -Через пару минут скрипт покажет адрес панели, логин, пароль и подписку с QR-кодом. -Подробно – подключение приложений, дополнительные пользователи и параметры – в **[инструкции](manuals/3x-ui.md)**. +Без флагов скрипт **спрашивает** всё по ходу: какие протоколы ставить (Enter — REALITY + AmneziaWG-3.1), +какую маскировку и домен, закрывать ли ответ на ping, включать ли автообновления безопасности, +менять ли порт SSH (Enter — оставить 22), менять ли пароль root. -## Команды KIT +Установка одной командой -После установки на сервере появляется команда `kit`. Запустите её **без аргументов** – откроется меню, как у `x-ui`: выберите цифру, остальное спросит само. Те же действия одной строкой – в группах ниже (нажмите, чтобы раскрыть). Подробности – в [инструкции](manuals/3x-ui.md). - -
-Пользователи – kit user +Если вопросы не нужны — те же ответы задаются флагами: ```bash -kit user add имя [--gb 50] [--days 30] [--devices 3] # добавить во все протоколы, показать подписку -kit user list # кто сколько израсходовал, до какого числа -kit user link имя [--all | --amnezia | --telegram] # подписка и ссылки «открыть в приложении» -kit user limit имя [--gb N] [--days N] [--devices N] # изменить лимиты (0 – без ограничений) -kit user off имя / kit user on имя # выключить и включить -kit user del имя # удалить -``` -
+# минимум: свой домен и два протокола, без вопросов +bash <(curl -fsSL …/scripts/3x-ui-local.sh) --protocols reality,awg3 --domain vpn.example.com -
-Сеть и маскировка – kit net +# всё, кроме WireGuard, и второй порт SSH +bash <(curl -fsSL …/scripts/3x-ui-local.sh) --protocols все --ssh-port 2222 + +# ничего не спрашивать: ping закрыть, автообновления включить, порт и пароль не трогать +bash <(curl -fsSL …/scripts/3x-ui-local.sh) --yes +``` + +Проверить канал, ничего не меняя: ```bash -kit net # протоколы, порты, сайт маскировки, отпечаток – одним экраном -kit net site [сайт.com] # сменить сайт маскировки (без аргумента – среди соседей по подсети) -kit net port имя порт # сменить порт протокола -kit net off имя / kit net on имя # выключить и включить протокол (kit net on reality2 – второй REALITY) -kit net fp firefox # сменить отпечаток клиента у всех подключений -kit net masq on|off # Hysteria2 отвечает на чужой запрос страницей сайта -kit net dns on|off # DNS в подписке по DoH через прокси -kit net panel domain | ip # панель и подписка по своему домену или по IP -``` -
- -
-Раздельная маршрутизация – kit net split - -Через VPN идёт только список зарубежных сервисов, остальное – напрямую. Подробнее – [в инструкции](manuals/3x-ui.md#раздельная-маршрутизация-kit-net-split). - -```bash -kit net split on # создать список и включить -kit net split check # проверить список -kit net split apply # после правки списка обновить профили Happ и Xray -kit net split off # выключить -``` -
- -
-Обслуживание сервера – проверка, обновление, копия - -```bash -kit check [--deep] [--fix] # проверить сервер; --deep – подключиться клиентом, --fix – исправить безопасное -kit update [--panel] # обновить сейчас; --panel – панель 3X-UI до проверенной версии -kit update --auto # ночное автообновление включить (--manual – выключить) -kit backup # копия сервера: подключения, ключи, пользователи -kit version # версии KIT, панели и ядра +bash <(curl -fsSL …/scripts/3x-ui-local.sh) --verify-only # подпись релиза и сумма установщика +bash <(curl -fsSL …/scripts/3x-ui-local.sh) --dry-run # что именно будет сделано ``` -Копию из `kit backup` на новом чистом сервере поднимает `bash 3x-ui.sh --restore файл`. Если подписка выдавалась -на домене, а не на IP, клиентам достаточно сменить адрес в DNS. -
+### Флаги установки -
-Если не подключается – диагностика - -```bash -kit check --deep # проверить сервер и подключиться к нему клиентом: видно, виноват сервер или сеть -kit net fp firefox # другой отпечаток клиента (вернуть: kit net fp chrome) -kit net site # другой сайт для маскировки -kit net on reality2 # дополнительный REALITY на другом порту -kit backup # не помогло – копия, затем перенос на другой адрес: на новом сервере bash 3x-ui.sh --restore файл -``` - -Один протокол не подключается – попробуйте соседний: у каждого свои сильные стороны (Hysteria2 работает по UDP, -остальные по TCP). В подписке Clash «Авто» выбирает сама, в остальных приложениях – вручную. -
- -## VPN на роутере - -Через прокси идут только нужные сервисы и выбранные устройства, остальное работает напрямую. -Порядок: **1.** установить программу на роутер → **2.** собрать конфиг в [генераторе](#генератор-конфигов-для-роутера) → -**3.** вставить команду из генератора. - -> [!NOTE] -> На роутере работает [XKeen](https://github.com/jameszeroX/XKeen) автора jameszeroX, спасибо ему. - -
-📶 Keenetic: XKeen (jameszeroX) · 8 шагов, 20–30 минут - -Нужны роутер **Keenetic** или **Netcraze** с USB-портом, USB-флешка в формате **ext4** и свой сервер с VLESS -(например, из [этой инструкции](manuals/3x-ui.md)). - -
-1. Компоненты KeeneticOS - -В веб-интерфейсе: **Управление → Общие настройки → Изменить набор компонентов**. Отметьте компоненты -с галочками на картинке и установите. Роутер обновится и перезагрузится. - -![Нужные компоненты KeeneticOS](manuals/assets/keenetic-components.svg) - -
- -
-2. Entware на флешку - -1. Отформатируйте флешку в **ext4** и вставьте её в роутер. -2. Откройте её по сети (`\\192.168.x.x\`), создайте папку `install` и положите туда установщик под процессор роутера: - [mipsel](https://bin.entware.net/mipselsf-k3.4/installer/mipsel-installer.tar.gz), - [mips](https://bin.entware.net/mipssf-k3.4/installer/mips-installer.tar.gz) или - [aarch64](https://bin.entware.net/aarch64-k3.10/installer/aarch64-installer.tar.gz). - Не знаете, какой нужен? Модель роутера – в характеристиках на сайте Keenetic. - -![Установщик Entware на флешке](manuals/assets/entware-installer.svg) - -3. **Управление → OPKG**: выберите флешку и сохраните. Установка займёт несколько минут. - -![Выбор накопителя для OPKG](manuals/assets/keenetic-opkg.svg) - -
- -
-3. Подключение по SSH - -```bash -ssh root@192.168.x.x -p 222 -``` - -Пароль по умолчанию `keenetic`. **Сразу смените его** командой `passwd`. - -
- -
-4. Шифрованный DNS - -Пропишите шифрованные DNS-серверы (DoT или DoH) по -[инструкции Keenetic](https://support.keenetic.ru/ultra/kn-1811/ru/31543-dot-and-doh-proxy-servers-for-dns-requests-encryption.html): -без этого XKeen работает неправильно. - -
- -
-5. Токен для KeeneticOS 5.2 и новее - -XKeen нужен токен доступа к роутеру. Создайте его в разделе **Пользователи и доступ**, вставьте в -[шаблон xkeen.json](https://github.com/jameszeroX/XKeen/releases/download/2.0.1_Beta/xkeen.json) и положите файл на роутер -по пути `/opt/etc/xkeen/xkeen.json`. Подробнее – в [вики XKeen](https://github.com/jameszeroX/XKeen/wiki/Порядок-установки). - -
- -
-6. Установка XKeen - -Подключитесь по SSH и выполните: - -```bash -opkg update && opkg upgrade && opkg install curl tar && cd /tmp -sh -c "$(curl -sSL https://raw.githubusercontent.com/jameszeroX/XKeen/main/install.sh)" -``` - -Если GitHub недоступен, замените адрес на `https://cdn.jsdelivr.net/gh/jameszeroX/XKeen@main/install.sh`. -Установщик спросит ядро (Xray или Mihomo), геобазы и автозагрузку. - -Затем соберите конфиг в [генераторе](#генератор-конфигов-для-роутера) (роутер Keenetic, нужное ядро), вставьте команду в SSH-консоль -и нажмите Enter: файлы запишутся, XKeen перезапустится. - -![Конфигурационные файлы Xray](manuals/assets/xkeen-configs.svg) - -
- -
-7. Какие устройства через прокси - -В веб-интерфейсе откройте **Приоритеты подключений → Политики доступа в Интернет**, создайте политику -с именем **`xkeen`** и перенесите в неё нужные устройства. - -> [!WARNING] -> Без политики `xkeen` через прокси пойдёт трафик **всех** устройств в сети. - -
- -
-8. Проверка - -- На роутере: `xkeen -status` – XKeen должен быть запущен. -- На устройстве из политики `xkeen` откройте сайт, показывающий IP-адрес: он должен совпасть с адресом вашего сервера, - а на остальных устройствах остаться прежним. -- Удобнее управлять настройками из браузера через [XKeen UI](https://github.com/zxc-rv/XKeen-UI). - -
- -Подробная версия с теми же шагами: [инструкция для Keenetic](manuals/xkeen-keenetic.md). - -
- -## Генератор конфигов для роутера - -Вставьте ссылку на сервер или подписку, выберите роутер и ядро, отметьте нужные сервисы – -и получите готовый конфиг и одну команду, которая сама положит его на роутер. -Всё считается в браузере, ссылки никуда не отправляются. -Как поставить XKeen на роутер – в разделе [VPN на роутере](#vpn-на-роутере). - -| Роутер | Ядро | Что получится | Генератор | -|---|---|---|---| -| Keenetic (XKeen) | Xray | `04_outbounds.json` и `05_routing.json`: серверы, выбор сервисов, реклама, свои сайты | [Открыть →](https://itsnotkubrick.github.io/3X-UI_KIT/tools/?core=xray) | -| Keenetic (XKeen) | Mihomo | `config.yaml` с автовыбором сервера, подпиской, Hysteria2, AmneziaWG и веб-панелью | [Открыть →](https://itsnotkubrick.github.io/3X-UI_KIT/tools/?core=mihomo) | -| OpenWrt (Nikki), бета | Mihomo | профиль для Nikki и команда, которая его включит | [Открыть →](https://itsnotkubrick.github.io/3X-UI_KIT/tools/?router=openwrt) | - -## Полезное - -- [XKeen](https://github.com/jameszeroX/XKeen) и его [вики](https://github.com/jameszeroX/XKeen/wiki) – документация по маршрутизации на Keenetic -- [XKeen UI](https://github.com/zxc-rv/XKeen-UI) – веб-интерфейс для XKeen -- [IP-адреса для AmneziaWG](https://github.com/RockBlack-VPN/ip-address) – актуальные списки от RockBlack - -## Поддержать проект - -Скрипты и инструкции бесплатные. Донат добровольный – он помогает оплачивать -тестовые серверы и держать скрипты в актуальном состоянии. Спасибо! 💜 - -| Способ | | +| Флаг | Что делает | |---|---| -| Российской картой, СБП, Tinkoff Pay | [Tribute](https://t.me/tribute/app?startapp=dRsY) | -| Зарубежной картой, Apple Pay, Google Pay | [Buy Me a Coffee](https://buymeacoffee.com/relo.cate) | -| USDT (TRC-20) | `TS83ViXrdezUpp1eFadqj1rBhGLZaba1c1` | -| TON | `UQBchO4XFPwF9MMa_tjXpwqTo8IL2FhUDyllhYuFo8WM-Qbf` | -| Ethereum (ERC-20) | `0xC06F6B3A029d7Ea00705B7028490744e2BC16799` | +| `--protocols all\|minimal\|список` | какие протоколы ставить: `all`, `minimal` (только REALITY) или через запятую. Невыбранные не создаются вообще | +| `--domain ваш.домен` | свой домен для маскировки (A-запись на сервер, свободный порт 80 — сертификат Let's Encrypt выпустит установщик) | +| `--sni сайт.ком` | маскировка под чужой сайт вместо своего домена | +| `--panel-on ip\|domain` | где открывать панель и подписку | +| `--site N\|random\|off` | сайт-заглушка: конкретный из нашего набора, случайный (по умолчанию) или не трогать | +| `--ssh-port N` | перевести SSH на порт N (прежний закроется только после вашей проверки) | +| `--harden` / `--no-harden` | закрыть ping и включить автообновления безопасности / не трогать это | +| `--yes` | не задавать вопросы (для автоматизации) | +| `--host IP`, `--user имя`, `--port N`, `--restore файл` | адрес в ссылках, имя первого клиента, порт REALITY, восстановление из копии `kit backup` | +| `--no-time`, `--no-check`, `--verify-only`, `--dry-run`, `-h` | служебные | -## Благодарности +## Что происходит по шагам -3X-UI KIT построен на работе авторов этих проектов: -[3X-UI](https://github.com/MHSanaei/3x-ui) · -[Xray-core](https://github.com/XTLS/Xray-core) · -[Mihomo](https://github.com/MetaCubeX/mihomo) · -[Hysteria](https://github.com/apernet/hysteria) · -[AmneziaWG](https://github.com/amnezia-vpn) · -[XKeen](https://github.com/jameszeroX/XKeen) +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`. В конце — как забрать ссылки и подписку. + +## Протоколы + +Один порт 443 на всё: nginx разводит подключения по именам и путям, поэтому снаружи видно только +443/tcp (и Hysteria2 на 443/udp). Список и умолчание — как у проекта: невыбранные протоколы не +создаются вообще, ни подключения в панели, ни записей в nginx, ни ссылок в подписке. + +| № | Протокол | Что это | +|---|---|---| +| 1 | **REALITY** | VLESS + Reality, основной вход. **По умолчанию** | +| 2 | REALITY-2 | второй REALITY на случайном высоком порту | +| 3 | Hysteria2 | быстрее на плохой сети (UDP 443) | +| 4 | XHTTP | VLESS + Reality под другим именем маскировки | +| 5 | VLESS-WS | VLESS через WebSocket | +| 6 | Trojan-gRPC | Trojan через gRPC | +| 7 | VMess-WS | VMess через WebSocket | +| 8 | Shadowsocks | Shadowsocks 2022 | +| 9 | TUIC | быстрый UDP-протокол | +| 10 | WireGuard | обычный WireGuard: легко распознаётся, поэтому по умолчанию не ставится | +| 11 | AmneziaWG | AmneziaWG: Mihomo, роутеры Keenetic | +| 12 | **AmneziaWG-3.1** | AmneziaWG с защитой заголовков: приложения AmneziaVPN. **По умолчанию** | +| 13 | MTProto | прокси для Telegram | + +Наш набор по умолчанию — **REALITY + AmneziaWG-3.1**: работает почти везде и не требует +дополнительных объяснений на клиенте. Маскировку и сайт можно менять потом: `kit net site`, +`kit local site`. + +## Сайт-заглушка + +На 443 при неизвестном имени отдаётся страница нашего набора: небольшие правдоподобные ИТ-сайты +вместо стандартных «страница в разработке». + +| № | Сайт | Тема | +|---|---|---| +| 1 | Radian Analytics | дата-аналитика: хранилище, отчёты, дашборды | +| 2 | Circuit Nine | DevOps-консалтинг: CI/CD, инфраструктура, наблюдаемость | +| 3 | Cortex Monitor | мониторинг серверов: проверки, алерты, сертификаты | +| 4 | Bluefin Software | разработка ПО на заказ | +| 5 | Vantage Security | аудит и пентест | +| 6 | Keystone IT | ИТ-поддержка офисов | +| 7 | Meridian Networks | колокейшн и транзит | +| 8 | Lumen Notes | заметки про Linux, nginx и сети | +| 9 | Evercore Backup | бэкапы и восстановление | +| 10 | Halyard Docs | документация проекта | + +```bash +kit local site # случайный сайт из набора +kit local site --list # список с номерами +kit local site 7 # поставить конкретный +kit local site --show # какой стоит сейчас +``` + +Менять страницу нужно **этой командой**: `/var/www/kit/index.html` отдаёт nginx, а Hysteria2 держит +свою копию страницы внутри подключения. Команда обновляет обе — иначе 443/tcp и UDP начнут отвечать +разными страницами, и это заметно снаружи. + +## Команды + +На сервере после установки доступна команда `kit` (без аргументов — меню). + +| Команда | Что делает | +|---|---| +| `kit user …` | `add`, `list`, `link`, `limit`, `on`, `off`, `del` — пользователи, ссылки, лимиты трафика и сроков | +| `kit net` | состояние подключений; `on`/`off` включить-выключить, `site` — сайт маскировки, `masq` — ответ Hysteria2 страницей, `dns` — DoH в подписках | +| `kit port` / `kit port set <имя> <порт>` | какие порты слушают подключения / сменить порт подключения | +| `kit reality add [порт]` | добавить второй REALITY | +| `kit check [--deep\|--fix]`, `kit fix` | проверка сервера (в том числе с самого сервера, как клиент) и безопасные починки | +| `kit update [--panel]`, `--auto`, `--manual` | обновление сборки и панели, режим автообновления | +| `kit backup` | копия сервера (панель, сертификаты, настройки) | +| `kit version` | версии сборки, панели и ядра | + +Наш слой — `kit local` (справка: `kit local help`): + +| Команда | Что делает | +|---|---| +| `kit local site` | сайт-заглушка: случайный, `--list`, номер, `--show` | +| `kit local ssh 2222` / `--status` / `--close-old 2222` | добавить порт SSH / какие слушают / закрыть прежние после проверки | +| `kit local ping off\|on\|status` | ответ на ICMP echo правилом ufw (видно в `ufw status`, отменяется одной командой) | +| `kit local passwd [юзер]`, `--generate` | смена пароля (спрашивает дважды, в логи не попадает) | +| `kit local upgrades on\|off\|status` | обновления безопасности | +| `kit local hardening`, `masking`, `channel`, `seams`, `version` | сводка защиты, состояние маскировки, канал обновлений, какие места форк правит у автора | + +У любой правки есть `--dry-run` — показывает план и ничего не меняет. Копии изменённых файлов +складываются в `/root/kit-local-backup-<дата>/`. + +## Обновление и канал + +- Сервер обновляется из **этого репозитория**: `kit update` и ночной таймер берут релиз с подписью + нашего ключа. Чужой релиз сервер не примет. +- Посмотреть, откуда берутся обновления и чем проверяется подпись: `kit local channel`. +- Управление автообновлением: `kit update --auto` (включить) и `kit update --manual` (выключить), + `kit update` — обновиться сейчас, `kit update --panel` — обновить саму панель 3X-UI. +- Проверить канал, ничего не устанавливая: установщик с `--verify-only` или `kit local channel`. + +## Оговорки + +- **Пароль root** никогда не передаётся флагом: значение в командной строке видно другим процессам. + Спрашивается в ходе установки или меняется `kit local passwd`. +- **Смена порта SSH** делается в два шага: новый порт добавляется, прежний продолжает работать, пока + вы не проверите вход во втором окне. Закрыть прежние: `kit local ssh --close-old 2222`. +- **`apt full-upgrade` не выполняется** — только обновления безопасности: панель и ядро Xray + закреплены на проверенных версиях. +- Версии панели и ядра в сборке сверяются с официальными хешами при выпуске релиза. + +## Документация форка + +| Файл | О чём | +|---|---| +| [FORK.md](FORK.md) | как устроен форк: где наши правки (швы), регламент обновления из авторского проекта, канал, подпись, грабли | +| [FORK-CHANGELOG.md](FORK-CHANGELOG.md) | что менялось в наших версиях | +| `kit local help` | команды форка прямо на сервере | diff --git a/manuals/assets/fork-banner.svg b/manuals/assets/fork-banner.svg new file mode 100644 index 0000000..7f54966 --- /dev/null +++ b/manuals/assets/fork-banner.svg @@ -0,0 +1,10 @@ + + + + + +3X-UI autoVPS +сервер одной командой: панель 3X-UI, VPN-протоколы, один порт 443, одна подписка +свой канал обновлений · подписанные релизы · 13 протоколов · 10 сайтов-заглушек + \ No newline at end of file diff --git a/manuals/assets/script-3x-ui-local.svg b/manuals/assets/script-3x-ui-local.svg new file mode 100644 index 0000000..c69bce6 --- /dev/null +++ b/manuals/assets/script-3x-ui-local.svg @@ -0,0 +1 @@ +Установка сервера одной командойroot@vps: ~> bash <(curl -fsSL https://git.rukavishnikoff.ru/hacker07/3X-UI_autoVPS/raw/ branch/main/scripts/3x-ui-local.sh)==> беру релиз v1.2.6 и проверяю подпись ✓ подпись сошлась, SHA256 установщика совпал==> проверяю сервер Ubuntu 24.04 LTS, ядро 6.8, памяти 1.9 ГБ, диск занят на 15%==> какие протоколы поставить? * 1. REALITY основной: VLESS + Reality, порт 443 2. REALITY-2 второй REALITY на случайном высоком порту 3. Hysteria2 быстрее на плохой сети (UDP 443) 4. XHTTP VLESS + Reality под другим именем маскировки … 8 протоколов … * 11. AmneziaWG AmneziaWG: Mihomo, роутеры Keenetic * 12. AmneziaWG-3.1 AmneziaWG с защитой заголовков: AmneziaVPN 13. MTProto прокси для Telegram [* — по умолчанию: REALITY + AmneziaWG-3.1. «все» — набор автора]Номера через запятую (например 1,12) или «все»; Enter — REALITY + AWG-3.1: 1,12==> протоколы: reality,awg3 — под остальные не создаётся ничего==> запускаю установщик автора (панель 3X-UI, протоколы, заглушка, подписка)==> заглушка: Radian Analytics — data platforms and BI ✓ страница обновлена: /var/www/kit/index.html (3655 байт) ✓ Hysteria2 отвечает той же страницейЗакрыть ответ сервера на ping? Снаружи пинг перестанет отвечать. [Y/n]: yВключить автообновления безопасности? Только security-обновления. [Y/n]: yСменить порт SSH? Сейчас 22. Введите новый номер, Enter — оставить: 2222==> kit fix: синхронизация времени и безопасные починки==> проверяю, что получилось ✓ служба x-ui работает ✓ nginx работает ✓ порт 443/tcp слушается ✓ ufw пропускает 443/tcp ✓ подписка отвечает для Happ ✓ сертификат ~89 дн. ✓ свой домен указывает на этот серверГотово. Сервер поставлен из нашей сборки (3X-UI KIT 1.2.6). ссылки и подписка: kit user link admin · заглушка: kit local site \ No newline at end of file diff --git a/tools/fork_apply.py b/tools/fork_apply.py index e1789fb..e63dc1e 100644 --- a/tools/fork_apply.py +++ b/tools/fork_apply.py @@ -25,19 +25,9 @@ import sys GITEA = os.environ.get("FORK_GITEA_BASE", "https://git.rukavishnikoff.ru/hacker07/3X-UI_autoVPS") SIGNER_FILE = os.environ.get("FORK_SIGNER_PUB", "tools/fork-signer.pub") -# Шапка авторского README: человек, открывший репозиторий, должен сразу видеть, что это форк -# и что ставить надо из него, а не по команде автора ниже (та включает авторский канал обновлений). -README_BLOCK = """> **Это форк — сервер ставится и обновляется из этого репозитория, а не с GitHub.** -> Установка одной командой (подробности и флаги — в [FORK.md](FORK.md)): -> `bash <(curl -fsSL https://git.rukavishnikoff.ru/hacker07/3X-UI_autoVPS/raw/branch/main/scripts/3x-ui-local.sh) --domain vpn.example.com` -> Свои команды `kit local …` и записи о версиях — [FORK.md](FORK.md), [FORK-CHANGELOG.md](FORK-CHANGELOG.md). -> Ниже — **авторское** описание: его команды и значки ведут в репозиторий автора и включают его -> канал обновлений, то есть ночное автообновление вернёт авторскую сборку вместо нашей. - -""" - -README_HEAD = '
\n\n3X-UI KIT' - +# README.md форка — НАШ файл целиком: авторское описание из него убрано, чтобы никто не +# ставил сервер авторской командой и не оказался на авторском канале обновлений. Шва здесь нет: +# при обновлении из авторского проекта README конфликтует и решается в нашу пользу (см. FORK.md). HOOK = """ # --- 3X-UI_KIT (форк hacker07): локальные команды и хуки --- # Подключаем scripts/kit-local.sh, если он установлен. Наш файл: правки автора его не касаются. @@ -192,14 +182,6 @@ def main(): "{ echo \"# 3X-UI KIT $v\"; sha \"${FILES[@]}\" | awk '{ sub(/^\\*/, \"\", $2); print $1\" \"$2 }'; } >SHA256SUMS", "суммы в POSIX-виде без звёздочки (на Windows sha256sum её ставит, и kit её не понимает)", ), - # --- шапка авторского README (чтобы ссылку ниже не приняли за нашу) -------------- - ( - "README.md", - README_HEAD, - False, - README_BLOCK + README_HEAD, - "предупреждение в шапке README: это форк, ставить из него", - ), # --- свои записи о версии (наш файл, авторский CHANGELOG не трогаем) ---- ( "tools/release.sh",