Перейти к содержимому
GitHubПоддержать

Список изменений

Тот же список, что панель показывает в «Настройки → Основное → Обновления». Образы и установщик каждой версии лежат в релизах на GitHub.

  • С доменом Hysteria2, TUIC, AnyTLS и TrustTunnel на своей ноде панели после обновления до 0.5.0.3 обрывали рукопожатие: ссылки больше не закрепляли сертификат, а нода могла остаться на самоподписанном. Теперь нода сразу получает публичный сертификат панели, а новый получает, как только он выдан, продлён или загружен.
  • Меньше нагрузки на сервер: пока в панели никто ничего не делает, PostgreSQL почти не дёргается. Трафик сохраняется раз в 10 секунд вместо 2 (ничего не теряется: нода держит то, что ещё не сохранено), «в сети» и последнее появление устройств раз в 2 минуты, а блокировка торрентов больше не перечитывает всех пользователей и слоты каждые 5 секунд. Уведомления об инфраструктуре и перечитка настроек идут через короткий кэш.
  • Меньше нагрузки в браузере: открытый обзор спрашивает сервер примерно вдвое реже, меню больше не опрашивает цифры обзора на каждой странице, карточка «Требует внимания» делает один запрос вместо трёх, а фон перестаёт двигаться, когда окно не в фокусе или его минуту не трогали.
  • У автонастройки три новых порта, куда она переносит заблокированный протокол: 10443, 11443 и 12443. Когда на одной ноде включены почти все протоколы, прежние двенадцать могли быть заняты, и заблокированный протокол оставался на месте. mikan update открывает порты этого списка в ufw на серверах, где ufw включён.
  • На Android (с отключёнными анимациями или в режиме энергосбережения) окна подтверждения, например «Обновить mikan», уезжали к правому краю экрана, как и панель действий с выбранными клиентами. Теперь они по центру.
  • В тёмной теме страницы подписки и Mini App тариф, которого коснулись, становился белым с нечитаемым текстом. Теперь он выделяется тёмным оттенком, и подсветка под пальцем на телефоне больше не залипает.
  • Процессор на карточке ноды — это весь сервер (на сервере панели туда входят сама панель и её база): теперь он так и называется, «Процессор сервера», а под ним доля самой ноды.
  • Маршрутизация для Clash-приложений («Настройки → Маршрутизация»): сервисы (YouTube, Telegram, Discord, нейросети, игры и другие) через VPN, напрямую, в блок или через выбранный сервер; российские банки, госуслуги и маркетплейсы мимо туннеля; свои DNS; режим «только заблокированное», где через VPN идёт только то, что заблокировано. Или свой профиль Clash в YAML: серверы панель подставит сама. Профили теперь в YAML.
  • Happ («Настройки → Подписка → Happ»): профиль маршрутизации, который Happ добавит вместе с подпиской, скрытые настройки серверов (с вашим Provider ID с happ-proxy.com) и шифрованная ссылка (happ://crypt5) для кнопки Happ и карточки пользователя: адрес подписки не виден.
  • Конструктор страницы подписки («Настройки → Страница подписки»): страница в вашем стиле: палитра, светлая, тёмная или как у посетителя, ваш цвет, фон, шрифт и скругления; логотип или эмодзи; блоки в вашем порядке, включённые или выключенные, с вашими заголовками, своим текстом и кнопками; какие приложения предлагать на каждой платформе; свой CSS. С живым предпросмотром для телефона и компьютера, браузера и Mini App.
  • Инструкции на странице подписки и в Mini App: страницы, которые вы пишете в Markdown, например «Как подключить iPhone».
  • Маскировка для XHTTP («Подключения → подключение → Маскировка»): паддинг и его обфускация, метод и размеры отправки, переиспользование соединений в приложениях, готовые наборы. Сильные настройки требуют свежих приложений.
  • Пользователи: папки, источник каждого пользователя (создан в панели, куплен в боте, пробный, импорт) и скрытые пользователи, всё фильтрами на странице «Пользователи». Трафик по нодам на карточках нод, на графике и в обзоре.
  • С доменом своя нода панели отдаёт публичный сертификат на Hysteria2, TUIC, AnyTLS и TrustTunnel, без закрепления. Приложения, которые ещё не обновили подписку, теряют эти протоколы на этой ноде до обновления (оно идёт раз в час).
  • Новый домен получает сертификат сразу. Свой сайт: файлы из /opt/mikan/data/panel/www отдаются на путях, которые не заняты панелью.
  • Обнаружение блокировок переносит порт, только когда не доходят устройства хотя бы из двух сетей.
  • С выбранным XHTTP в Clash-приложении UDP (звонки, QUIC) больше не уходит мимо туннеля. Настройки паддинга и сессий XHTTP теперь доходят до приложений; REALITY поверх WebSocket не принимается.
  • Приложения sing-box (SFA, SFI, SFM, SFT) получают целый конфиг sing-box с маршрутизацией и DNS панели. Happ и INCY могут брать профиль маршрутизации, который панель собирает из маршрутизации Clash («auto» в настройках Happ). Hiddify 4 получает AnyTLS.
  • Ноды работают на mihomo 1.19.32.
  • Цели проекта: на какие функции идёт сбор денег и сколько собрано. Видно в карточке обновлений («Настройки → Система», можно скрыть) и на сайте документации.
  • Панель удобнее: Настройки и Telegram разбиты на разделы со списком сбоку (на телефоне выпадающий список), на широком экране карточки стоят по две в ряд, шапка страницы и кнопка сохранения всегда на виду, самое нужное наверху (ссылка и QR первыми в карточке клиента, редкие действия ноды в «⋯», меню «Фильтры» у клиентов). Платежи во вкладках, тумблер продажи в шапке. Тексты проще: «Клиенты» и «Протоколы» везде.
  • Маршрутизация на одной странице: свои списки правил по ссылке (privWL и другие списки сообщества), каждый через VPN, напрямую, в блок или через выбранный сервер; как приложения выбирают сервер (самый быстрый или первый рабочий, как часто проверять, группа на страну или без неё); тонкая настройка (блок QUIC, определение сайта по соединению, настоящие адреса вместо fake-ip). Ваши правила Clash на той же странице. Меню слева сворачивается до значков.
  • Аддоны в меню вместо Telegram: Telegram-бот и блокировка торрентов как инструменты, с их состоянием, рядом со способами оплаты из маркетплейса. Бот работает как работал; старые ссылки на его страницу ведут на новую.
  • Фильтры трафика («Аддоны → Фильтры трафика»): ноды не пропускают трафик пользователей на выбранные порты, сети и домены, с пресетом, закрывающим почтовые порты (465, 587, 2525; 25 закрыт и так), и не пускают подключения из выбранных сетей или пускают только из них. Ноды старше панели их пропускают.
  • VLESS TLS («Протоколы → Добавить»): два новых протокола на обычном TLS с настоящим сертификатом домена панели, как у любого сайта, рядом с REALITY. VLESS · TLS · XHTTP на чужие запросы отвечает как веб-сервер и держит мало соединений; VLESS · TLS · Vision работает почти во всех приложениях, и в sing-box тоже. Нода со своим сертификатом использует его, остальные ноды получают самоподписанный с пином в ссылках.
  • Панель аккуратнее: на обзоре нет пустот (карточка сервера по высоте колонки с графиком, протоколы прокручиваются внутри), аддоны в больших карточках с тем, как каждый настроен, меню слева сворачивается плавно и помещается на невысоком экране (разделы прокручиваются, карточка сервера больше не съезжает за край), тёмная тема поправлена: видны инициалы на аватарах, фон спокойнее, выбранные вкладки и разделы заметны, неактивные кнопки серые.
  • Даты промокода: Chrome больше не склеивает год и часы, набранные подряд, в год 202600, а дата, которую панель не может прочитать, больше не сохраняется молча как пустая. То же ограничение у точной даты окончания клиента.
  • Ноды обновляются из панели. На странице «Ноды» видна версия каждой ноды и отмечены отстающие от панели, есть кнопки Обновить и Обновить все. По умолчанию ноды сами следуют за панелью: после её обновления они подтягиваются до её версии по одной, следующая начинает, когда предыдущая заработала. Нода, которая не обновилась, возвращается на свою версию, приходит уведомление, и обновление останавливается. Переключатель в «Настройки → Основное → Обновления».
  • Нода ставит только подписанные релизы и никогда не откатывается на старую версию. Её ночной таймер больше не обгоняет панель.
  • Нодам на 0.5.0.1 и раньше один раз нужен mikan update на их сервере, панель показывает команду. Дальше они обновляются из панели.
  • С привязкой устройств места считаются по привязанным устройствам: телефон, перешедший с Wi-Fi на мобильную сеть, больше не выглядит как два устройства. Адреса подключений показаны отдельно и мест не занимают.
  • «Что изменилось» в «Настройки → Обновления» показывает жирный текст, код и ссылки как надо.
  • Блокировка торрентов («Настройки → Правила Clash»): ноды узнают BitTorrent и не пропускают его, пойманного пользователя можно забанить на всех нодах на выбранное время. Бан вешается на пользователя, а не на IP. Один простой запрос к трекеру никого не банит: нужно три за десять минут, ведь такой запрос может отправить и обычная веб-страница. Пользователей можно исключить, а бан снять в их карточке.
  • Проверка скорости ноды («Ноды → нода»): задержка, потери, загрузка и отдача, с историей. Один тест расходует до 250 МБ на загрузку и 100 МБ на отдачу, ноду можно проверять раз в 5 минут.
  • Название подписки в приложениях («Настройки → Подписка»): имя профиля, которое показывают Happ, v2RayTun и Hiddify, с переменными вроде {name}, {days} и {left}, объявление тоже их понимает.
  • Закрыть пул трафика на тарифе: пользователи тарифа сразу теряют этот пул, пакеты для него им не продаются. При открытии им снова ставится лимит тарифа.
  • Убрать подписку из бота: на экране подписки в боте есть кнопка «Убрать из бота». Снимается только привязка к Telegram: подписка продолжает работать в приложениях и возвращается в бот, если прислать ему её ссылку.
  • Порядок серверов («Ноды», стрелки вверх и вниз): в каком порядке стоят ноды, в таком порядке серверы идут в подписке, во всех приложениях.
  • Промокоды: кнопка Промокоды в боте открывает Mini App со входом, одна кнопка Применить принимает и бонусные, и скидочные коды (скидка применяется при оплате), скидки показываются в рублях. В форме промокода суммы для кода в RUB вводятся в рублях, а минимальная сумма или максимальная скидка требуют выбрать валюту кода.
  • Возврат Telegram Stars забирает то, что дал платёж: новая подписка выключается, продление теряет свой срок (и получает прежний тариф, если с тех пор ничего не менялось), пакет трафика снимается, промокод снова можно использовать. Возвраты, которые Telegram делает сам, работают так же. Покупатель получает сообщение в боте.
  • Бот принимает старые ссылки подписок пользователей, перенесённых из Marzban, PasarGuard или Remnawave, а в карточке пользователя видна старая ссылка (Remnawave) или отметка, что она работает.
  • Каскад: служебный вход на ноде выхода больше не занимает порт, который держит другая программа, а если порт заняли, сам переезжает на свободный. В окне каскада видно его состояние, при сбое приходит уведомление. Работает с нодами на 0.5.0.2.
  • WARP: окно WARP показывает, почему проверка не проходит (нет ответа от endpoint по UDP, DNS, TLS и так далее), нода пишет причину в свой лог, а кнопка Проверить действительно проверяет заново. Уведомление о WARP в Telegram тоже называет причину.
  • За прокси (у протокола свой адрес для прослушивания) сайт маскировки больше не меняется сам, как и порт: прокси, который выбирает подключение по имени сайта, потерял бы клиентов. Обновление выключает это там, где было включено.
  • Clash-приложения (Koala Clash, Clash Verge, FlClash) называют профиль названием подписки из «Настройки → Подписка», а не брендом.
  • Установщик больше не останавливается, если порты 80 или 443 заняты nginx или Caddy. Протоколы с занятым портом получают другие свободные порты. С доменом он предлагает сам добавить правило для Let’s Encrypt в nginx или Caddy: делает копию конфига, проверяет его и откатывает при ошибке. Без вашего согласия только показывает, какие строки добавить.
  • Протокол, чей порт заняла другая программа, сам переезжает на свободный порт, и на сервере панели, и на нодах. Приходит уведомление в Telegram, подписки получают новый порт.
  • Экран установщика: длинные ссылки переносятся, а не обрезаются, вывод других программ больше не остаётся на экране. После завершения полная ссылка и логин печатаются для копирования. Пароль показывается только на последнем экране, новый можно получить командой mikan reset-password.
  • Обновления больше не зависят от релиза «latest» на GitHub: серверы читают подписанный список релизов. Если до версии нельзя дойти напрямую, они сами проходят через промежуточную. В «Настройки → Основное» появился переключатель бета-версий.
  • Несколько сроков в одном тарифе: тариф можно продавать на 7, 30 или 90 дней, у каждого срока своя цена в Stars и рублях («Тарифы → тариф → Другие сроки»). Покупатель выбирает срок в боте и Mini App, лимиты не умножаются, трафик сбрасывается по стратегии тарифа. Счёт сохраняет срок и цену, с которыми выставлен.
  • Пробный период в боте: выберите тариф в «Платежи → настройки», и приветствие бота предложит его один раз на Telegram-аккаунт тем, у кого нет подписки и оплат. Нужен тариф со сроком.
  • Диалоги подтверждения больше не обрезаются на телефонах.
  • Панель переходит на PostgreSQL. Обновление переносит все данные: ссылки подписок, VPN-ключи, ID пользователей, счётчики, платежи и настройки не меняются. Перед переносом делается бэкап, старая база SQLite остаётся на диске. Новые бэкапы — архивы PostgreSQL, старые SQLite-бэкапы по-прежнему можно восстановить.
  • Как обновиться: на 0.4.4 и более ранних версиях сначала обновитесь до 0.4.5 кнопкой Обновить (или mikan update). После этого 0.5.0.0 придёт как обычно — кнопкой Обновить или ночным автообновлением.
  • Если перенос на PostgreSQL не удался, панель остаётся остановленной и сохраняет обе базы; запустите обновление ещё раз.
  • Версии теперь из четырёх чисел: major.minor.patch.revision.
  • Начиная с 0.5 обновление, которое не поднялось, само откатывается на прежнюю версию, если не меняло схему базы; иначе панель остаётся остановленной с данными для повторной попытки. Восстановление бэкапа заменяет базу целиком.
  • Промокоды, новая страница: бонусные дни, дополнительный трафик в основной лимит или в пул трафика, скидки в процентах или фиксированной суммой на тарифы и пакеты трафика. Ограничения по датам, общему числу активаций, активациям на человека, только для новых или для первой покупки и по тарифам. Покупатель вводит код в Mini App, все активации видны в истории.
  • Импорт из другой панели: «Настройки → Импорт» переносит пользователей из Marzban, PasarGuard или Remnawave на выбранный тариф вместе с израсходованным трафиком, сроком, лимитом устройств и заметкой. Сначала проверка показывает, что будет, импорт идёт в фоне. Старые ссылки подписок продолжают работать, когда старый домен направлен на эту панель.
  • Уведомления о серверах в Telegram («Telegram → Инфраструктура»): личные сообщения админу о нодах, WARP, выходах каскадов, протоколах, autotune, TLS-сертификате и обновлениях, и публичный статус серверов в канале. Публичное имя ноды задаётся в её настройках, без него нода в статусе не показывается.
  • Ежедневные бэкапы базы в Telegram-чат админа, зашифрованные вашим паролем, в выбранный час («Telegram → Инфраструктура»).
  • Пять тем оформления: Mikan, Midnight, Ocean, Sakura и Forest, в «Настройки → Основное». Выбор сохраняется в браузере.
  • Страница подписки и приложения: вкладка Linux (SlothClash, Clash Verge Rev, Hiddify), ClashFest и SlothClash в списке приложений, объявление внутри Happ, v2RayTun и ClashFest и ваш бренд в ClashFest и SlothClash («Настройки → Подписка»).
  • Метрики Prometheus на /api/v1/metrics по ключу на чтение; на странице API («Настройки → Безопасность») есть готовый job для сбора.
  • Новый логотип: нарисованный мандарин в панели, на вкладке браузера и на странице подписки.
  • Подготовка к переходу на 0.5: панель и команда mikan понимают версии из четырёх чисел (0.5.0.0), а команда сама обновляется раньше панели, если релизу нужна новая. Больше ничего не меняется, база остаётся прежней.
  • После этого обновления 0.5.0.0 придёт обычным путём: кнопкой «Обновить» в «Настройки → Обновления» или ночным автообновлением. Оно переведёт панель на PostgreSQL, сначала сделав бэкап.
  • ЮKassa и CryptoBot теперь ставятся из маркетплейса, как и остальные способы оплаты. При обновлении панель сама переносит их ключи в адаптеры, просит сервер установить адаптер того, что принимало оплату (на «Платежах» висит уведомление, пока он не запустится), и ничего не ломает: счета, открытые до обновления, оплачиваются через адаптер, адреса уведомлений в кабинетах ЮKassa и CryptoBot остаются прежними, кнопки оплаты в старых сообщениях бота работают. В «Приёме оплаты» остаются Telegram Stars и переключатели продаж.
  • Безопасность сервера: команда mikan больше не доверяет файлам, которые может записать панель, и не ходит по ссылкам в её каталогах, так что взломанный контейнер панели не доберётся до root на хосте. Панель и нода видят только свои каталоги данных, /opt/mikan/data принадлежит root, у панели ограничена память, у обоих контейнеров число процессов. При первом запуске после обновления сервер перепишет compose.yaml (старый останется как compose.yaml.old) и один раз перезапустит контейнеры.
  • install.sh проверяет подпись релиза и хеш установщика до установки; релизы собираются только из main, все действия CI закреплены по коммиту.
  • Обновления и бэкапы: одна блокировка на все операции сервера, неудачное обновление откатывает настройки, а если старая версия не стартует, то и базу; бэкапы закрыты (0700/0600), восстановление проверяет архив и сначала делает снимок, автоматические бэкапы ротируются.
  • Ключи API: создание ключа и включение 2FA спрашивают пароль, смена пароля отзывает ключи админа (есть галочка), полный ключ больше не меняет адреса, ключи, платежи и бота, ключ на чтение не видит ссылки подписок. Попытки входа считаются атомарно и по IPv6 /64.
  • Подписка, привязанная в боте, переходит на другой аккаунт Telegram только с согласия владельца; вход в Mini App действует час. HSTS отдаётся, пока сертификат панели доверенный. Имена, ведущие на внутренние адреса, не принимаются как цели REALITY и прокси бота.
  • Синхронизация нод: недоступную ноду панель повторяет с растущей паузой, а не каждые несколько секунд, один сломанный inbound больше не стопорит всё состояние, невозможные счётчики трафика отбрасываются, нода стартует даже с битыми файлами состояния, панель останавливает фоновые задачи до закрытия базы.
  • Бот: уведомления и оплаты Stars переживают перезапуск и сбой Telegram, позиция в потоке обновлений сохраняется, у вызовов есть таймауты, рассылка идёт пачками.
  • Оплаченные, но не применённые платежи повторяются, пока не применятся, а не бросаются через неделю; история платежей грузится одним запросом.
  • Быстрее: админка и страница подписки легче (Mini App грузит меньше половины прежнего кода), индексы для трафика, устройств и журнала, конфиг подписки держится несколько секунд, политики уходят на ноды только при изменениях. Старые записи трафика и журнала чистятся; устройства без активности забываются через 90 дней, пользователю без лимита устройств доступно не больше 50.
  • Интерфейс: формы не теряют введённое при обновлении данных, при неудачном обновлении данные остаются с пометкой, есть страницы ошибки и 404, массовые действия касаются только видимых строк, контраст до AA. Новый GET /api/v1/audit.
  • Подключения за TCP-прокси (#11): в настройках подключения — блок «За прокси (nginx, HAProxy)». «Где нода слушает» — все адреса (как раньше), только localhost или свой IP: так nginx stream или HAProxy держит порт 443 и раздаёт по SNI подключениям на 127.0.0.1:444, :445… «Адрес», «Порт» и «SNI для клиентов» отдают в подписке адрес прокси вместо адреса ноды (пусто — как сейчас; у REALITY SNI остаётся доменом сайта маскировки). Порт такого подключения сам не меняется: автоперенос порта выключен и не включается, а про автосмену сайта маскировки панель предупреждает — она может сбить маршрут по SNI.
  • Установщик заменяет Docker без compose v2 (docker.io из Ubuntu 22.04 и Debian) на Docker с get.docker.com, но сначала спрашивает: в интерактивном установщике для этого отдельный экран, без него нужен флаг –replace-docker. Образы, тома и контейнеры остаются.
  • Панель без домена снова получает сертификат Let’s Encrypt на IP: в запросе больше нет IP в поле Common Name, из-за которого Let’s Encrypt отказывал (badCSR).
  • Настройки оплаты, которые не удалось прочитать (занятая база), больше не подменяются значениями по умолчанию и не записываются поверх ваших: продажи ставятся на паузу, пока чтение не наладится. Изменения на странице Telegram сохраняются целиком или не сохраняются вовсе.
  • Пакеты трафика (#12): «Тарифы → Пакеты трафика» продают дополнительный трафик для основного лимита или пула (Stars, ЮKassa, CryptoBot) — пока не израсходован, до конца периода или на N дней. В боте в экране подписки есть «Докупить трафик», в Mini App — пакеты для открытой подписки, а в карточке пользователя — список пакетов и «Начислить трафик» для бонуса или компенсации. Сначала тратится трафик тарифа, потом пакеты, первым — тот, что раньше истекает; остаток переходит через сброс трафика. Пользователь или пул, у которых кончился трафик, снова работают сразу после покупки, без новой ссылки.
  • Способы оплаты из маркетплейса: «Платежи → Способы оплаты из маркетплейса → Добавить» показывает подписанный каталог getmikan/marketplace (для начала ЮKassa и CryptoBot) и ставит адаптер на сервер отдельным контейнером; там же форма его настроек, адрес для уведомлений в кабинете платёжной системы и переключатель. В боте и Mini App у него своя кнопка оплаты — для тарифов и пакетов трафика. Уведомлению платёжной системы панель сама по себе не верит: она спрашивает адаптер о счёте и сверяет сумму и валюту со своим платежом. На сервере: mikan addon list, install, remove. Встроенные ЮKassa и CryptoBot работают как раньше.
  • Проще найти нужное: «Настройки» разделены на «Основное», «Подписку», «Правила Clash» и «Безопасность»; «Telegram» — на «Подключение», «Меню и тексты», «Уведомления» и «Рассылку» (несохранённые правки не теряются при переходе); «Тарифы» — на тарифы, пулы и пакеты трафика. В карточке тарифа видны лимиты пулов, у пула — его подключения и лимит в каждом тарифе. Продажу можно включить прямо на странице «Платежи».
  • Домен принимается, только если он ведёт на этот сервер: домен панели в «Настройках» и домен ноды проверяются через публичный DNS при смене домена или адреса сервера, а при ошибке видно, куда домен указывает на самом деле. Установщик тоже останавливается, если у домена есть лишняя A-запись или AAAA-запись на другой сервер.
  • Надёжнее правки: отклонённое изменение подключения (занятый порт, ошибка в конфиге) больше не оставляет половину сохранённой. «Порт занят» — одно правило везде (панель, mikan inbound, автоисправления): теперь оно видит диапазоны портов Hysteria2, relay каскада, порт панели и порт команд ноды. Ноду, через которую идёт каскад или путь бота в Telegram, больше нельзя удалить молча — панель показывает, что от неё зависит. У каждой ошибки панели есть понятный текст, а адреса серверов проверяются одним правилом в панели и установщике.
  • Установка на ARM-серверах (Raspberry Pi 4 и другие arm64) снова работает: в arm64-образе лежали бинарники для x86-64, и установка падала с «exec format error». Теперь сборка образа падает, если бинарник не под его архитектуру. Raspberry Pi нужна 64-битная ОС.
  • Раздел API переехал из бокового меню в «Настройки → API» (старые ссылки /api-docs ведут туда). На странице есть «Скачать OpenAPI»: openapi.json с уже прописанным адресом этой панели — для Postman, Insomnia, Swagger UI и генераторов клиентов.
  • «Платежи» предупреждают, когда боту нечего продавать: нет тарифа «В продаже» с ценой для способа, который принимает оплату, — люди увидят только «напишите в поддержку». Кнопка ведёт в «Тарифы».
  • У продажи подписок свой переключатель в «Настройках». Выключено — бот и Mini App ничего не продают, «Платежи» пропадают из меню, а тарифы прячут цены; счета, открытые раньше, всё равно засчитываются. На новых панелях продажи выключены; панели, где оплату уже настроили, продолжают продавать.
  • Бот может ходить в Telegram через ноду или прокси — для сервера, где Telegram заблокирован: «Telegram → Связь с Telegram» — «Напрямую», «Через ноду» (удалённая нода панели; пропускает только запросы к Telegram, нужна нода 0.4.2) или «Через прокси» (SOCKS5 или HTTP(S), пароль больше не показывается). Путь проверяется перед сохранением. Подключение бота с такого сервера теперь пишет, что нет связи с Telegram, а не «Ошибка сервера».
  • Порт подписки: «Настройки → Порт подписки» переносит ссылки подписок и страницу подписки на отдельный порт, например 443 или 2053, — сразу и без перезапуска. Админка на нём не открывается, а её порт больше не виден в ссылках; старые ссылки на порту панели продолжают работать, клиентам ничего менять не нужно. Порты, открытые при установке, выбираются в один клик, занятые подключениями помечены, а подключения своей ноды больше не могут занять порт подписки — ни вручную, ни автоподбором.
  • Hysteria2 с обфускацией Gecko: новый протокол «Hysteria2 · Gecko» или «Обфускация → Gecko» в настройках Hysteria2. Gecko режет рукопожатие QUIC на куски случайного размера с добивкой — против DPI, который узнаёт QUIC по размерам пакетов. Его получают только приложения на ядре mihomo 1.19.26+, которые сообщают версию ядра (старое ядро не загрузило бы весь профиль); остальным приходит обычный Hysteria2, поэтому держите его рядом. Порт-хоппинг работает как у любого Hysteria2: диапазон портов вроде 20000-30000.
  • Свои правила Clash: «Настройки → Правила Clash» — по правилу в строке (DOMAIN-SUFFIX, GEOSITE, IP-CIDR, PROCESS-NAME и другие; куда — DIRECT, REJECT, PROXY или группа подписки). Они встают перед режимом маршрутизации в каждом Clash-профиле; адреса панели и нод по-прежнему идут напрямую. Каждая строка проверяется при сохранении, ошибка называет номер строки — опечатка не сломает профиль у клиентов; типы правил, которых нет в старом ядре mihomo, получают только приложения, сообщающие версию ядра. Готовые примеры добавляются в один клик.
  • Свои TLS-сертификаты (#9): «Настройки → Сертификат панели → Свой сертификат» принимает цепочку и ключ (файлами или текстом) вместо Let’s Encrypt — порт 80 больше не нужен: wildcard от certbot по DNS, Cloudflare Origin или сертификат вашего центра. «Ноды → Сертификат» делает то же для Hysteria2, TUIC, AnyTLS и TrustTunnel ноды; публично доверенный уходит клиентам без пина, и его продление ничего не ломает. На сервере mikan cert set --cert fullchain.pem --key privkey.pem [--node N] подходит для хука продления certbot или acme.sh, а обновлённый файл подхватывается без перезапуска (сразу или в течение полуминуты). Ключ из панели никогда не отдаётся; истёкший сертификат сменяется автоматическим, и панель об этом пишет.
  • Пулы трафика (#6): часть подключений может считаться в пул со своим лимитом, отдельно от основного трафика — WL-нода на 100 ГБ в месяц, а Германия и Эстония без лимита, в одной подписке. Пулы создаются на странице «Тарифы», подключение добавляется в пул в своих настройках, лимит пула задаётся в тарифе или у пользователя. Когда пул кончился, перестают работать только его подключения (и до сброса пропадают из подписки), остальное работает — и наоборот. Пулы сбрасываются вместе с основным трафиком; карточка пользователя, страница подписки и бот показывают каждый пул.
  • Каскад серверов: подключение может выпускать трафик через другую ноду панели — клиент → нода A → нода B → интернет, сайты видят адрес B, а клиенты подключаются к A. В настройках подключения выберите «Выход в интернет: Через ноду»; служебный вход на ноде выхода панель откроет сама, с отдельным ключом для каждой ноды. Работают и цепочки из трёх и более серверов («Ноды → Каскад»: куда нода выпускает трафик других нод — напрямую, через свой WARP или дальше через ещё одну ноду), петли панель не даст сохранить, WARP не обязателен. Трафик считается один раз, на первой ноде; если нода выхода недоступна, трафик не уходит с адреса первой ноды. «Ноды → Каскад» показывает, какой адрес видят сайты через каждую цепочку.
  • TLS-отпечатки: кроме списка есть «Своё…» — любое имя профиля uTLS (латиница в нижнем регистре, цифры, _), например chrome120 или randomizednoalpn, в «Настройках» и в настройках подключения.
  • Установщик больше не останавливается на «Package manager: busy» на Debian 12: без пакета psmisc он принимал постоянно запущенный фоновый процесс unattended-upgrades за работу apt и сдавался через 10 минут. Теперь он ждёт, только пока apt или dpkg действительно держат свои блокировки, и пишет, какой процесс ждёт.
  • Выбор TLS-отпечатка клиентов: в «Настройки → Подписка» — общий для всех протоколов, в настройках протокола — свой (Chrome, Firefox, Safari, iOS, Android, Edge, 360, QQ или случайный). Ссылки (fp=) и Clash-профили (client-fingerprint) берут выбранный; у Hysteria2 и TUIC такого отпечатка нет.
  • Ключи API и справочник: в новом разделе «API» создаются ключи для скриптов и интеграций (Authorization: Bearer, только чтение или полный доступ, срок по желанию, отзыв), а все методы описаны с параметрами, ответами, примерами curl и кнопкой «Выполнить» для GET-запросов.
  • Продажа подписок: отметьте тариф «В продаже» с ценой в Telegram Stars и/или рублях, включите способы оплаты в новом разделе «Платежи» (Telegram Stars — нужен только бот; ЮKassa — карты и СБП; CryptoBot — криптовалюта), и люди покупают и продлевают подписку в боте и Mini App. Панель создаёт или продлевает подписку, как только провайдер подтвердил оплату, а бот присылает ссылку. Продление добавляет срок тарифа после текущего и, если не выключено в «Платежах», начинает новый период трафика. В «Платежах» — история и возврат Stars.
  • Cloudflare WARP как выход для выбранных подключений (#4): «Ноды → WARP» регистрирует бесплатный аккаунт в один клик (ключ WARP+ — по желанию) или принимает свой WireGuard-конфиг. В настройках подключения выбирается «Выход в интернет: WARP», а список доменов и сетей идёт через WARP у всех подключений ноды; остальное — напрямую. Если WARP недоступен, его трафик не уходит с адреса сервера. Нода показывает адрес, который видят сайты через WARP.
  • У панели есть язык по умолчанию, его выбирают при установке: админка и страница подписки открываются на нём, пока человек не выбрал свой, и на нём же названия по умолчанию (тарифы, группа автовыбора, меню бота). Меняется в «Настройки → Язык по умолчанию»; «Как в браузере» — прежнее поведение.
  • Серверные команды (mikan admin …) — на английском.
  • Нода подключается одной командой, которая ставит всё из последнего релиза; страница «Ноды» показывает её вместе с ключом.
  • Новый установщик и меню сервера в терминале. Сначала язык панели, потом проверки сервера и DNS домена, сайты REALITY рядом с сервером и вход администратора с QR-кодом. Повторный запуск mikan открывает меню: состояние, обновления, логи, доступ, сайты REALITY, ноды, бэкапы.
  • Релизы приходят с GitHub: образ из GitHub Packages, доверие через подписанный манифест. Обновление сначала делает бэкап и откатывается, если новая версия не запустилась.
  • Панель раз в сутки проверяет новые релизы и показывает, что изменилось. «Настройки → Обновления» ставят релиз по кнопке или включают автообновление ночью; значок в боковой панели подскажет, когда вышла новая версия.
  • Вкладка Telegram в админке анимирована как остальные: карточки выезжают по очереди, плашка несохранённых изменений выезжает и уезжает, кнопки меню плавно переставляются.
  • Telegram-бот отправляет сообщения через очередь в рамках лимитов Telegram: сначала ответы, потом уведомления, потом рассылки; при быстрых нажатиях виден последний экран; флуд-ожидания выдерживаются.
  • Уведомления ночью (22:00–9:00 МСК) приходят без звука; у рассылки виден прогресс.
  • Новый фон панели «Рассвет».
  • Кнопка Mini App у поля ввода — одно слово, поле больше не пропадает на телефонах.
  • У цели REALITY по IP видно и проверяется имя сайта (SNI).
  • Telegram-бот для подписчиков с конструктором меню в панели, уведомлениями и рассылками.
  • Страница подписки открывается как Mini App в Telegram.
  • Новые протоколы: TrustTunnel, ShadowQUIC, Mieru; с общим ключом — Shadowsocks-2022, Sudoku, Snell.
  • Подписка отдаёт каждому приложению только те протоколы, которые оно умеет.
  • Автоподбор судит о порте по устройствам, которые до него раньше доходили; ложное «не доходят устройства» ушло.
  • День оплаты и привязка к устройствам против перепродажи ключа.
  • VLESS с постквантовым шифрованием (VLESS PQ).