Repository navigation
Releases: itsnotkubrick/3X-UI_KIT
Release list
v1.2.1: fix & updates
Updates
- Полное удаление: пункт «Удалить KIT с сервера» в меню
kitостанавливает панель и подписку, убирает таймеры, настройки nginx от KIT, сертификаты, логи, правила fail2ban от 3X-UI и командуx-ui, закрывает порты в ufw и в конце удаляет самkit, чтобы не осталось никаких следов. - Все ссылки на подключения теперь одним экраном (подписка, REALITY, Hysteria2, AmneziaWG, Telegram и остальные): «kit → Пользователи → Показать ссылки».
- Теперь установщик спрашивает, какие протоколы ставить: «Стандарт» (основной набор) или «На выбор» по номерам, хоть один. Слабому серверу столько протоколов ни к чему: меньше процессов и портов, меньше памяти.
- Подсказки KIT больше не заваливают командами: везде, где раньше предлагалась команда, теперь написан путь по меню («kit → Пользователи → Показать ссылки»), а недостающие пункты появились в самом меню (раздельная маршрутизация, DNS в подписках, ответ Hysteria2 чужим запросам, прежние имена сайта, поток vision, «Удалить KIT с сервера»).
- Установщик теперь сообщает, почему ядро Xray не самое новое: на версиях после 26.6 клиенты на sing-box (Karing, Hiddify) перестают подключаться по REALITY, XHTTP и VMess (проверено 13 октября на 26.10.10). Перейдём на новое ядро, когда это исправят.
- Панель и ядро обновляйте только через
kit(«Обновить kit и подписку»). Пункт обновления в менюx-uiставит самые новые панель и ядро Xray, и приложения на sing-box перестают подключаться. Если уже обновили: «kit → Проверка сервера → Исправить безопасное» вернёт проверенное ядро, а «kit → Протоколы, порты и маскировка → Поток vision у REALITY» вернёт vision, который такое обновление сбрасывает. - Глубокая проверка, когда всё зелёное, честно признаётся, что смотрит на сервер изнутри, и подсказывает, как за минуту понять, кто виноват – сеть или клиент: открыть адрес сервера в браузере на том самом телефоне.
- Восстановление из копии стало придирчивее: каталог вместо файла настроек или нечитаемый файл отклоняются, а в
3x-ui.txtне пускаются невидимые символы (например, разворот текста U+202E), которые могли бы подделать то, что вы видите в терминале.
FIX
- Установка больше не падает без причины. «Ошибка в строке 18» случалась из-за чужого сломанного репозитория пакетов (например, speedtest-cli от Ookla без файла Release для вашей Ubuntu): теперь установщик покажет, на что ругается apt, и продолжит. Сертификат Let's Encrypt не выдавался там, где файрвол
ufwуже включён и закрывал порт 80: установщик сам открывает порт на время выпуска и закрывает, если он больше не нужен. А проверка A-записи домена сверяется с публичным DNS, а не с кэшем самого сервера, который помнил «записи нет» ещё до того, как вы её добавили. - Режим «всё на 443» падал на nginx, если имя сайта маскировки длинное: таблица имён была тесновата. Таблицу расширили, а при смене сайта настройка добавляется в уже стоящий конфиг сама.
- Повторный запуск после неудачной установки больше не оставляет сервер на полпути: подключения и nginx собираются заново с одним набором имён, вопросы про протоколы и сайт маскировки задаются снова (раньше повтор молча брал автоподбор), а установщик сначала говорит, что нашёл следы прошлого запуска. Если прошлый запуск был с вашим сертификатом, установщик берёт его сам; а если доверенного сертификата нет вовсе, не рапортует «Готово» без подписки, а прямо говорит, что сделать. «Проверка сервера» теперь замечает, что карта nginx разошлась с сайтами подключений, и чинит её, гоняет
nginx -tи больше не пропускает сломанный конфиг, на котором nginx держится до первой перезагрузки. - MTProto: ссылка из панели вела на внутренний порт 10445, про который снаружи никто не знает, – теперь на 443. А после смены сайта маскировки прежние пользователи Telegram больше не остаются за бортом: секреты переезжают на новый сайт вместе с подключением (ссылки придётся разослать заново, KIT напомнит). Проверка сервера присматривает за mtg, а глубокая здоровается с ним, как настоящий Telegram.
- Hiddify 4.x снова добавляет подписку: он в своей строке называет себя и Clash, поэтому получал YAML, обрезал в нём пробелы и писал «Unable to determine config format». Теперь Hiddify получает обычный список ссылок, а приложения на Clash – по-прежнему свой YAML.
- Смена сайта маскировки больше не обрывает тех, кто ещё не обновил подписку: прежнее имя сайта у REALITY и XHTTP неделю работает рядом с новым, а потом KIT убирает его сам (сразу – в меню «Протоколы, порты и маскировка»). Имя, которое уже занято (например, вашим доменом), KIT теперь не берёт, а говорит, почему; если nginx всё же откажется, покажет, что именно ему не понравилось.
- Обновление больше не винит новую подписку в том, что сломалось до неё: если подписка не отвечала ещё до обновления (например, у встроенной подписки панели включён TLS), установщик так и скажет, покажет код ответа, а обновление доведёт до конца.
Сменился ключ подписи релизов, поэтому сервер на версии 1.2 и ниже сам не обновится. Один раз выполните на сервере эту команду, и дальше автообновление снова заработает:
curl -fsSL https://raw.githubusercontent.com/itsnotkubrick/3X-UI_KIT/v1.2.1/scripts/kit.sh -o /usr/local/bin/kit && chmod 755 /usr/local/bin/kit && kit updateНовая установка ничего не требует.
v1.2
v1.2: панель 3X-UI v3.9.0, меню kit и маскировка по соседям
- Панель 3X-UI обновлена до v3.9.0, а ядро Xray я оставил проверенным: новое не всегда лучше, это показал тест.
kit update --panelобновит панель без смены ядра и настроек, а при сбое откатит всё назад. kitбез аргументов открывает меню, как у x-ui: нажали цифру – готово. Всё про сеть собрано вkit net: порты, протоколы, сайт маскировки, отпечаток.kit check --deepподключается к серверу настоящим клиентом, а--fixлечит безопасное.- Раздельная маршрутизация:
kit net split on– и через VPN идёт только список популярных иностранных сервисов (нейросети, видео, соцсети, мессенджеры, GitHub, Google и другие), а всё остальное напрямую. Правила приезжают вместе с подпиской: Mihomo-приложения берут их из подписки, Happ – из заголовка, приложения на JSON-подписке Xray – из конфига. Список лежит в/etc/kit-sub/rules.yaml, проверка –kit net split check, после правки –kit net split apply. У v2rayN, Karing и Hiddify подписка прежняя. Спасибо VasilevVitalii за идею и первый набросок. - Маскировка: у каждого сервера теперь своя заглушка, она собирается при установке из двадцати тем и пяти вёрсток со случайным названием и цветами (пекарня, переводчик или мастерская по велосипедам – как повезёт). Со своим доменом на сервере стоит ваш сайт, без него – сайт среди соседей по подсети. REALITY теперь с
xtls-rprx-vision, а Hysteria2 отвечает на чужой запрос той же страницей, байт в байт. - Подписка и переезд: ссылка подписки в браузере открывается страницей с трафиком, сроком и кнопками «открыть в приложении», в Clash есть «Авто», а общий лимит считается по всем подключениям пользователя. Со своим доменом панель и подписку можно открывать по домену:
--panel-on domainпри установке илиkit net panel domainпотом. Вернулся--restore: чистый сервер поднимается изkit backup, как из резервной копии настроек телефона. Если Let's Encrypt не выдал сертификат на новый IP, я ставлю самоподписанный и честно об этом говорю. Спасибо xlok1e за исправление времени на Debian 13. - Исправил то, что спотыкалось:
kit backupтеперь работает из любой папки,kit net masq onне роняет Hysteria2, JSON-подписка снова открывается в приложениях на Xray, аkit checkсмотрит, запущено ли ядро и слушает ли каждое подключение свой порт. - Отдельный установщик Hysteria2 ушёл на пенсию: он и так входит в основную установку. Кто ставил его отдельно – сервер работает как работал, а
hy2 updateрасскажет, что дальше. Нужен один Hysteria2 без панели – официальный установщик:bash <(curl -fsSL https://get.hy2.sh/).
Сервер обновится сам этой ночью, нетерпеливым – kit update.
v1.1.2: fix
- Исправил «Ошибка в строке 452»: установка спотыкалась о собственную проверку, как человек о порог в тёмной комнате. Теперь идёт ровно. Спасибо ram0973, который сообщил первым, и xlok1e за точную правку.
ufwбольше не запирает вас снаружи на нестандартном порту SSH (сервер, закрытый от хозяина, – так себе охрана). Имя с точкой не цепляет чужих, аkit fixи откат обновления доводят дело до конца.- Параметры прощают
--port=8443иVPN.Example.COM: я перестал придираться к регистру.
Сервер обновится сам этой ночью, нетерпеливым – kit update.
v1.1.1: Баннер: ровная табличка
Что нового
kit check и kit fix. Раньше, если что-то ломалось, вы гадали по логам. Теперь я научил kit самому осматривать сервер: службы, версии, сертификат, открытые порты, подписку, заглушку, часы. kit check только смотрит и печатает ✅/❌. kit fix чинит найденное и сначала берётся за причину, а уже потом за следствия. Например, x-ui cert включал TLS у встроенной подписки и ломал kit-sub. Теперь kit check это ловит, а kit fix откатывает.
Подписка для Happ
kit-sub пересылает клиентам заголовки Happ. Значения с переводами строк отбрасываются, поэтому через заголовки ничего не подсунуть.
Скачивание ядра Xray
Если GitHub недоступен, запасной путь идёт через зеркало, но архив принимается только при совпадении зашитой SHA256. tools/release.sh сверяет эти суммы с официальными перед каждым выпуском.
Установка стала устойчивее
- Установщик ждёт, пока
unattended-upgradesотпуститdpkg, а не падает на замке. - Если Let's Encrypt отказал в сертификате на IP, ставится самоподписанный запасной с отпечатком в ссылках. Скрипт больше не говорит «Готово» при неработающей панели.
- Ключ запасного сертификата с самого начала пишется с правами 600.
Роутеры
Генератор конфигов теперь один: Keenetic и OpenWrt, ядра Xray и Mihomo.
Спасибо xlok1e за помощь с этим обновлением.
Обновление
kit update
Релизы подписаны, kit update ставит только подписанное.
v1.1
3X-UI KIT v1.1
Большое обновление с акцентом на автономность, безопасность и удобство настройки роутеров.
🚀 Что нового
- Обновления приходят сами. Раз в сутки по ночам сервер проверяет подпись автора и аккуратно обновляет KIT. Все пользователи, настройки и ссылки остаются прежними — эпоха «Мам, удали старый VPN, вот новый» наконец-то закончилась.
- Если подпись не сошлась или подписка перестала отвечать — происходит мгновенный откат.
- Не любите автоматические сюрпризы? Переключитесь на ручной режим:
kit update --manual.
- Резервная копия одной командой. Команда
kit backupсобирает подключения, ключи и пользователей в единый архив.- _Восстановление из бэкапа появится в релизе 1.2: выпускаю только то, что успел проверить на настоящем боевом сервере.
- Маскировка на выбор. Инсталлятор теперь предлагает два пути:
- Стандартный чужой сайт (работает сразу «из коробки»).
- Собственный домен (надёжнее: настоящая страница и сертификат Let's Encrypt).
- Для тихой установки без диалогов:
--domain vpn.example.com. Теперь «под кого косим», решаете вы, а не скрипт за вас.
- Заглушка с характером. При случайном заходе по IP сервер покажет сайт кофейни, портфолио фотографа или блог про Linux. Тысячи серверов 3X-UI KIT больше не выглядят как близнецы.
- Один генератор для роутера вместо двух. Выбираете Keenetic или OpenWrt, ядро Xray или Mihomo, вставляете ссылки — и получаете готовый конфиг вместе с командой, которая сама положит его на роутер. Меньше вкладок, меньше «а я точно там нажал?». Старые адреса генераторов продолжают работать.
- OpenWrt через Nikki (бета). Генератор собирает профиль Mihomo и команду, которая сразу активирует его и перезапустит Nikki. Xray для OpenWrt не предлагаем намеренно: Nikki работает только на Mihomo, и мы просто не даём нажать то, что гарантированно не заработает.
🛡️ Безопасность и исправления
- Проверка установщика по SHA-256. Если установщик 3X-UI кто-то попытается подменить, скрипт посмотрит на него как на незнакомца в чате с «выгодным предложением» и откажется запускать. Сами файлы теперь забираются строго из тега версии, а не из ветки
main. - Честная сверка Hysteria. Контрольная сумма теперь жестко зашита в скрипт, а не проверяется по справке, которую бинарник сам же и принёс. Проверять человека по его собственному рекомендательному письму - так себе затея.
- Защита от инъекций в Hysteria2. Почтовый адрес больше не может случайно выполниться как shell-команда. Особо изобретательный адрес вроде
me@gmail.com;rm -rfтеперь получит вежливый и бескомпромиссный отказ. - Отказ от root для подписок. Сервис
kit-subпереведён на непривилегированного пользователя. Даже если его гипотетически взломают, ключей от сервера у процесса нет - пусть попробует открыть хоть одну дверь.
🔄 Как обновиться с v1.0
Обновиться вручную нужно только один раз, дальше сервер будет делать всё сам:
curl -fsSL [https://raw.githubusercontent.com/itsnotkubrick/3X-UI_KIT/v1.1/scripts/kit.sh](https://raw.githubusercontent.com/itsnotkubrick/3X-UI_KIT/v1.1/scripts/kit.sh) -o /usr/local/bin/kit && chmod 755 /usr/local/bin/kit && kit update