Repository navigation
Releases: vyalu/vemitreya
Release list
v2.215.12
v2.215.8
Vemitreya v2.215.7 — единый экран «Серверы» и исключения автовыбора
v2.207.3 — GeoSite/GeoIP, DNS Mihomo, защита диска
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 — дополнительные шаги на роутере», содержащим:
- Команды настройки DHCP-сервера для выдачи Vemitreya клиентам в качестве DNS-сервера (DHCP option 6) с примерами синтаксиса для каждой платформы.
- Правила firewall для блокировки прямых DNS-запросов клиентов на внешние серверы (UDP/TCP 53) — необходимое условие для предотвращения обхода fake-ip через DoH-резолверы браузеров.
- Команды проверки корректности конфигурации со стороны клиента:
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
Исправлено
- Установщик не показывал 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