🇬🇧 [English](Custom-Routing-en) | 🇷🇺 [Русский](Custom-Routing-ru) # Пользовательская маршрутизация **Пользовательская маршрутизация** — это ручная золотая середина между готовыми [режимами маршрутизации](Routing-and-Access-Control-ru) и конфигом [Пользовательский JSON](Custom-JSON-Config-ru), написанным руками. Вы сами собираете **узлы маршрутизации** (откуда может выходить трафик) и **правила маршрутизации** (какой трафик куда идёт) в интерфейсе LuCI, не написав ни строчки JSON. Включается в **Настройки клиента → Настройки маршрутизации → Режим маршрутизации → Пользовательская маршрутизация**. Появляются две вкладки: **Правила узлов** и **Расширенные правила**. > Переключать на пользовательскую маршрутизацию весь роутер необязательно: в режиме **Россия (Обход Блокировок)** галочка **Расширенные правила** 👨‍💻 открывает те же две вкладки, чтобы добавлять свои правила *поверх* RU-пресетов. См. [Маршрутизация и контроль доступа](Routing-and-Access-Control-ru). --- ## Правила узлов **Узел маршрутизации** — это именованный outbound, на который могут указывать правила. Каждый может быть: - конкретным **узлом** или **URLTest** (авто-выбор самого быстрого из пула), - **цепочкой** — через поле **outbound** направить трафик этого узла *через* другой узел маршрутизации, - со своим **Резолвером доменов** (включая серверы Россия 🔓 / Защищённый 🔒 в режиме РФ) и **Стратегией доменов** (только IPv4, предпочитать IPv6 и т. п.). Именно это позволяет делать вещи вроде «это правило → узел A, но домены резолвить защищённым DNS» или строить многошаговую цепочку. --- ## Расширенные правила Каждое **правило маршрутизации** сопоставляет какой-то трафик и отправляет его на узел маршрутизации (или **Напрямую**). Поля сопоставления в редакторе сгруппированы по вкладкам: | Вкладка | Сопоставление по | |---------|------------------| | **Прочие поля** | **Протокол** (по сниффингу — BitTorrent, DNS, QUIC, TLS, HTTP, STUN, SSH, RDP, DTLS…), **Версия IP**, сеть, rule-set-ы | | **Поля хоста/IP** | `domain` / `domain_suffix` / `domain_keyword` / `domain_regex`, **IP CIDR** назначения и источника | | **Поля портов** | **порт** и диапазоны портов назначения / источника | | **Поля процесса** | **имя / путь процесса** (для трафика, исходящего с самого роутера) | Поле **Режим** показывает логику сопоставления — внутри категории записи объединяются по ИЛИ, а категории — по И: ``` (domain || domain_suffix || domain_keyword || domain_regex || ip_cidr || ip_is_private) && (port || port_range) && (source_ip_cidr || source_ip_is_private) && (source_port || source_port_range) && (прочие поля) ``` Правила проверяются сверху вниз (список сортируемый), срабатывает первое совпавшее. Поля один-в-один соответствуют route-правилу sing-box — что именно принимает каждое поле, см. в официальном справочнике: - [Route](https://sing-box.sagernet.org/configuration/route/) — как устроена маршрутизация - [Route Rule](https://sing-box.sagernet.org/configuration/route/rule/) — все поля сопоставления - [Sniff](https://sing-box.sagernet.org/configuration/route/sniff/) — сопоставление по **Протоколу** требует включённого сниффинга (он включён по умолчанию) > **Сопоставление по протоколу требует сниффинга.** Матч по `quic`, `tls`, `bittorrent` и т. п. опирается на анализ первых пакетов на inbound-е — Re:HomeProxy включает это на своих inbound-ах, так что работает из коробки. --- ## Пользовательская маршрутизация vs Пользовательский JSON | | **Пользовательская маршрутизация** | **[Пользовательский JSON](Custom-JSON-Config-ru)** | |---|---|---| | Как | Интерфейс: Правила узлов + Расширенные правила | «Сырой» JSON sing-box / hiddify-core | | Для чего | Правила по приложению/сайту/IP без написания JSON | Полный контроль, поля, которых нет в интерфейсе | | Проверка | С подсказками интерфейса | JSON нужно валидировать самому | Начинайте с пользовательской маршрутизации; переходите на Пользовательский JSON, только когда нужно что-то, что редактор правил выразить не может. См. также: [Маршрутизация и контроль доступа](Routing-and-Access-Control-ru) · [Пользовательский JSON конфиг](Custom-JSON-Config-ru) · [Поддерживаемые протоколы](Supported-Protocols-ru) · [DNS и диагностика](DNS-and-Diagnostics-ru)