Sing-box Router
Sing-box Router — это движок маршрутизации с использованием программы Sing-box. Он сопоставляет пакеты по SNI, т.е. по доменам, перехватывая DNS-запросы целевых устройств, и применяет правила на уровне заданные внутри конфигурации Sing-box. По сравнению с обычной Маршрутизацией Keenetic (через ipset) это даёт точность по доменам: запрос к нужному домену пойдёт в туннель, даже если домен находится за общим CDN с десятками других сайтов, которые туда отправлять не следует.
Sing-box маршрутизация представлена тремя режимами:
- TProxy — перехватывает пакеты на уровне ядра, не изменяя их IP-адрес.
- FakeIP — c применением DNS сервера, выдающим IP-адреса из диапазона, не используемого в сети.
- Policy-tun — использование механизмов KeeneticOS для сохранения правил маршрутизации и управлениее через OpkgTun интерфейс. Та политика доступа в которой используется интерфейс OpkgTun c именем “awgm-policy tun” как выход будет обрабатываться движком маршрутизации.
Очень важно: использование этого типа маршрутизации в режиме “Policy-tun” требует производительного устройства, минимально KN-3811/12 (т.е. решения на ARM архитектуре), а при большом количестве маршрутизируемых устройств может потребоваться более мощное оборудование. В этом режиме правила маршрутизации переживают любые действия KeeneticOS над iptables, и правила переживают эти вмешательства, поскольку прошивка роутера о них “помнит” и “знает”.
Чтобы FakeIP-правила вообще сработали для устройства в локальной сети, должно выполняться главное:
Клиент должен использовать FakeIP DNS — этого можно достичь через настройку DNS на устройстве, через DHCP для сегмента или через настройку upstream DNS для всего роутера по Вашему выбору.
Если в режиме TProxy вы замечаете “обрывы”/“разрывы” в играх или еще где-то, то возможные решения проблемы:
Используйте режим Policy-tun - в этом режиме UDP трафик не может “утечь” мимо интерфейса-приемника Singbox. Отключите встроенный ускоритель - в CLI роутера no ppe, system configuration save. Откажитесь от использования Singbox маршрутизации - вместо этого используйте другие программы и решения.
Когда нужен Sing-box Router
Sing-box Router нужен прежде всего, когда обычная маршрутизация по DNS/IP начинает выдавать ложные срабатывания на CDN: правило для одного домена отправляет в туннель IP, через который проходят сотни нерелевантных доменов, и в туннель утекает посторонний трафик. Sing-box матчит запрос по самому домену в перехваченном DNS-запросе, поэтому такого побочного эффекта нет. Дополнительно он даёт готовые geosite/geoip-наборы из публичных репозиториев (sing-geosite, sing-geoip), composite outbound’ы (selector/urltest) внутри одного правила и действие reject — блокировку трафика на уровне роутера без подкладывания пустого ipset.
Режимы работы: TProxy и Fake-IP
Начиная с 2.15.0 у движка два взаимоисключающих режима, каждому соответствует своя вкладка на странице Маршрутизация:
- Sing-box: TProxy — классический режим: правила применяются через netfilter/TPROXY, DNS перехватывается у устройств, привязанных к политике (или у всего роутера). Это тот режим, который описан на этой странице.
- Sing-box: FakeIP — режим с TUN-инбаундом (через OpkgTun) и fake-ip: sing-box перехватывает DNS сам и сопоставляет домены с правилами, без необходимости переключать DNS на клиентах (см. ниже).
Активен всегда только один режим: вкладка активного режима яркая, спящего — приглушена. Переключение сопровождается модалкой с перечнем шагов («Что произойдёт») и предупреждений; активные соединения при переключении разрываются.
Режим Fake-IP
В режиме Fake-IP sing-box поднимает TUN-интерфейс (opkgtun, создаётся через NDMS) и отвечает на DNS-запросы синтетическими адресами из пула fake-ip (по умолчанию 198.18.0.0/15), запоминая соответствие «домен ↔ адрес». Трафик к таким адресам приходит в TUN, и sing-box уже знает, к какому домену он относится — правила по доменам работают для любых клиентов сети.
Чтобы режим заработал, нужно указать DNS-адрес sing-box-стороны туннеля — 172.18.0.2 (IPv6 — fdfe:dcba:9876::2) — как единственный DNS-сервер в роутере. Адрес показан в карточке tun-инбаунда в строке «DNS клиентам»; awg-manager не раздаёт его по DHCP автоматически. Править DNS/DHCP на самих клиентах не нужно.
У режима своя, изолированная конфигурация (правки Fake-IP не смешиваются с конфигом TProxy) и свой набор подстраниц: Обзор, Inbounds, Outbounds, Rule sets, DNS, Маршруты, Устройства, Соединения, Журнал. В разделе DNS есть инспектор DNS-маршрутов — вводите домен и видите, какое DNS-правило сработает и куда уйдёт резолв (fake-ip → туннель, реальный апстрим или локальный резолв роутера).
С 2.16.0 вкладка Inbounds (и одноимённая панель в экспертном режиме TProxy) показывает все inbound’ы итогового конфига, а не только tun-in и прокси устройств: mixed-входы подписок, сводных групп и туннелей, tproxy-входы QoS — каждый с указанием источника-владельца. Входы, которые в данный момент никто не питает (например, NDMS-прокси выключен), помечаются бейджем «резерв порта»: порт сохраняется за объектом, чтобы при включении номера портов не менялись.

Ограничения, о которых предупреждает модалка включения:
- Устройства с собственным DoH/DoT резолвят домены мимо fake-ip — их трафик в туннель не попадёт.
- Режим использует gvisor-стек: пропускная способность ниже TPROXY (ориентир ~25 Мбит/с на типовом SoC, меньше на слабых).
Где находится
Вкладки Маршрутизация → Sing-box: TProxy и Sing-box: FakeIP видны только при установленном sing-box и на уровне использования Продвинутый (см. Настройки). У страницы TProxy два режима отображения — переключатель Простой / Эксперт в правом верхнем углу. Это один и тот же конфиг, разница только в подаче: простой режим показывает «что и куда отправлять», экспертный раскрывает все объекты sing-box как есть. Рядом с переключателем — живой счётчик соединений, кнопка параметров движка, поиск по правилам и просмотр итогового конфига.
Простой режим
Сверху — схема потока трафика: источник (устройства, привязанные к политике) → движок sing-box → назначения (куда уходит трафик по умолчанию и какие правила ведут в туннели). Клик по карточке источника открывает выбор: обрабатывать устройства в политике (только привязанные к NDMS-политике) или весь роутер (весь LAN-трафик без привязки к политике); здесь же выбирается или создаётся сама политика. Клик по карточке движка — его параметры.

Ниже — список «Что и куда отправлять»: правила применяются сверху вниз, срабатывает первое подходящее. Первые строки — системные (анализ протокола, перехват DNS, локальная сеть напрямую), они заблокированы от редактирования. Дальше — ваши правила: иконка сервиса, условия (домены, наборы) и действие справа — туннель, Напрямую или Заблокировать. Правила перетаскиваются за «ручку» слева, редактируются карандашом.
+ Правило открывает пошаговый редактор: «Что направить» — готовый шаблон сервиса (YouTube, OpenAI, Kino.pub, …) или ручное описание (домены, IP, CIDR, порты, geosite:/geoip:); «Куда» — через туннель / напрямую / заблокировать; «Превью» — что именно добавится в конфиг.

Если конфигурация пустая, вместо списка правил показывается мастер первичной настройки: выбрать сервисы из пресетов → выбрать туннель → отметить устройства → Применить. Мастер собирает минимальную рабочую связку (политика, правила, DNS) за один проход — для первого запуска это самый короткий путь.
Движок sing-box
Панель Движок sing-box открывается кликом по карточке движка (или кнопкой параметров в шапке): состояние (включён/выключен), версия sing-box и зависимости — модуль netfilter и доступность TPROXY target. Здесь же движок включается, выключается и перезапускается. Если зависимость не готова, панель покажет, чего именно не хватает.
С 2.16.0 упавший процесс sing-box (например, убитый OOM-killer’ом) вотчдог поднимает автоматически и в режиме TProxy, и в FakeIP. От crash-loop защищает пауза с нарастанием: три быстрых перезапуска за 10 минут выполняются сразу, дальше — экспоненциальная задержка до 15 минут. Панель движка показывает счётчик «Падений за 10 мин», причину последнего падения (SIGKILL без stderr распознаётся по dmesg как нехватка памяти) и до какого времени приостановлен автоперезапуск; ручной Перезапустить работает всегда.

В экспертном режиме панель раскрывает дополнительные секции:
- Анализ трафика — тумблер Включить sniff (анализ HTTP/TLS/QUIC по содержимому) и UDP таймаут сессии (с 2.15.0): как долго sing-box держит UDP-сессии активными, от «По умолчанию (5 мин)» до 3 часов. Увеличьте, если игры или другие UDP-приложения обрываются каждые несколько минут. Изменение применяется к работающему движку без рестарта.
- Исключения портов (с 2.15.0) — трафик, который должен идти мимо sing-box прямо в WAN: пресеты-чипы (l2tp, ntp, netbios-smb), поле Доп. порты (chips-ввод, например
443 TCP; с 2.16.0 поддерживаются и диапазоны —5000-5500 UDP) и поле Доп. подсети — IP или CIDR, чей трафик целиком обходит sing-box (нужно, например, для корпоративных VPN вроде Cisco AnyConnect). - Селективный перехват (с 2.16.0, только TProxy) — тумблер «Только трафик из правил»: в sing-box попадает только трафик к целевым IP из правил маршрутизации, весь остальной идёт напрямую в WAN, минуя движок целиком. Соединения стабильнее и предсказуемее — игры, стриминг и локальный трафик не проходят через прокси-цепочку. Работает через ipset (
AWGM-SELECTIVE), который наполняется из IP-матчеров и резолва доменов ваших правил; требует пакетipset(панель предложит установить), режим TProxy иroute.final = direct. В секции — статистика записей, кнопки пересборки и просмотра содержимого ipset; затянувшуюся, но живую пересборку можно отменить кнопкой Отменить пересборку в модальном окне. - QoS-маршрутизация (DSCP) (с 2.16.0, только TProxy) — до 8 классов «DSCP-метка → туннель»: трафик, помеченный на клиентском устройстве меткой DSCP (например, политикой QoS в Windows), направляется в выбранный outbound в обход остальных правил. Типичные метки: 46 (EF — голос/игры), 32 (CS4 — видео), 8 (CS1 — фоновая закачка). Кнопка «Как пометить трафик на ПК» открывает справку с готовыми командами для Windows и Linux. Требует модуль ядра
xt_dscp— если модуля или расширения iptables нет, функция мягко отключается, не ломая движок.
Sing-box Router работает через TPROXY/netfilter и требует системного компонента Модули ядра подсистемы Netfilter. Если он не установлен, на странице появляется баннер с указанием установить компонент через веб-интерфейс роутера (Управление → Общие настройки → Изменить набор компонентов).

Экспертный режим
Все объекты конфигурации на одной странице: сводные счётчики сверху (движок, правила, rule-sets, outbounds, DNS, rewrite, прокси) и секции ниже.

Правила и Rule Sets
Правило — одна строчка матча: условия (домены, IP-CIDR, source-IP, порты, ссылки на rule_set) плюс действие — направить в outbound или заблокировать (reject). Rule set — переиспользуемый набор паттернов: remote (sing-box сам скачивает srs-файл по URL и периодически обновляет), local (файл на роутере), inline (правила прямо в конфиге); кроме того, модалка предлагает быстрые типы Geosite и GeoIP — готовый набор по имени, без ручного URL. Несколько правил могут ссылаться на один набор — удобно для крупных списков вроде sing-geosite. Порядок правил важен: first-match-wins; глобальный Final outbound определяет, куда уходит всё, что не попало ни под одно правило (по умолчанию direct — мимо VPN).
С 2.15.0 в тулбаре таблицы наборов есть кнопка Сортировать наборы по алфавиту — она упорядочивает и список rule-set’ов, и их порядок в выпадающих списках DNS-правил. Сортировка касается только отображения, сами наборы не пересоздаются.
Массовые операции (с 2.16.0)
На страницах правил обоих режимов (TProxy и FakeIP) есть режим выделения: чекбоксы на карточках правил и кнопка Выбрать все, внизу — панель «N выбрано → выбрать выход → Применить», которая меняет outbound сразу у всех отмеченных правил одним запросом. В TProxy правки попадают в общий черновик и применяются кнопкой Применить, в FakeIP — сразу, одной перезагрузкой движка. Так же массово меняется download detour у выбранных remote-наборов правил. В выборку попадают только правила с реальным выходом-туннелем: системные (sniff, hijack-dns) и правила «Напрямую»/«Заблокировать» из массовой операции исключены. Валидация строгая — при любом некорректном элементе (неизвестный тег выхода, не-remote набор и т.п.) отклоняется весь пакет изменений целиком.
DNS
Секция DNS-серверы настраивает встроенный резолвер sing-box: апстримы (UDP/TLS/HTTPS), сервер по умолчанию и DNS-правила, направляющие отдельные домены или rule-set’ы на конкретный сервер (например, целевые сервисы резолвить через туннель). Резолвер обслуживает только устройства, привязанные к выбранной политике, — остальные клиенты роутера продолжают пользоваться обычным DNS Keenetic. Перехват запросов (hijack-dns) — то, что позволяет матчить трафик по реальным доменам.
DNS Rewrite — переписывание DNS-ответов: домену или маске (glob/regex) принудительно сопоставляется нужный IP. Пригодится, когда сервис надо посадить на конкретный адрес в обход его собственного DNS.
Действия DNS-правил (с 2.16.3)
До sing-box 1.14 DNS-правило умело одно: совпало — отправить запрос на выбранный сервер. В 1.14 у правила четыре действия, и они позволяют строить цепочки, где решение принимается уже по полученному ответу. Действие выбирается в модалке правила:
- Маршрут — классика: совпало → запрос уходит на выбранный DNS-сервер, ответ возвращается клиенту. Правило терминирующее.
- Блокировка — вернуть
NXDOMAIN/REFUSEDили не отвечать вовсе (Drop). Терминирует. - Evaluate — запрос уходит на выбранный сервер, но ответ клиенту не возвращается: он запоминается (опционально под именем из поля Тег ответа), и обход правил продолжается дальше. Это заготовка ответа для правил ниже.
- Respond — вернуть клиенту ранее запомненный evaluate-ответ. Терминирует.
Секция По DNS-ответу превращает правило из «матчится по запросу» в «матчится по запомненному ответу». Выпадающий список Ответ evaluate предлагает: выкл (обычное правило), «последний анонимный evaluate» (доступно, только если выше есть evaluate без тега) и теги evaluate-правил, стоящих выше редактируемого. Когда выбор сделан, открываются условия по ответу: Rcode, IP ответа (CIDR) и RR-записи (Answer / NS / Extra), а также флаг Race — несколько таких правил соревнуются параллельно, побеждает ответивший первым. У действий «Маршрут» и «Evaluate» есть отдельный флаг Спекулятивный запрос.
Типовая цепочка собирается так:
- Правило с действием Evaluate: catch-all или с матчерами, сервер — тот, кому задаём вопрос, тег — например
rd. - Ниже — правило с Ответ evaluate = rd, условиями по ответу (Rcode, IP ответа, RR) и финальным действием: Respond (вернуть тот ответ), Маршрут (перерезолвить другим сервером) или Блокировка.
Так, например, делается защита от подменённых ответов: если провайдерский резолвер вернул адрес из списка заведомо ложных, запрос повторяется через туннель, и клиент никогда не получает 127.0.0.1 или другую заглушку.
Порядок правил важен как и в маршрутизации: цепочка работает только сверху вниз, а catch-all-правило гасит всё, что ниже него.
Трейс Проверка DNS цепочки учитывает: evaluate больше не считается финальным совпадением, а правила, матчащиеся по ответу, помечаются как статически непроверяемые — вживую они могут перехватить запрос раньше, чем найденное трейсом правило.
Пресеты DNS-цепочек
Собирать цепочку руками нужно только под нестандартный сценарий. Два типовых случая собирает карточка Пресет DNS-цепочки в экспертном режиме одним переключателем:
- Отказоустойчивый — два резолвера (Прямой DNS и DNS через туннель) с автоматическим переключением.
- Анти-подмена — то же плюс список Подозрительных IP (CIDR): если прямой резолвер вернул адрес из списка, ответ отбрасывается и запрос повторяется через туннель. По умолчанию в списке типовые заглушки вроде
0.0.0.0/32,127.0.0.0/8,10.10.34.34/32.
Правила пресета приходят залоченными, помечены бейджем и автоматически держатся в конце списка — то есть выполняются после ваших. Если оба резолвера недоступны, запрос уходит на финальный сервер. Карточка предупредит, если выше цепочки стоит catch-all-правило: тогда пресет не действует.
evaluate на них отклоняется. Если правила цепочки видны в списке при включённом Fake-IP — они относятся к режиму TProxy и сейчас неактивны.Outbounds и composite
Composite outbound — виртуальный outbound, объединяющий несколько обычных под одним тегом: selector (ручной выбор активного члена) или urltest (автовыбор быстрейшего по периодическим замерам задержки). Правило ссылается на группу, а не на конкретный туннель. Composite, пришедшие из подписок, отмечены бейджем и доступны только на чтение — ими управляет страница подписок.
Третий тип outbound’а — Интерфейс (direct с привязкой): прямое соединение через выбранный сетевой интерфейс роутера. С 2.15.0 в списке интерфейсов предлагаются и нативные egress-интерфейсы KeenOS — в том числе системный SOCKS5-прокси, настроенный в веб-интерфейсе роутера (интерфейсы ProxyN, созданные не самим awg-manager). Так правила sb-router могут направлять трафик через IPSec/IKEv2, другой VPN или системный прокси Keenetic. Интерфейсы, уже занятые другими outbound’ами, в списке не предлагаются.
Прокси
Секция Прокси (в простом режиме — пункт «Прокси» в навигации) поднимает SOCKS5/HTTP-прокси для устройств локальной сети. LAN-устройство или отдельное приложение указывает роутер как прокси и выходит через выбранный outbound — без TPROXY-перехвата и привязки к политике.

Экземпляров может быть несколько — каждый со своим портом, интерфейсом прослушивания (все интерфейсы или конкретный сегмент), паролем и своим туннелем. В карточке экземпляра: По умолчанию направлять в — переключение выхода на лету (Direct, AWG-туннели, sing-box-туннели, подписки, а с 2.15.0 — и группа Выходы sb-router с composite- и interface-outbound’ами маршрутизатора), и Подключение клиента — адрес для настройки на устройстве, кнопка копирования proxy-URL и проверка внешнего IP через прокси (убедиться, что трафик действительно идёт через туннель). Выход, выбранный каким-либо device-proxy, нельзя удалить из маршрутизатора — awg-manager откажет и покажет, где он используется.
Редактор конфигурации (с 2.16.0)
В экспертном режиме есть кнопка Редактор — обзор всех слотов config.d итоговой конфигурации sing-box с бейджами владельца: «генерируется автоматически» (системные слоты, доступны только для чтения — с подсветкой синтаксиса и копированием) и «пользовательский» — слот 90-user.json, который правится вручную и не перезаписывается генераторами awg-manager.
Для пользовательского слота открывается полноценный редактор: номера строк, маркер строки с ошибкой JSON, Tab-отступы. Цикл работы: Сохранить черновик → Проверить → Применить (или Отменить черновик); отдельный выключатель отключает слот целиком, не удаляя содержимое. Проверка — это кросс-слот валидация тегов плюс sing-box check над снапшотом «как если бы применили», поэтому сломанный черновик не доедет до работающего движка.
Правила слияния: массивы user-слота (outbounds, inbounds, правила) дополняют итоговый конфиг последними; скаляры dns/route (например, final, strategy) из него не переопределяются — действует принцип «первый файл выигрывает». Если применённый user-конфиг начинает ссылаться на тег, которого больше нет (например, outbound удалили в другом разделе), перезагрузка пропускается, движок продолжает работать на старом конфиге, а причина показывается в статусе роутера с подсказкой поправить слот в редакторе.
Соединения
Клик по счётчику соединений в шапке открывает живой монитор: сводные диаграммы по outbound’ам, хостам и клиентам (клик по строке — быстрый фильтр), поиск и таблица активных соединений — источник, назначение, outbound, сработавшее правило, трафик. Данные стримятся из Clash-API sing-box (индикатор Live). Любое соединение можно принудительно закрыть. Это главный инструмент проверки «что сейчас идёт через какой туннель и почему».
С 2.16.0 источники соединений, приходящие через WireGuard-серверы роутера, показываются по имени пира (как оно задано в разделе Серверы), а не голым IP — и в таблице, и в сводке по клиентам.

Связь с другими разделами
Sing-box Router не вводит новый тип outbound’а — он работает со всеми объектами, которые уже есть в системе: AWG-туннелями awg-manager, системными NativeWG-туннелями Keenetic, sing-box-туннелями и composite outbound’ами (как собственными, так и пришедшими из подписок). Тот же объект может быть одновременно целью для обычной Маршрутизации (через Proxy-NDMS-интерфейс) и outbound’ом для правил Router’а — разница в том, на каком уровне принимается решение: ipset/policy у NDMS против netfilter/TPROXY и матчинга по доменам/rule set’ам у sing-box.