Sing-box Router
Sing-box Router — это движок маршрутизации внутри процесса sing-box. Он матчит трафик по доменам, перехватывая DNS-запросы целевых устройств, и применяет правила на уровне netfilter/TPROXY. По сравнению с обычной Маршрутизацией Keenetic (через ipset) это даёт точность по доменам: запрос к нужному домену пойдёт в туннель, даже если домен находится за общим CDN с десятками других сайтов, которые туда отправлять не надо.
Когда нужен 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.
Где находится
Вкладка Маршрутизация → Sing-box Router видна только при установленном sing-box и на уровне использования Продвинутый (см. Настройки). Внутри вкладки доступны подразделы Движок, Пресеты, Правила, Наборы, Outbounds, DNS, Прокси и Соединения.
Engine status
Подраздел Движок — центральный пульт Sing-box Router. Здесь движок включают и выключают тумблером, выбирают (или создают) NDMS Access Policy, к которой будут привязываться устройства для попадания трафика в singbox-роутер, и видят сводные счётчики правил, наборов и composite outbound’ов. Если выбранная политика удалена в NDMS вручную или TPROXY-цель в iptables недоступна — карточка явно сообщает об этом и предлагает действие восстановления. Привязка устройств к политике выполняется на отдельной странице Access Policies, ссылка ведёт туда же.

Если netfilter не установлен
Sing-box Router работает через TPROXY/netfilter и поэтому требует системного компонента Модули ядра подсистемы Netfilter. Если он не установлен, на странице появляется баннер с указанием установить компонент через веб-интерфейс роутера (Управление → Общие настройки → Изменить набор компонентов).

DNS
Подраздел DNS настраивает встроенный DNS-резолвер самого sing-box: какие upstream DNS-серверы он использует и какие правила сопоставляют домены с конкретными серверами. Этот резолвер обслуживает только устройства, привязанные к NDMS Access Policy, выбранной в Движке — остальные клиенты роутера продолжают использовать обычный DNS Keenetic. Sing-box перехватывает DNS-запросы целевых устройств через hijack-dns и отвечает сам — именно это позволяет матчить трафик по реальным доменам в подразделе Правила. А также позволяет задавать произвольные правила резолва определенных доменов через определенные DNS, дополнительно настроить реакцию на запрос HTTPS и другие функции, более подробно об этом можно узнать в документации sing-box.

Правила и Rule Sets
Правила и наборы (rule_set) — основа маршрутизации в sing-box. Правило — это одна строчка матча: набор условий (домены, IP-CIDR, source-IP, порты, ссылки на rule_set(набор)) плюс действие — направить трафик в указанный outbound или заблокировать (reject). Rule set — это переиспользуемый bundle паттернов: его можно подключить как remote (sing-box сам качает бинарный srs-файл по URL), local (готовый файл на роутере) или inline (правила прямо в конфиге). Несколько правил могут ссылаться на один и тот же rule set, что удобно для крупных списков доменов (например, наборы из SagerNet/sing-geosite). Порядок правил важен: применяется first-match-wins. Глобальный Final outbound определяет, куда уходит трафик, не попавший ни под одно правило (по умолчанию — direct, мимо VPN).

Connections monitor
Подраздел Соединения показывает живую таблицу активных соединений через sing-box: источник, назначение, outbound, через какое правило сработала маршрутизация, текущая скорость и накопленный трафик. Данные стримятся по WebSocket из Clash-API самого sing-box, поэтому индикатор статуса показывает Live / Stale / Reconnecting. Над таблицей есть аггрегаты (по outbound’у, хосту, клиенту) — клик по такой плашке работает как быстрый фильтр. Любое соединение можно принудительно закрыть; есть и массовое закрытие отфильтрованных. Это инструмент диагностики и троттлинга в реальном времени — что именно сейчас идёт через какой туннель и кто это инициировал.

Presets
Пресет — это готовый набор «rule set + правило», собранный под типовой сценарий (соцсеть, медиасервис, AI-сервис, разработческая платформа, набор для блокировки и т.п.). Галерея разбита на категории; рядом с обычными есть «чувствительные» наборы, скрытые за отдельным переключателем. При применении выбирается, куда направить трафик пресета — в конкретный outbound, либо direct/reject для пресетов с фиксированным действием. Применение пресета не перезаписывает существующую конфигурацию: недостающие rule set’ы добавляются, дублирующие правила пропускаются — поэтому пресет можно безопасно применять поверх уже настроенной маршрутизации.

Composite outbounds
Composite outbound — это виртуальный outbound, объединяющий несколько обычных outbound’ов (членов) под одним тегом, чтобы правило могло ссылаться на группу, а не на конкретный туннель. Поддерживаются два типа: selector (ручной выбор активного члена), urltest (автоматический выбор быстрейшего по периодическим проверкам задержки). Карточка раскрывается до сетки членов с измеренными задержками и спарклайнами; для selector’а можно переключить активного члена в один клик, для остальных — запустить ручной retest группы. Composite outbound’ы, пришедшие из подписок, отмечены бейджем из подписки и доступны только на чтение — ими управляет страница подписок.

Прокси
Подраздел Прокси управляет внешними прокси-портами, которые sing-box поднимает для устройств локальной сети: SOCKS5 и HTTP. LAN-устройство (или конкретное приложение) может указать роутер как HTTP-/SOCKS5-прокси и выходить через выбранный sing-box outbound — без netfilter/TPROXY-перехвата, на стороне приложения. Это альтернативный способ направить через sing-box отдельные устройства, не привязанные к политике, или приложения, где удобнее настроить прокси адресно, чем менять политики на роутере.
Обновление настроек
Шестерёнка рядом со статусом движка открывает Настройки автообновления — здесь задаётся, как часто фоновый планировщик дёргает перезагрузку sing-box, чтобы тот скачал свежие версии remote rule set’ов. Доступны два режима: интервальный (каждые N часов) и ежедневный (в фиксированное время). Сами наборы качаются по URL, прописанному в каждом rule_set’е, — обычно это публичные репозитории sing-geosite/sing-geoip; интервал в карточке набора (24h и т.п.) задаёт минимальный период, но фактическую загрузку инициирует именно этот общий планировщик.
Связь с другими разделами
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.