
Телевизор, рабочий ноутбук, КВН, разные маршруты, черные/белые списки. А потом еще сидишь и жонглируешь соединениями, чтобы условный клод не улетел в бан, а жена могла смотреть видео в гостиной с ютуба.
Раньше я пользовался Kvas на Keenetic. Для одного соединения и белого списка его хватало. В моей конфигурации я не мог развести трафик по нескольким соединениям и задать разные правила для ноутбука и телевизора. Да и заходить в консоль каждый раз, когда нужно поправить список, быстро надоело. Kvas на GitHub
В какой‑то момент мы решили сделать своё решение. Делали для себя, а в итоге получилось достаточно универсально. Так появился KeenProxy. В веб‑панели я могу задать разные маршруты для ноутбука и телевизора, а если что‑то пошло не туда — посмотреть в журнале, какое правило сработало. Сейчас сам пользуюсь им на моем Keenetic и, наконец, я действительно понимаю как это работает.
В основе KeenProxy — встроенный sing‑box. Исходники открыты под GPL-3.0-only. Если мы даём вам инструмент, который управляет маршрутами вашей домашней сети, вы как минимум имеете право знать, как он работает. Исходный код KeenProxy
Назначение проекта. KeenProxy предназначен для управления трафиком и маршрутами в сетях, которые вы администрируете. Проект не предназначен для обхода блокировок и ограничений доступа. Используйте его в соответствии с применимым законодательством и правилами вашей сети.

Как выглядит настройка
Возьмём пример с рабочим ноутбуком. В панели добавляем профиль WireGuard, собираем домены и подсети внутренних сервисов в группу и назначаем этой группе нужное соединение. Для ноутбука включаем раздельную маршрутизацию. Тогда трафик к этим сервисам пойдёт через WireGuard, а остальной — напрямую, если для него нет других правил.
Политику можно задать для всей подсети и переопределить для конкретного устройства. Группы назначений поддерживают домены, IP‑адреса, подсети и страны по GeoIP. Для каждой группы можно выбрать соединение, прямой маршрут или блокировку. Есть и отдельные настройки для DNS и переключения на резервное соединение. Руководство по маршрутизации

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

Журнал демо отфильтрован по прямому маршруту. В каждой строке видно устройство, назначение, выбранное соединение и метку Simulated traffic.
Журнал на моем роутере

Что происходит на роутере
Сервис на Go преобразует YAML‑конфигурацию в правила для встроенного sing‑box и правила перехвата для iptables. TCP перенаправляется через REDIRECT. В режиме TPROXY можно перехватывать и UDP, если это поддерживают ядро и модули прошивки.
С доменными правилами есть нюанс. Роутер видит IP назначения, а для правила может понадобиться имя. KeenProxy берёт его из TLS SNI или HTTP Host, если оно доступно. Если читаемого имени нет, он может сопоставить IPv4-адрес с ранее полученным DNS‑ответом. Это запасной вариант. Один адрес CDN может обслуживать несколько доменов, а приложение с собственным зашифрованным DNS может не показать роутеру нужный ответ. Схемы прохождения трафика
Когда прошивка Keenetic или Netcraze пересобирает таблицы файрвола, правила перехвата KeenProxy могут пропасть. В версии 0.8.0 мы добавили опциональный хук NDM netfilter для совместимых роутеров. При событии IPv4-файрвола KeenProxy сразу проверяет переходы в свои цепочки и при необходимости восстанавливает правила. sing‑box в это время продолжает работать. Сторож также проверяет правила каждые 30 секунд по умолчанию. В журнале аудита видно, что запустило восстановление и прошла ли проверка после него. Хук netfilter в KeenProxy 0.8.0
Диагностика и выгрузка для проверки
Если по журналу видно, что маршрут выбран правильно, а соединение всё равно не работает, в разделе «Диагностика» можно отдельно проверить HTTP, HTTPS с проверкой сертификата и передачу данных через выбранное соединение.
Если нужно показать проблему другому человеку, в том же разделе можно скачать ZIP. В нём собраны сохранённые записи трёх журналов — маршрутизации, аудита и системы, — обезличенная сводка действующих настроек и состояние KeenProxy. Секреты и исходный текст сообщений исключаются, а имена и адреса удаляются или заменяются метками. Такой архив можно приложить к описанию проблемы, чтобы вместе разобраться, что произошло.
Что уже работает и что ещё проверяем
Keenetic и Netcraze с Entware — основная платформа. Для неё есть сборки ARM64 и MIPS little‑endian, а в документации описаны установка и обновление. Документация KeenProxy
Поддержка OpenWrt пока экспериментальная. Начиная с версии 0.6.0 релизный пайплайн собирает обычные и облегчённые версии для ARM32, ARM64, MIPS little‑endian и MIPS big‑endian. Для пробного запуска ориентируемся на роутеры с минимум 128 МиБ оперативной памяти и достаточным местом на накопителе. Бинарник и конфигурацию устанавливают вручную. Совместимость перехвата трафика ещё проверяем на физических устройствах, в том числе на прошивках с firewall4. Изменения в релизном пайплайне
MikroTik здесь фигурирует в двух разных сценариях. hAP ac рассматриваем как устройство для испытаний под OpenWrt. Для него подготовили облегчённую MIPS‑сборку, запуск на самом роутере ещё впереди. Штатная RouterOS требует отдельной интеграции. На ARM64-стенде мы проверили sing‑box в контейнере, а сам KeenProxy с RouterOS пока не интегрировали. hAP ac в списке устройств OpenWrt · Контейнеры в RouterOS
Панель можно попробовать в браузере. Если запустите KeenProxy на OpenWrt, расскажите в Issues, на какой модели и прошивке пробовали и какой режим перехвата удалось проверить. Так будет проще собрать картину совместимости по реальным устройствам. Браузерное демо · GitHub Issues
Конечно, документацию мы еще будем дорабатывать, что‑то сами, что‑то с помощью «электронного болвана». Тесты на микротиках тоже еще впереди, я очень надеюсь, что получится завернуть все через containers.
Комментарии (26)

Zivaka
14.11.2026 10:56Тоже использовал KVAS, но с выходом у Keenetic функции Маршруты DNS перешел на нее и никаких проблем, работает стабильно и закрывает все базовые сценарии использования.

atrevido Автор
14.11.2026 10:56Я чуть ниже написал про удобство и резервирование соединений) а так в целом да, это вполне рабочее решение, я с вами согласен

irvy117
14.11.2026 10:56Спасибо, проверю на тестовой железке. Но не могу не спросить две вещи: а) что с поддержкой AWG 3.x? и б) Оно чем-то принципиально отличается от встроенного DNS-based routing в
KeeneticNetcraze кроме мониторинга?
atrevido Автор
14.11.2026 10:56AWG в работе. Там проблема в отсутствии поддержки sing-box. Есть два пути, первый это через локальный socks, который будет автоматом подниматься и проксировать из sing box в amnezia-go. Но это только tcp :(
У амнезии есть свой форк синг бокса, может быть мы сделаем либо специальную сборку с ним, либо будем его отдельно поднимать. Еще в процессе размышления
В общем AWG мне нужен самому, так что придумаем

atrevido Автор
14.11.2026 10:56А отличия от DNS based по сути в удобстве, наверное. Проще для конечного пользователя. Легко и быстро переключать каналы, есть резервирование, если 1 квн отвалился, keenproxy сам переключит на следующий. У меня ещё странный эффект есть, родной кинетиковский wg клиент периодически вешал мне wireguard сервер. Я так и не понял как. Но стоило его отключить, как зависания прекратились. На синг боксе такого нет. Но допускаю что это какая-то особенность моей конфигурации)

Sandreykin
14.11.2026 10:56Очень полезно, спасибо! На своём Netcraze Hopper я настроил маршрутизацию штатными средствами, но при загрузке больше 1000 пользовательских маршрутов вкладка в веб-интерфейсе начинает открываться по несколько минут.

ivvi
14.11.2026 10:56Каковы краткие отличия от awg-manager (в части маршрутизации по доменам и ip-адресам)?

atrevido Автор
14.11.2026 10:56AWG Manager — очень хороший проект. Я на него смотрел.
На Keenetic на данный момент у него больше возможностей для работы со штатными интерфейсами и политиками доступа, включая WireGuard и AmneziaWG. Глубокая интеграция с KeeneticOS — одна из его сильных сторон, и многие возможности завязаны на специфику прошивки роутера. Мы хотим охватить больше устройств. Уже есть экспериментальные сборки KeenProxy для OpenWrt, а запуск на MikroTik в контейнерах RouterOS пока изучаем. AWG Manager · Сборки KeenProxy для OpenWrtПо доменам и IP возможности во многом пересекаются. AWG Manager умеет работать и со штатными DNS- и IP-маршрутами Keenetic, и с правилами своего sing-box. В KeenProxy в раздельном режиме сначала проверяются явные правила по доменам и IP/CIDR, затем правила GeoIP. Для домена движок берёт имя из TLS SNI или HTTP Host. Если в соединении имени нет, KeenProxy может сопоставить IPv4-адрес назначения с доменом из DNS-кэша, пока запись актуальна. Например, правило «этот магазин — напрямую» сработает раньше общего правила по стране, а в журнале можно посмотреть, какой маршрут выбрал роутер. Маршрутизация AWG Manager · Как KeenProxy выбирает маршрут
В целом еще есть ощущение, что awg manager требует больших скиллов от пользователя (что в целом логично), и чуть более сложный. У нас более простая история с fallback, а амнезию мы, надеюсь, в итоге сделаем не хуже

Tabu_retka
14.11.2026 10:56https://github.com/hoaxisr/awg-manager
Работают и wg и awg и vless. Маршрутизация есть.
Nickel3000
14.11.2026 10:56Да и дизайн очень похож.


atrevido Автор
14.11.2026 10:56По дизайну совпадение случайно :) Я в дизайн не уметь от слова совсем, так что с дизайном я просто кодексу описал что я хочу и он мне сгенерировал.
Видимо он сам что-то отреференсил и придумал (скопировал).
Nickel3000
14.11.2026 10:56Пусть будет больше альтернатив для маршрутизации на кинетиках, хороших и разных.

igor469
14.11.2026 10:56Будет ли работать (с допиливанием) на Asus Merlin (+ EntWare arm64) ?

atrevido Автор
14.11.2026 10:56А я не вижу на самом деле противопоказаний. У меня, к сожалению, нет устройства asus, проверить не могу, но если попробуете, то будет здорово. В решении на сам кинетик в завязках только хук на netfilter, а роуты раз в 30 секунд и так сторож проверяет. Но этот хук ставится, только если мы не определили что роутер именно кинетик

igor469
14.11.2026 10:56Установил на Asus Merlin (Firmware: 3006.102.9) Вроде нормально встал и работает. По крайней мере для 1го клиента. Буду изучать и тестировать. Достаточно удобно и понятно.

Inflame
14.11.2026 10:56Сейчас ведь в Кинетиках есть встроенная поддержка AmneziaWG и маршрутизации по доменам. Поэтому не вижу смысла в каких-то сторонних решениях.

ivvi
14.11.2026 10:56Она есть, но домены/адреса/диапазоны надо вбивать руками. Сторонние решения позволяют этот процесс автоматизировать.
Mixael_sas
Т.е. по сути sing-box с удобным интерфейсом. Сильно от mainline отстаёт по версии? Будет ли x86?
atrevido Автор
Сейчас версия mainline, я планирую обновлять. Собрать х86 не проблема, хорошая мысль попробовать на обычном Linux)
dotnetfx40
ну или на openwrt x86