RU Outbound simplification

This commit is contained in:
iambabyninja
2025-10-20 17:54:32 +03:00
parent bc5d7231de
commit dcd5c1d602
11 changed files with 127 additions and 295 deletions
+2 -41
View File
@@ -19,11 +19,6 @@
"sniffing": {
"enabled": true,
"destOverride": ["http", "tls"]
},
"allocate": {
"strategy": "always",
"refresh": 5,
"concurrency": 3
}
}
]
@@ -60,7 +55,7 @@
Можно использовать запятые для разделения диапазонов, например `11,13,15-17`, что означает порты 11, 13, 15, 16 и 17 (5 портов).
Если указан только один порт, Xray будет прослушивать входящие подключения на этом порту.
Если указан диапазон портов, то фактическое поведение зависит от настройки `allocate`.
Если указан указан диапазон портов, Xray будет прослушивать все порты в этом диапазоне.
Обратите внимание, что прослушивание порта — это довольно ресурсоемкая операция. Прослушивание слишком большого диапазона портов может привести к значительному увеличению потребляемых ресурсов и даже нарушить нормальную работу Xray. Как правило, проблемы могут начаться, когда количество прослушиваемых портов приближается к четырехзначным числам. Если вам нужен большой диапазон, рассмотрите возможность использования iptables для перенаправления вместо того, чтобы настраивать его здесь.
@@ -103,10 +98,6 @@
Если в sniffing включен параметр `enabled`, Xray также сможет обнаруживать трафик типа bittorrent, а затем можно настроить правила маршрутизации по протоколу, чтобы обрабатывать трафик BT, например, блокировать его на сервере или перенаправлять его на определенный VPS на клиенте.
> `allocate`: [AllocateObject](#allocateobject)
Настройки выделения портов при указании нескольких портов.
### SniffingObject
```json
@@ -179,34 +170,4 @@ Xray будет использовать доменные имена, обнар
Если вы уверены, что **проксируемое соединение будет правильно разрешено DNS**, то при использовании `routeOnly` и включенном `destOverride` можно установить стратегию сопоставления маршрутов `domainStrategy` в `AsIs`, чтобы реализовать разделение трафика по доменам и IP-адресам без DNS-разрешения.
В этом случае при сопоставлении правил на основе IP-адресов будет использоваться исходный IP-адрес домена.
:::
### AllocateObject
```json
{
"strategy": "always",
"refresh": 5,
"concurrency": 3
}
```
> `strategy`: "always" | "random"
Стратегия выделения портов.
- `"always"` - всегда выделять все указанные порты.
Xray будет прослушивать все порты, указанные в `port`.
- `"random"` - случайным образом открывать порты.
Каждые `refresh` минут Xray будет случайным образом выбирать `concurrency` портов из диапазона, указанного в `port`, и прослушивать их.
> `refresh`: number
Интервал обновления случайных портов в минутах.
Минимальное значение - `2`, рекомендуемое значение - `5`.
Этот параметр действителен только при `strategy` = `"random"`.
> `concurrency`: number
Количество случайных портов.
Минимальное значение - `1`, максимальное значение - треть от диапазона портов, указанного в `port`.
Рекомендуемое значение - `3`.
ы
-19
View File
@@ -19,9 +19,6 @@ VMess полагается на системное время. Убедитес
],
"default": {
"level": 0
},
"detour": {
"to": "tag_to_detour"
}
}
```
@@ -34,10 +31,6 @@ VMess полагается на системное время. Убедитес
Когда эта конфигурация используется для динамических портов, Xray будет автоматически создавать пользователей.
> `detour`: [DetourObject](#detourobject)
Указывает, что для соответствующего исходящего протокола следует использовать другой сервер.
> `default`: [DefaultObject](#defaultobject)
Необязательно. Конфигурация по умолчанию для клиентов. Действует только при использовании с `detour`.
@@ -78,18 +71,6 @@ VMess полагается на системное время. Убедитес
Адрес электронной почты пользователя, используемый для разделения трафика от разных пользователей.
### DetourObject
```json
{
"to": "tag_to_detour"
}
```
> `to`: string
`Тег` входящего соединения, определяющий входящее соединение, использующее протокол VMess.
### DefaultObject
```json
+22 -50
View File
@@ -14,18 +14,12 @@
```json
{
"servers": [
{
"address": "192.168.108.1",
"port": 3128,
"users": [
{
"user": "my-username",
"pass": "my-password"
}
]
}
],
"address": "192.168.108.1",
"port": 3128,
"user": "my-username",
"pass": "my-password",
"level": 0,
"email": "love@xray.com",
"headers": {
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2785.143 Safari/537.36",
"Accept-Language": "zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2"
@@ -37,29 +31,6 @@
В настоящее время в исходящем HTTP-протоколе действительна конфигурация `streamSettings` с параметрами `security` и `tlsSettings`.
:::
> `servers`: \[ [ServerObject](#serverobject) \]
Список HTTP-серверов, каждый элемент которого является конфигурацией сервера. Если настроено несколько серверов, они используются по кругу (RoundRobin).
> `headers`: map{ string, string }
HTTP-заголовки, пара "ключ-значение". Каждый ключ представляет собой имя HTTP-заголовка, все пары "ключ-значение" будут прикрепляться к каждому запросу.
### ServerObject
```json
{
"address": "192.168.108.1",
"port": 3128,
"users": [
{
"user": "my-username",
"pass": "my-password"
}
]
}
```
> `address`: string
Адрес HTTP-прокси-сервера, обязательный параметр.
@@ -68,23 +39,24 @@ HTTP-заголовки, пара "ключ-значение". Каждый кл
Порт HTTP-прокси-сервера, обязательный параметр.
> `user`: \[[AccountObject](#accountobject)\]
Массив, каждый элемент которого представляет собой учетную запись пользователя. Значение по умолчанию: пустой массив.
#### AccountObject
```json
{
"user": "my-username",
"pass": "my-password"
}
```
> `user`: string
Имя пользователя, тип данных: строка. Обязательный параметр.
Имя пользователя, строковый тип. Обязательно, если для подключения к серверу требуется аутентификация, в противном случае не включайте этот пункт.
> `pass`: string
Пароль, тип данных: строка. Обязательный параметр.
Пароль, строковый тип. Обязательно, если для подключения к серверу требуется аутентификация, в противном случае не включайте этот пункт.
> `level`: number
Уровень пользователя. Соединение будет использовать [локальную политику](../policy.md#levelpolicyobject), соответствующую этому уровню пользователя. Необязательно, если для подключения к серверу требуется аутентификация, в противном случае не включайте этот пункт.
Значение `userLevel` соответствует значению `level` в [policy](../policy.md#policyobject). Если не указано, по умолчанию используется 0.
> `email`: string
Адрес электронной почты, используемый для идентификации пользователя. Необязательно, если для подключения к серверу требуется аутентификация, в противном случае не включайте этот пункт.
> `headers`: map{ string, string }
Заголовки HTTP, представляющие собой пары ключ-значение. Каждый ключ обозначает имя заголовка HTTP, и все пары ключ-значение будут прикрепляться к каждому запросу.
-23
View File
@@ -29,29 +29,6 @@
## OutboundConfigurationObject
```json
{
"servers": [
{
"email": "love@xray.com",
"address": "127.0.0.1",
"port": 1234,
"method": "метод_шифрования",
"password": "пароль",
"uot": true,
"UoTVersion": 2,
"level": 0
}
]
}
```
> `servers`: \[[ServerObject](#serverobject)\]
Массив, представляющий собой набор настроек сервера Shadowsocks, каждый элемент которого является [ServerObject](#serverobject).
### ServerObject
```json
{
"email": "love@xray.com",
+8 -48
View File
@@ -8,41 +8,14 @@
## OutboundConfigurationObject
```json
{
"servers": [
{
"address": "127.0.0.1",
"port": 1234,
"users": [
{
"user": "test user",
"pass": "test pass",
"level": 0
}
]
}
]
}
```
> `servers`: \[ [ServerObject](#serverobject) \]
Список Socks-серверов, где каждый элемент представляет собой конфигурацию сервера.
### ServerObject
```json
{
"address": "127.0.0.1",
"port": 1234,
"users": [
{
"user": "test user",
"pass": "test pass",
"level": 0
}
]
"user": "test user",
"pass": "test pass",
"level": 0,
"email": "love@xray.com"
}
```
@@ -58,23 +31,6 @@
Порт сервера, обязательный параметр.
> `users`: \[ [UserObject](#userobject) \]
Массив, представляющий список пользователей, где каждый элемент представляет собой конфигурацию пользователя.
Если список не пуст, Socks-клиент будет использовать информацию о пользователе для аутентификации; если не указан, аутентификация не выполняется.
Значение по умолчанию: пустой массив.
#### UserObject
```json
{
"user": "test user",
"pass": "test pass",
"level": 0
}
```
> `user`: string
@@ -89,3 +45,7 @@
Уровень пользователя, для соединения будет использоваться [локальная политика](../policy.md#levelpolicyobject), соответствующая этому уровню пользователя.
Значение userLevel соответствует значению `level` в разделе [policy](../policy.md#policyobject). Если не указано, используется значение по умолчанию - 0.
> `email`: string
Адрес электронной почты, используемый для идентификации пользователя.
-18
View File
@@ -8,25 +8,7 @@ Trojan предназначен для работы в правильно нас
## OutboundConfigurationObject
```json
{
"servers": [
{
"address": "127.0.0.1",
"port": 1234,
"password": "password",
"email": "love@xray.com",
"level": 0
}
]
}
```
> `servers`: \[ [ServerObject](#serverobject) \]
Массив, каждый элемент которого является [ServerObject](#serverobject).
### ServerObject
```json
{
+5 -49
View File
@@ -6,45 +6,16 @@ VLESS - это легкий транспортный протокол без с
## OutboundConfigurationObject
```json
{
"vnext": [
{
"address": "example.com",
"port": 443,
"users": [
{
"id": "5783a3e7-e373-51cd-8642-c83782b807c5",
"encryption": "none",
"flow": "xtls-rprx-vision",
"level": 0,
"reverse": {}
}
]
}
]
}
```
> `vnext`: \[ [ServerObject](#serverobject) \]
Массив, представляющий список серверов VLESS, содержащий набор конфигураций, указывающих на сервер, где каждый элемент является конфигурацией сервера.
### ServerObject
```json
{
"address": "example.com",
"port": 443,
"users": [
{
"id": "5783a3e7-e373-51cd-8642-c83782b807c5",
"encryption": "none",
"flow": "xtls-rprx-vision",
"level": 0,
"reverse": {}
}
]
"id": "5783a3e7-e373-51cd-8642-c83782b807c5",
"encryption": "none",
"flow": "xtls-rprx-vision",
"level": 0,
"reverse": {}
}
```
@@ -56,21 +27,6 @@ VLESS - это легкий транспортный протокол без с
Порт сервера, обычно тот же, что и порт, прослушиваемый сервером.
> `users`: \[ [UserObject](#userobject) \]
Массив, представляющий список пользователей, распознаваемых сервером, где каждый элемент является конфигурацией пользователя.
### UserObject
```json
{
"id": "5783a3e7-e373-51cd-8642-c83782b807c5",
"encryption": "none",
"flow": "xtls-rprx-vision",
"level": 0
}
```
> `id`: string
Идентификатор пользователя VLESS, может быть любой строкой длиной менее 30 байт или допустимым UUID.
+4 -30
View File
@@ -10,36 +10,10 @@ VMess полагается на системное время. Убедитес
```json
{
"vnext": [
{
"address": "127.0.0.1",
"port": 37192,
"users": [
{
"id": "5783a3e7-e373-51cd-8642-c83782b807c5",
"security": "auto",
"level": 0,
"experiments": ""
}
]
}
]
}
```
> `vnext`: \[ [ServerObject](#serverobject) \]
Массив, содержащий набор конфигураций сервера.
Каждый элемент - это конфигурация сервера [ServerObject](#serverobject).
### ServerObject
```json
{
"address": "127.0.0.1",
"port": 37192,
"users": []
"id": "5783a3e7-e373-51cd-8642-c83782b807c5",
"security": "auto",
"level": 0,
"experiments": ""
}
```