mirror of
https://github.com/kiddin9/op-packages.git
synced 2026-08-02 23:49:34 +08:00
67 lines
6.5 KiB
Markdown
67 lines
6.5 KiB
Markdown
🇬🇧 [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)
|