Рекомендуем
VeoSeeBot — нейросети прямо в Telegram Создавайте изображения, видео и тексты с помощью ИИ. Популярные нейросети в одном Telegram-боте.
Открыть бот

KeenProxy - отдельные интернет-маршруты для устройств и сайтов через один роутер

KeenProxy управляет маршрутами интернет-трафика прямо на роутере: отдельные устройства и сайты могут использовать разные соединения, работать напрямую или попадать под блокировку. Проект объединяет sing-box, правила по доменам и IP-адресам, DNS-фильтрацию и веб-панель; основная поддерживаемая среда — Keenetic и Netcraze с Entware, а версия для OpenWrt пока экспериментальная.

KeenProxy
KeenProxy

KeenProxy задаёт разные пути в интернет для устройств и сайтов

Представим домашнюю сеть с телевизором, рабочим ноутбуком и игровым компьютером. Ноутбуку нужен доступ к внутренним ресурсам компании через WireGuard. Телевизор использует собственный набор сетевых направлений, а игровому компьютеру требуется прямой маршрут к серверам игры. Настраивать каждый сервис отдельно на всех устройствах неудобно, особенно когда их много.

KeenProxy переносит эту логику на маршрутизатор. Администратор создаёт подключения и правила, указывает, к каким устройствам они относятся, и применяет настройки через браузер. Дальше роутер сам выбирает выход для подходящих соединений.

Программа разрабатывается командой Ordo Systems и доступна с открытым исходным кодом под лицензией GPL-3.0-only. В её основе работает сетевой движок sing-box, а интерфейс написан на Vue. Сам сервис использует Go. По состоянию на 14 ноября 2026 года последним опубликованным релизом на GitHub является KeenProxy 0.8.0 от 10 ноября 2026 года.

KeenProxy предназначен для администрирования маршрутов в сетях, которыми пользователь управляет на законных основаниях. Это локальный сетевой инструмент: для туннельного выхода требуется собственное или предоставленное провайдером рабочее подключение.

Политики управляют доменами, IP-адресами, странами и устройствами

Основа конфигурации — три понятия: соединение, группа назначений и политика клиента. Соединение описывает доступный выход. Группа содержит домены, отдельные IP-адреса, подсети либо географические условия. Политика определяет, какие правила действуют для конкретной сети или устройства.

ВозможностьКак работаетПример применения
Правила по доменамГруппа имён связывается с указанным выходомРабочий веб-сервис доступен через служебный туннель
Правила по IP и подсетямМаршрут выбирается по адресу назначенияВнутренняя сеть компании направляется в WireGuard
Правила по странамСопоставление IP с базой GeoIPДля выбранных географических направлений задан отдельный канал
Политика подсетиОбщий режим применяется к участникам сетиГостевая сеть использует единые настройки
Политика устройстваДля клиента по MAC-адресу задаётся собственный режимРабочий ноутбук получает исключение из общей политики
БлокировкаПодходящие назначения запрещаются правиломОграничение запросов к определённым доменам

Для клиента предусмотрены три режима: «Раздельный», «Полный туннель» и «Не участвует». В первом случае маршрут выбирают правила. Во втором используется заданное соединение по умолчанию с учётом общих ограничений. Третий исключает клиентский трафик приложений из соответствующего перехвата KeenProxy. Общий перехват DNS на настроенном LAN-интерфейсе может продолжать действовать даже для исключённого клиента.

Правила имеют приоритеты. Сначала обрабатываются глобальные блокировки, затем индивидуальная политика устройства получает преимущество перед политикой подсети. Внутри раздельной маршрутизации явные домены и адреса рассматриваются раньше широких правил по странам. Благодаря этому маршрут к корпоративному ресурсу можно зафиксировать отдельно от общей географической политики.

GeoIP сопоставляет адрес сервера со страной

Для географических условий KeenProxy использует базы MMDB. Возможны правила для выбранных стран и для всех стран, кроме перечисленных. В настройках можно управлять несколькими базами, их приоритетом и обновлениями. Проект поддерживает и базы сетевых категорий.

Результат зависит от того, насколько правильно база определила принадлежность IP-адреса. Крупные сайты используют распределённые сети CDN; их адреса могут меняться, а один IP обслуживать разные ресурсы. Поэтому правило по стране описывает местоположение сетевого адреса по базе, а не язык сайта или физическое местонахождение человека.

WireGuard, sing-box и TrustTunnel подключаются через общую панель

В разделе «Соединения» доступны профили WireGuard, поддерживаемые ссылки и конфигурации sing-box, а также подключение через отдельный клиент TrustTunnel. Для сложных сценариев предусмотрен импорт конфигураций outbound и endpoint в поддерживаемых форматах. Конкретные протоколы зависят от сборки и её компонентов.

Добавление подключения происходит через мастер. Он позволяет выбрать тип, указать параметры сервера или импортировать подходящий файл. Для WireGuard требуется рабочая конфигурация с ключами и адресом удалённого узла. Встроенный движок выполняет сетевую работу, а пользователь задаёт, каким правилам доступно соединение.

У проекта есть две разновидности сборок. Полная включает более широкий набор возможностей движка, в том числе компоненты QUIC, uTLS, WireGuard и gVisor. Lite уменьшает размер бинарника за счёт сокращённого набора протоколов. Например, для ARM64 в релизе 0.8.0 опубликованы файлы примерно 38 МБ и 24,4 МБ соответственно. Эти размеры характеризуют файлы сборок и не показывают реальный расход оперативной памяти на роутере.

Важное ограничение: поддержка отдельных ссылок или протоколов проверяется по документации конкретной сборки. В README проекта прямо указано, что транспорт Xray XHTTP не поддерживается. Возможность импортировать JSON sing-box сама по себе не гарантирует совместимость каждой настройки из этого файла.

Резервное соединение помогает пережить отказ основного выхода

Для одного подключения можно назначить резервное и выстроить цепочку. KeenProxy периодически выполняет HTTP-проверки доступности и при длительной недоступности активного канала выбирает доступный резерв. Когда основной канал стабильно восстанавливается, система может вернуться к нему с задержкой, снижающей постоянные переключения.

Пример: офис использует первый служебный туннель, а второй указан как запасной. При сбое первого новые подключения могут перейти по цепочке резервирования. Уже открытые сеансы иногда обрываются и требуют повторного подключения.

Прямой интернет можно добавить в цепочку как явный резерв. Это отдельное решение администратора: оно допускает выход без туннеля при его отказе. Проверка HTTP подтверждает доступность конкретного проверочного ресурса, поэтому успешный тест ещё не означает исправность всех сайтов, UDP-сервисов или DNS.

Веб-интерфейс объединяет маршруты, состояние роутера и диагностику

Основная работа с KeenProxy ведётся через браузер. В панели есть разделы «Обзор», «Соединения», «Правила», «Журнал», «Диагностика» и «Настройки». Интерфейс поддерживает русский язык, светлую и тёмную темы, адаптируется к узкому экрану.

На главном экране отображаются состояние подключений, наблюдаемый трафик и нагрузка роутера. Отдельно видны ресурсы, потребляемые процессом KeenProxy вместе со встроенным sing-box. Сторонний клиент TrustTunnel учитывается в общих показателях системы.

При редактировании соединений и групп все изменения складываются в общий черновик. Роутер продолжает работать с действующими правилами до нажатия «Применить». Это позволяет подготовить несколько взаимосвязанных правок за один раз и уменьшает риск промежуточной некорректной конфигурации.

Журнал маршрутизации показывает устройство, назначение, выбранный выход и правило, определившее решение. Журнал аудита сохраняет служебные события, включая восстановление правил межсетевого экрана. Системный журнал помогает обнаруживать ошибки запуска, подключения и компонентов.

В диагностике предусмотрены отдельные проверки HTTP, HTTPS с верификацией сертификата и небольшой тест передачи данных. Для обращения за поддержкой программа формирует ZIP с журналами, сведениями о состоянии и обезличенной сводкой конфигурации. Такой архив исключает секреты и часть идентифицирующих сведений, но временные метки, технические параметры и характер активности всё ещё могут быть чувствительными.

У проекта есть браузерное демо. Оно воспроизводит интерфейс с синтетическими адресами, нагрузкой и трафиком. Демо позволяет изучить экраны и последовательность настройки, но не подключается к реальным VPN-серверам и не подтверждает работоспособность на конкретном роутере.

DNS-фильтры и наблюдение за доменами расширяют правила маршрутизации

KeenProxy умеет обрабатывать обычные DNS-запросы, выбирать основной и резервный резолвер, использовать DNS-over-HTTPS и DNS-over-TLS, а также задавать маршрут для запросов DNS. В списке поставщиков настроек присутствуют, среди прочих, Cloudflare, Google Public DNS, Quad9 и AdGuard DNS. Для фильтрации можно подключать списки доменов и исключения, включая источники в распространённых форматах hosts и DNS adblock.

DNS отвечает за преобразование доменного имени в IP-адрес. Для маршрутизации это имеет значение: подключение к сайту часто приходит на роутер уже как запрос к определённому IP. KeenProxy пытается извлечь доменное имя из TLS SNI либо HTTP Host. Если имя недоступно, движок может сопоставить IPv4-адрес с ранее наблюдавшимся DNS-ответом и его временем жизни.

Здесь возникают ограничения. Клиентское приложение может использовать собственный зашифрованный DNS и скрывать свои ответы от роутера. При ECH часть имени в TLS также может быть скрыта. А общий адрес CDN иногда относится сразу к нескольким сайтам. В подобных ситуациях маршрутизация по доменам может сработать иначе, чем ожидает администратор.

DNS-фильтры блокируют подходящие запросы на уровне имён. Они могут сокращать обращения к рекламным и отслеживающим доменам. Элементы, которые загружаются с того же домена, что и основной контент, таким методом надёжно отделить нельзя. Приложения со своим независимым резолвером тоже могут обойти подобную фильтрацию.

На Keenetic и Netcraze установка требует Entware и подходящих модулей

Автоматизированная установка в официальной документации предназначена для Keenetic и Netcraze с Entware. На роутере должны присутствовать компонент OPKG, работающая среда Entware, совместимые утилиты iptables и возможности ядра для перехвата трафика. Разработчики рекомендуют внешний USB-накопитель с достаточным свободным местом. Для UDP-перехвата через TPROXY требуются дополнительные модули ядра.

Последовательность начального развёртывания выглядит так:

  1. Проверить модель и прошивку. Уточнить архитектуру процессора, возможность запуска Entware, поддержку Netfilter и доступное место на носителе. Для штатного установщика предусмотрены ARM64 и MIPS little-endian.
  2. Подготовить Entware. Установить OPKG-компоненты по инструкции производителя, разместить Entware на подходящем накопителе и сохранить резервную копию конфигурации роутера.
  3. Проверить сетевые инструменты. В оболочке Entware убедиться в наличии iptables, iptables-restore, свободной памяти и места в /opt.
  4. Поставить необходимые пакеты и KeenProxy. В официальном руководстве приведены команды установки curl, набора сертификатов и bootstrap-скрипта.
  5. Открыть локальную веб-панель. При стандартной конфигурации она доступна по LAN-адресу роутера на порту 8086. Для авторизации используется токен, сохранённый на устройстве.
  6. Настроить один тестовый клиент. Создать рабочее соединение, небольшую группу назначений, включить раздельную политику и применить черновик. Результат проверить в журнале и на самом клиенте.

Официальная команда установки из оболочки Entware выглядит так:

opkg update && opkg install curl ca-bundle ca-certificates
curl -fsSL https://raw.githubusercontent.com/ordo-systems/keen-proxy/main/tools/bootstrap.sh | /opt/bin/sh

Скрипт загружает выпуск с GitHub, проверяет файлы по SHA256SUMS, устанавливает необходимые компоненты и регистрирует службу /opt/etc/init.d/S99keenproxy. Перед выполнением удалённого скрипта разумно ознакомиться с его содержимым и руководством проекта. При первой установке KeenProxy может начать перехватывать DNS в локальной сети ещё до добавления клиентских политик, поэтому параллельные DNS-перехватчики и сетевые службы способны конфликтовать.

Первоначальная конфигурация находится в /opt/etc/keenproxy/config.yaml, а токен панели — обычно в /opt/etc/keenproxy/token. Для обновления предусмотрены повторный запуск установщика и отдельный раздел веб-панели. Автоматическая установка обновлений по расписанию по умолчанию выключена; поддерживается откат к предыдущей опубликованной версии при выполнении необходимых условий.

OpenWrt пока требует ручной установки и проверки прошивки

Для OpenWrt опубликованы полные и облегчённые Linux-сборки под ARM32, ARM64, MIPS little-endian и MIPS big-endian. Разработчики ориентируются на тестовые устройства с минимум 128 МиБ оперативной памяти и достаточным объёмом постоянного хранилища. Эта цифра относится к экспериментальному сценарию OpenWrt и не является универсально подтверждённым минимумом для всех моделей Keenetic.

На OpenWrt бинарник и конфигурацию пока размещают вручную. Особенно внимательно требуется проверять работу перехвата на прошивках с firewall4/nftables: наличие готового файла для архитектуры ещё не подтверждает совместимость сетевых правил. Готовой интеграции с механизмами hotplug и firewall4 разработчики не заявляют.

Для MikroTik под штатной RouterOS полноценная интеграция KeenProxy также не заявлена. Упоминания MikroTik в проекте относятся к тестовым сценариям OpenWrt и отдельным экспериментам с контейнерами.

Перехват TCP, UDP и IPv6 определяет реальные ограничения

KeenProxy получает трафик от устройств через правила межсетевого экрана. Для IPv4 TCP используется REDIRECT. Режим TPROXY может обрабатывать и UDP, если прошивка и ядро поддерживают нужные возможности. Поэтому совместимость приложения зависит от сетевой реализации роутера, а не только от мощности процессора.

Есть несколько конкретных ограничений:

  • IPv6 находится за пределами основного механизма перехвата. Возможность подавлять DNS-ответы AAAA сама по себе не обеспечивает полной защиты от обхода IPv4-маршрутов через IPv6.
  • UDP на порту 443 у участвующих устройств отклоняется. Браузеры нередко переходят с QUIC на TCP, но отдельным приложениям нужен именно QUIC, и они могут перестать работать.
  • DNS-правила не всегда видят настоящее имя сервиса. На результат влияют ECH, DoH внутри приложения и общие адреса CDN.
  • Переключение резервов затрагивает уже открытые соединения. HTTP-проверка одного URL не заменяет тест конкретного приложения.
  • Статистика и веб-демо не подтверждают отсутствие утечек. Реальное поведение DNS и трафика проверяется на выбранном устройстве и сетевом интерфейсе.

В выпуске 0.8.0 появился необязательный обработчик событий NDM netfilter для совместимых Keenetic/Netcraze. Если прошивка перестраивает таблицы firewall и удаляет правила KeenProxy, обработчик инициирует проверку и восстановление. Дополнительно продолжает работать сторож, проверяющий правила по умолчанию каждые 30 секунд. Оба механизма уменьшают вероятность длительной потери перехвата, но не гарантируют непрерывность соединений при каждой перестройке сетевых таблиц.

При выборе KeenProxy приходится учитывать сложность и доступ к панели

Преимущество KeenProxy проявляется в сетях, где одновременно нужны несколько выходов, разные политики для устройств, группы по доменам и подробный журнал решений. Для одного подключения и простого распределения клиентов часть задач можно решить штатными политиками KeeneticOS либо другими инструментами маршрутизации. Функциональность KeenProxy сопровождается зависимостью от Entware, корректной работы iptables и сетевых особенностей прошивки.

Веб-панель управляет конфигурацией маршрутизатора, поэтому её доступ имеет высокий уровень доверия. При стандартной установке она использует отдельный токен. Публикация порта управления в открытый интернет создаёт дополнительную поверхность атаки; практичнее ограничивать управление доверенной локальной сетью и защищённым административным доступом. Полные резервные копии YAML могут содержать параметры соединений и должны храниться отдельно от публичных журналов.

Отдельной проверки на реальном оборудовании требуют производительность, объём памяти под набором фильтров, совместимость с конкретными VPN-подключениями и работа после обновлений прошивки. Официальное браузерное демо предназначено для изучения интерфейса и не служит доказательством этих характеристик.

KeenProxy 0.8.0 объединяет гибкую настройку с экспериментальным статусом

На ноябрь 2026 года KeenProxy предоставляет маршрутизацию по клиентам, подсетям, доменам, адресам и странам, поддерживает несколько вариантов подключений, DNS-фильтрацию, резервные цепочки и диагностику через браузер. Релиз 0.8.0 добавил восстановление правил по событиям совместимых прошивок Keenetic и Netcraze.

Открытыми остаются вопросы совместимости с отдельными моделями OpenWrt, фактического расхода ресурсов под большой нагрузкой и поведения IPv6 в смешанных сетях. Для MikroTik RouterOS собственная интеграция KeenProxy на момент подготовки материала не подтверждена. Объём независимых испытаний пока ограничен, поэтому характеристики конкретного роутера нельзя достоверно вывести из возможностей веб-панели.

Источники

При использовании материалов сайта необходимо указывать ссылку на TGLand.ru. Если вы копируете фрагменты текста в интернете, прямая гиперссылка, доступная для индексации поисковыми системами, должна быть размещена в начале материала.

Вам также может понравиться