Route: Add vlessRoute and some local things
parent
2b97e6340c
commit
eb2937be69
|
@ -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\]
|
||||
|
||||
Массив, каждый элемент которого является тегом. Правило вступает в силу, если какой-либо элемент соответствует тегу входящего протокола.
|
||||
|
|
Loading…
Reference in New Issue