hacker07 3a8518651c
Синхронизация с автором / sync (push) Failing after 1s
подпись релиза 1.2.1.7
2026-10-14 18:05:59 +03:00
2026-10-14 18:05:59 +03:00

3X-UI autoVPS

Сервер одной командой: панель 3X-UI, VPN-протоколы за одним портом 443, одна подписка на все устройства

Сборка со своим каналом обновлений: сервер ставится и обновляется из этого репозитория, релизы подписаны, ночное автообновление не вернёт чужую версию. В основе — открытый проект 3X-UI_autoVPS.

Что ставится

Что Зачем
Панель 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

Установка

От root, на чистом сервере (Debian 11+ / Ubuntu 22.04+, 64-бит):

bash <(curl -fsSL https://git.rukavishnikoff.ru/hacker07/3X-UI_autoVPS/raw/branch/main/scripts/3x-ui-local.sh)

Без флагов скрипт спрашивает всё заранее, до установки: какие протоколы ставить (Enter — REALITY + AmneziaWG-3.1), менять ли порт SSH (Enter — оставить 22), менять ли пароль root, закрывать ли ответ на ping, включать ли автообновления безопасности. Затем сканирует подсеть и предлагает выбрать сайт маскировки — отдельно для REALITY и, если выбраны XHTTP/MTProto, отдельно для них: номер из найденных соседей, 0 — ввести адрес вручную, для XHTTP/MTProto ещё и известный сайт (Google, Microsoft, AMD…).

После установщика скрипт ничего не спрашивает — только выполняет выбранное, проверяет сервер и в самом конце показывает то, что нужно унести: доступ к панели 3X-UI (адрес, логин, пароль) и подписку с QR-кодом и ссылками по протоколам.

Установка одной командой

Если вопросы не нужны — те же ответы задаются флагами:

# минимум: свой домен и два протокола, без вопросов
bash <(curl -fsSL …/scripts/3x-ui-local.sh) --protocols reality,awg3 --domain vpn.example.com

# всё, кроме 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 <(curl -fsSL …/scripts/3x-ui-local.sh) --verify-only   # подпись релиза и сумма установщика
bash <(curl -fsSL …/scripts/3x-ui-local.sh) --dry-run       # что именно будет сделано

Флаги установки

Флаг Что делает
--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
--clean убрать прошлую (оборвавшуюся) установку и поставить заново — SSH не трогает
--auto-sni не показывать меню выбора сайта маскировки, подобрать самим (автоподбор автора)
--no-sub не показывать в конце доступ к панели, подписку и QR-код
--no-time, --no-check, --verify-only, --dry-run, -h служебные

Что происходит по шагам

  1. Проверка сервера: root, Debian/Ubuntu, память, место на диске, занятые порты 80/443.
  2. Проверка релиза: файлы берутся из этого репозитория по тегу, проверяется подпись SHA256SUMS нашим ключом и SHA256 самого установщика. Не сошлось — ничего не запускается.
  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-кодом и ссылками по протоколам. После них скрипт уже ничего не делает и не спрашивает.

Протоколы

Один порт 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.

Сайт маскировки выбираете вы. После скана подсети установщик спрашивает отдельно для REALITY (найденный сосед или свой адрес) и отдельно для XHTTP/MTProto (найденный, свой или известный сайт — список известных расширен Google, Amazon, Samsung, Yahoo, Microsoft, AMD, Intel, NVIDIA). Выбранный адрес проверяется на TLS 1.3 + HTTP/2. Если XHTTP и MTProto не выбраны, второго вопроса нет.

Для протоколов, которые не выбраны, не делается ничего: ни подключений, ни записей в nginx, ни ссылок в подписке, ни лишних обращений к сети (например, обход соседей запускается только когда он действительно нужен).

Сайт-заглушка

На 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 документация проекта
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 uninstall снести установку целиком: панель, службы и файлы kit, nginx и сайт, сертификаты, наши правки системы и правила ufw для 80/443. Спрашивает слово «удалить», есть --dry-run. SSH не трогает
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-CHANGELOG.md что менялось в наших версиях
kit local help команды форка прямо на сервере
S
Description
Личный форк 3X-UI KIT: свой канал обновлений, установка одной командой, команды kit local — см. FORK.md
Readme
9.5 MiB
2026-10-14 12:51:11 +03:00
Languages
Shell 69.4%
Python 19.2%
JavaScript 8.1%
HTML 2.4%
CSS 0.9%