diff --git a/docs/ru/config/routing.md b/docs/ru/config/routing.md index e54daae..e3bcec1 100644 --- a/docs/ru/config/routing.md +++ b/docs/ru/config/routing.md @@ -31,12 +31,6 @@ - Разрешенный IP-адрес используется только при выборе маршрута, в пересылаемых пакетах данных по-прежнему используется исходное доменное имя; - `"IPOnDemand"`: если при сопоставлении встречается любое правило на основе IP-адреса, доменное имя немедленно разрешается в IP-адрес для сопоставления; -> `domainMatcher`: "hybrid" | "linear" - -Алгоритм сопоставления доменных имен. Используются разные алгоритмы в зависимости от настройки. Этот параметр влияет на все `RuleObject`, для которых не указан отдельный алгоритм сопоставления. - -- `"hybrid"`: используется новый алгоритм сопоставления доменных имен, который работает быстрее и занимает меньше места. Значение по умолчанию. -- `"linear"`: используется старый алгоритм сопоставления доменных имен. > `rules`: \[[RuleObject](#ruleobject)\] @@ -62,9 +56,12 @@ "ip": ["0.0.0.0/8", "10.0.0.0/8", "fc00::/7", "fe80::/10", "geoip:cn"], "port": "53,443,1000-2000", "sourcePort": "53,443,1000-2000", + "localPort": "53,443,1000-2000", "network": "tcp", - "source": ["10.0.0.1"], + "sourceIP": ["10.0.0.1"], + "localIP": ["192.168.0.25"], "user": ["love@xray.com"], + "vlessRoute": "53,443,1000-2000", "inboundTag": ["tag-vmess"], "protocol": ["http", "tls", "quic", "bittorrent"], "attrs": { ":method": "GET" }, @@ -120,6 +117,10 @@ - `a`: a является положительным целым числом, меньшим 65536. Правило вступает в силу, если порт источника равен a. - Смесь двух вышеуказанных форматов, разделенных запятой ",". Например: `"53,443,1000-2000"`. +> `localPort`:number | string + +Порт локального `inbound`, формат соответствует `port`/`sourcePort`. Может быть полезно, когда `inbound` прослушивает диапазон портов. + > `network`: "tcp" | "udp" | "tcp,udp" Допустимые значения: "tcp", "udp" или "tcp,udp". Правило вступает в силу, если тип соединения соответствует указанному. @@ -128,16 +129,37 @@ Конечно, другие варианты, явно подходящие для маршрутизации любого трафика, такие как указание диапазона портов **1-65535** или IP-адресов **0.0.0.0/0 + ::/0**, также имеют аналогичное действие. -> `source`: \[string\] +> `sourceIP`: \[string\] Массив, каждый элемент которого представляет собой диапазон IP-адресов. Возможные форматы: IP-адрес, CIDR, GeoIP и загрузка IP-адресов из файла. Правило вступает в силу, если какой-либо элемент соответствует IP-адресу источника. +Псевдоним: `source` + +> `localIP`: \[string\] + +Формат такой же, как и у других IP. Используется для указания IP-адреса, используемого локальным `inbound` (при прослушивании всех IP-адресов с помощью `0.0.0.0` разные фактические входящие IP будут приводить к разным `localIP`). + +Не работает для `UDP` (отслеживание невозможно из-за его дейтаграммной природы), всегда будет виден IP-адрес, на котором ведется прослушивание (`listen`). + > `user`: \[string\] Массив, каждый элемент которого является адресом электронной почты. Правило вступает в силу, если какой-либо элемент соответствует пользователю-источнику. Аналогично доменному имени, также поддерживается сопоставление с помощью регулярных выражений, начинающихся с `regexp:`. (Также необходимо заменить `\` на `\\`, см. объяснение в разделе `domain`) +> `vlessRoute` number | string + +Когда седьмой и восьмой байты в конце `UUID` для `vless inbound` равны `00`, `vless` позволяет заменить эти две позиции любыми байтами и использовать их в качестве данных `vlessRoute`. Это дает пользователю возможность настраивать часть серверной маршрутизации по своему усмотрению, не изменяя никаких внешних полей. + +``` +--------------↓↓↓↓------------------ +xxxxxxxx-xxxx-0000-xxxx-xxxxxxxxxxxx +``` + +В конфигурации используются данные, закодированные в `big-endian` как `uint16` (если вы не понимаете, что это значит, просто рассматривайте эти четыре символа как шестнадцатеричное число и преобразуйте его в десятичное). Например, `0001→1`, `000e→14`, `38b2→14514`. Причина такого подхода в том, что синтаксис здесь аналогичен `port`, что позволяет гибко указывать множество диапазонов для маршрутизации, так же как и для портов. + +**Tip:** Это не влияет на безопасность аутентификации в других случаях. Для любого валидного `UUID`, 13-й символ очевидно не может быть `0` (поскольку он хранит версию `UUID`). Использование функции `Xray` для преобразования произвольной строки в `UUID` также не приведет к такому результату, поскольку генерируется `UUID v5`. Даже в этом случае для аутентификации остаются 14 байт. + > `inboundTag`: \[string\] Массив, каждый элемент которого является тегом. Правило вступает в силу, если какой-либо элемент соответствует тегу входящего протокола.