OmniGate — это гибридная система управления трафиком, объединяющая в себе функции прозрачного прокси-сервера, DPI-инструмента (обход блокировок без VPN) и селективного маршрутизатора.
- Zero-Touch: Пользователь один раз настраивает списки, дальше система сама решает, как эффективнее доставить пакет.
- Multi-Layer: Трафик делится не на «вкл/выкл», а на три качественных уровня (VPN, WARP, Direct).
- On-the-fly Control: Управление маршрутизацией конкретного домена в реальном времени через мобильное приложение (iOS Shortcuts/API).
В качестве движка предлагается использовать Sing-box. Это наиболее современное, быстрое и гибкое ядро на языке Go.
- Inbounds: Принимает трафик через TPROXY (прозрачное проксирование на уровне ядра Linux) и SOCKS5/HTTP.
- Outbounds:
- AmneziaWG/VLESS+Reality: Для тяжелой артиллерии (AI, заблокированные соцсети с жестким ГЕО).
- WARP (WireGuard/Masque): Для YouTube и стриминга (высокая скорость, скрытие IP).
- Direct: Для локального трафика.
- Routing: Мощный движок правил на основе доменов, IP-адресов и даже гео-данных.
Docker-контейнер на Python/Go, который:
- Генерирует и обновляет конфиги для Sing-box.
- Следит за состоянием туннелей (Healthcheck).
- Предоставляет REST API для внешних команд.
- Взаимодействует с системным файрволом роутера (nftables).
Современная SPA-веб-панель, оптимизированная под мобильные устройства.
- Dashboard: Статус подключений, пинг до AI-сервисов, нагрузка на CPU.
- Rules Manager: Таблица с тремя колонками (VPN / WARP / Direct), куда можно просто перетаскивать домены.
- Log Viewer: Просмотр запросов в реальном времени, чтобы быстро понять, какой домен заблокирован.
Система должна автоматически распределять трафик по следующим правилам:
- Уровень "Strict Privacy" (VPN): * Назначение: Сервисы, требующие чистый зарубежный IP (ChatGPT, Claude, Midjourney, банковские приложения вне РФ).
- Протоколы: AmneziaWG, VLESS (Reality/gRPC).
- Уровень "Fast & Free" (WARP/DPI):
- Назначение: YouTube (обход замедления), Discord, Instagram, Twitter.
- Механика: Если ресурс в списке WARP — пакет идет через Cloudflare. Если ресурс заблокирован по SNI, но доступен с РФ-IP — применяются методы SniShaper (фрагментация пакетов, подмена Host).
- Уровень "Local" (Direct):
- Назначение: Госуслуги, банки РФ, Яндекс, локальные ресурсы провайдера.
- Механика: Полный байпас, исключение из любых цепочек проксирования.
Реализация API для команд Apple Shortcuts:
- Endpoint
/quick-add: Принимает домен и категорию. - Сценарий: Ты заходишь на сайт, он не грузится. Ты жмешь кнопку в виджете iPhone -> Команда берет URL из браузера -> Отправляет на роутер -> Роутер добавляет домен в список "VPN" -> Перезагружает правила -> Сайт начинает работать через 2 секунды.
Интеграция логики SniShaper/GoodbyeDPI:
- TLS Fragment: Разбиение ClientHello.
- SNI Scrambling: Запутывание заголовка для обхода систем DPI провайдера.
- Fake Packets: Отправка мусорных пакетов перед реальным запросом.
- NFTables: Использование
nftablesдля перехвата трафика на портах 80 и 443 и перенаправления его в Docker-контейнер (TPROXY). Это позволит избежать необходимости настраивать прокси на каждом девайсе вручную. - DNS (The Ghost in the Machine): Самый важный момент. OmniGate должен иметь встроенный DNS-сервер (например,
mos-dnsили встроенный вsing-box).- РФ-домены резолвятся через системный DNS провайдера (низкий пинг).
- AI и заблокированные домены резолвятся через DoH (DNS over HTTPS) за рубежом, чтобы избежать "отравления" DNS.
- Base Image:
Alpine Linux(минимальный вес). - Components:
Sing-box(бинарник).Python + FastAPI(для API и логики управления).Nginx(для отдачи фронтенда панели).
- Persistence: Хранение конфигов и списков в
/dataтоме, чтобы настройки не слетали при обновлении контейнера.
- Крупные переключатели (Killswitch для всей системы).
- Выбор активного VPN-профиля (Amnezia, WireGuard и т.д.).
- Редактор списков: Текстовое поле для массового добавления доменов.
- Auto-Sync: Возможность подписаться на внешние списки (например, регулярно подтягивать списки заблокированных ресурсов с GitHub).
- Список последних 50 запросов с указанием:
Domain -> Resolved IP -> Route (VPN/WARP/Direct) -> Result (Success/Fail). - Кнопка "Move to..." рядом с каждым доменом в логе для быстрой перемаршрутизации.
Сценарий А: "Новый ИИ-сервис"
- Пользователь заходит на новый сайт
cool-ai.com. - Сайт выдает "Access Denied" (бан по IP).
- Пользователь нажимает кнопку на телефоне.
- OmniGate прописывает
cool-ai.comв списокoutbound-vpn. - Страница обновляется, всё работает.
Сценарий Б: "Проблемы с РФ-банком"
- При включенном общем VPN банковское приложение тупит.
- OmniGate автоматически видит, что запрос идет к домену
.ru, который находится вwhitelist-direct. - Трафик идет в обход туннелей. Скорость максимальная.
- Этап 1 (MVP): Сборка Docker-образа с
sing-boxи ручным конфигом. Настройкаnftablesна OpenWrt для прозрачного проксирования. - Этап 2 (Backend): Написание API на FastAPI для изменения JSON-конфига
sing-boxи его перезапуска. - Этап 3 (Frontend): Создание веб-интерфейса для управления списками доменов.
- Этап 4 (Automation): Реализация логики автоматического обновления списков и интеграция с iOS Shortcuts.
- Этап 5 (Advanced DPI): Интеграция фишек SniShaper (ECH, Fragmentation) для тех случаев, когда даже WARP не спасает.
Проблема текущих решений (Amnezia, Nekoray, v2rayN) в том, что они либо работают на одном устройстве, либо требуют от пользователя быть системным администратором для настройки роутера. OmniGate решает это за счет:
- Централизации: Один роутер защищает весь дом (ТВ, приставки, телефоны).
- Гранулярности: Мы не гоним весь трафик через медленный VPN, а используем его только там, где это реально нужно.
- Удобства: Управление через API и кнопки делает опыт использования "бесшовным".
Это проект на стыке сетевых технологий и качественного UX. Если реализовать вебка-панель в стиле "Apple-like" (просто и красиво), это станет золотым стандартом для домашних сетей в текущих реалиях.