Skip to content

Releases: vyalu/vemitreya

v2.215.12

Choose a tag to compare

@vyalu vyalu released this 05 Oct 07:18
dbf0287
Update README.md

v2.215.8

Choose a tag to compare

@vyalu vyalu released this 03 Oct 20:00
dbf0287
Update README.md

Vemitreya v2.215.7 — единый экран «Серверы» и исключения автовыбора

Choose a tag to compare

@vyalu vyalu released this 03 Oct 18:23
7dc99a3

v2.207.3 — GeoSite/GeoIP, DNS Mihomo, защита диска

Choose a tag to compare

@vyalu vyalu released this 05 Jun 09:32
7dc99a3

Vemitreya v2.207.3

Релиз вводит UI-помощник для правил GeoSite/GeoIP, графическое управление DNS-конфигурацией Mihomo для полноценной работы доменных правил в transparent-режиме, защиту от переполнения диска при сбоях ядра и расширенную документацию по настройке роутеров.

GeoSite / GeoIP — UI-помощник для правил по категориям

Страница «Правила» разделена на две подвкладки: «Список правил» (прежний редактор без изменений) и «GEO». На вкладке GEO реализован визуальный конструктор правил без необходимости знать синтаксис категорий.

Возможности:

  • Индикатор готовности баз geosite.dat, geoip.dat, Country.mmdb в каталоге Mihomo.
  • Каталог категорий GeoSite в виде чекбоксов: YouTube, Telegram, OpenAI, GitHub, Twitter, Netflix, Spotify, TikTok, Microsoft, Apple, Apple Music, OneDrive, Bilibili, Bilibili International, Bahamut, Abema, Pixiv, E-Hentai, Proxy, Proxymedia, CN, Private — всего 22 курированные категории.
  • Каталог стран GeoIP в виде чекбоксов: RU, US, DE, NL, JP, SG, TR, BY, KZ, CN, GB, FR, UA, Private — всего 14 стран. Правила формируются с автоматическим флагом no-resolve для исключения избыточных DNS-запросов.
  • Выбор целевой группы или канала через единый dropdown — применяется ко всем выбранным категориям/странам пакетно.
  • Кнопка «Стандартный пакет» — добавляет восемь правил, покрывающих типичный сценарий маршрутизации: популярные заблокированные сервисы (YouTube, Telegram, OpenAI, Twitter, GitHub) через выбранный канал, российские IP-диапазоны и локальная сеть — напрямую.
  • Активная подвкладка сохраняется в localStorage между сессиями.

Технические замечания:

Установщик загружает облегчённую базу MetaCubeX/meta-rules-dat, содержащую курированный набор сервисов. Категории category-gfw, category-ru, category-ads-all, а также отдельные категории facebook, instagram, discord, linkedin, twitch в этой базе отсутствуют — для их использования требуется переключение на полную базу Loyalsoldier/v2ray-rules-dat или v2fly/domain-list-community, которое будет добавлено в одной из следующих версий. Каталог UI отражает реально доступные категории, что исключает ошибки валидации Mihomo вида list category-XXX not found in GeoSite.dat.

Backend API:

  • GET /api/mihomo/rules/geo-info — статус баз и каталог категорий/стран для UI.
  • POST /api/mihomo/rules/bulk-add — атомарное добавление пакета правил с единой валидацией (либо записывается весь пакет, либо ничего).

DNS Mihomo — графическое управление DNS-секцией

В разделе «Сервисы» добавлена подвкладка «DNS Mihomo», обеспечивающая управление DNS-секцией config.yaml через интерфейс панели вместо ручного редактирования конфигурации.

Контекст:

В transparent-режиме (прозрачное проксирование трафика клиентов через nftables/iptables redirect) правила GEOSITE срабатывают частично — только за счёт SNI в TLS-рукопожатии для HTTPS. Это приводит к следующим ограничениям:

  • HTTP-трафик, QUIC и любые другие протоколы без читаемого SNI не классифицируются по домену;
  • Правила вида GEOSITE,category-ads-all,REJECT для блокировки рекламы не функционируют;
  • В журнале соединений Mihomo фигурируют IP-адреса, что усложняет диагностику.

Решение — режим enhanced-mode: fake-ip, при котором Mihomo выступает в роли DNS-сервера и возвращает синтетические адреса из диапазона 198.18.0.0/16, сохраняя соответствие IP→домен в памяти.

Возможности подвкладки:

  • Отображение текущего состояния: статус (включён/выключен), активный режим, занятый порт.
  • Выбор режима через radio-группу: off, redir-host (упрощённый, без fake-IP), fake-ip (рекомендуемый для полноценной работы GEOSITE).
  • Настройка слушающего порта (по умолчанию 53), upstream-серверов (nameserver), резервных серверов через DoT (fallback) и списка исключений fake-ip-filter для локальных доменов.
  • Применение конфигурации выполняется через единый pipeline _save_and_validate_mihomo с автоматическим бэкапом и откатом при ошибке валидации.
  • Информационный блок предупреждает о конфликтах с systemd-resolved, необходимости настройки DHCP option 6 на роутере и блокировке UDP/TCP 53 для предотвращения обхода через DoH.

Backend API:

  • GET /api/mihomo/dns — текущая DNS-конфигурация.
  • PUT /api/mihomo/dns — применение режима с настройками.

Документация по роутерам

Файлы docs/routers/mikrotik-ros6.md, docs/routers/mikrotik-ros7.md и docs/routers/keenetic.md дополнены разделом «GeoSite через fake-ip — дополнительные шаги на роутере», содержащим:

  1. Команды настройки DHCP-сервера для выдачи Vemitreya клиентам в качестве DNS-сервера (DHCP option 6) с примерами синтаксиса для каждой платформы.
  2. Правила firewall для блокировки прямых DNS-запросов клиентов на внешние серверы (UDP/TCP 53) — необходимое условие для предотвращения обхода fake-ip через DoH-резолверы браузеров.
  3. Команды проверки корректности конфигурации со стороны клиента: nslookup должен возвращать адреса из диапазона 198.18.0.0/16.

Защита от переполнения диска

При недоступности upstream-серверов (подписочные серверы, прокси-эндпоинты) Mihomo генерирует диагностические сообщения с интенсивностью, превышающей 1000 строк в секунду. В сочетании с дефолтной конфигурацией rsyslog в Ubuntu Server, которая не накладывает ограничения на размер файла /var/log/syslog (только временная ротация — daily/weekly), это приводило к заполнению корневого раздела за 6–12 часов.

В установщик добавлен шаг 6d «Log rotation», который автоматически применяет следующие лимиты:

  • journald: параметр SystemMaxUse=200M в /etc/systemd/journald.conf.
  • rsyslog: правило ротации для /var/log/syslog — максимум 50 МБ × 3 копии (суммарно 150 МБ), для прочих логов rsyslog — 30 МБ × 4 копии.
  • Каталог /opt/vemitreya/backups: автоматическое удаление бэкапов конфигурации Mihomo при превышении 30 файлов (бэкапы создаются при каждом изменении через UI).

Шаг выполняется идемпотентно — повторные запуски установщика не дублируют конфигурацию.

Изменения UI

  • Паттерн подвкладок (subtabs) применён к страницам «Правила» и «Сервисы». Активная подвкладка сохраняется в localStorage с независимыми ключами.
  • Компонент Field расширен поддержкой подсказок (hint), отображаемых под полями ввода в DNS-вкладке.

Установка и обновление

Обновление производится стандартным способом:

wget https://github.com/vyalu/vemitreya/releases/download/v2.207.3/vemitreya-2.207.3.zip
unzip -o vemitreya-2.207.3.zip
cd vemitreya
sudo ./install.sh

В меню установщика выбрать пункт 3 («Обновить существующую установку»). После завершения — обновить страницу панели в браузере с очисткой кэша (Ctrl+Shift+R).

Существующие пользователи, столкнувшиеся с переполнением диска, должны однократно очистить накопившиеся логи:

sudo truncate -s 0 /var/log/syslog
sudo rm -f /var/log/syslog.*.gz
sudo journalctl --vacuum-size=100M

После этого правила ротации, применённые установщиком 2.207.3, предотвратят повторение ситуации.

Совместимость

Релиз обратно совместим с версией 2.206.1. Все новые компоненты являются опциональными расширениями: существующие конфигурации правил, групп, подписок и пользовательских настроек сохраняются без изменений. Активация новых режимов (например, fake-ip в DNS-вкладке) выполняется по явному действию пользователя.

Известные ограничения

  • Полные категории GeoSite (category-gfw, category-ru, category-ads-all и аналогичные) недоступны из-за использования облегчённой базы MetaCubeX/meta-rules-dat. Опция переключения источника geo-данных запланирована.
  • Режим fake-ip требует ручного отключения systemd-resolved на хосте при использовании стандартного порта 53. Автоматизация этого шага не выполняется во избежание неожиданных побочных эффектов на DNS-резолвинг самого сервера.

Полный список изменений с разбивкой по подверсиям доступен в CHANGELOG.md.

Проект развивается на добровольной основе. Поддержать разработку: yoomoney.ru/to/4100116126044784

v2.206.1 — installer fix

Choose a tag to compare

@vyalu vyalu released this 29 May 11:40
99d8881

Исправлено

  • Установщик не показывал API-токен. Команда grep -c при нулевом результате возвращает rc=1, что с set -e тихо обрывало скрипт после блока «Системные исправления». Финальный экран с токеном не доходил. Теперь обёрнуто || echo 0, плюс set +e перед финальным выводом гарантирует, что токен покажется всегда.

Получить токен на уже установленной 2.206

sudo grep '^API_TOKEN=' /opt/vemitreya/.env
# или
sudo vemitreya-token

Установка / обновление

git clone https://github.com/Fender2677/vemitreya.git
cd vemitreya
sudo ./install.sh