Prettified Code!
parent
e4bcc05f14
commit
6495572003
|
@ -58,7 +58,7 @@
|
|||
"connectivity": "",
|
||||
"interval": "5m",
|
||||
"sampling": 2,
|
||||
"timeout": "30s"
|
||||
"timeout": "30s",
|
||||
}
|
||||
```
|
||||
|
||||
|
|
|
@ -39,16 +39,16 @@
|
|||
"bridges": [
|
||||
{
|
||||
"tag": "bridge",
|
||||
"domain": "reverse-proxy.xray.internal"
|
||||
"domain": "reverse-proxy.xray.internal",
|
||||
},
|
||||
],
|
||||
"portals": [
|
||||
{
|
||||
"tag": "portal",
|
||||
"domain": "reverse-proxy.xray.internal"
|
||||
"domain": "reverse-proxy.xray.internal",
|
||||
},
|
||||
],
|
||||
},
|
||||
]
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
|
@ -65,7 +65,7 @@
|
|||
```jsonc
|
||||
{
|
||||
"tag": "bridge",
|
||||
"domain": "reverse-proxy.xray.internal"
|
||||
"domain": "reverse-proxy.xray.internal",
|
||||
}
|
||||
```
|
||||
|
||||
|
@ -83,7 +83,7 @@
|
|||
```jsonc
|
||||
{
|
||||
"tag": "portal",
|
||||
"domain": "reverse-proxy.xray.internal"
|
||||
"domain": "reverse-proxy.xray.internal",
|
||||
}
|
||||
```
|
||||
|
||||
|
@ -130,8 +130,8 @@ outbound:
|
|||
"tag": "out",
|
||||
"protocol": "freedom",
|
||||
"settings": {
|
||||
"redirect": "127.0.0.1:80"
|
||||
}
|
||||
"redirect": "127.0.0.1:80",
|
||||
},
|
||||
}
|
||||
```
|
||||
|
||||
|
@ -146,13 +146,13 @@ outbound:
|
|||
"port": 1024,
|
||||
"users": [
|
||||
{
|
||||
"id": "5783a3e7-e373-51cd-8642-c83782b807c5"
|
||||
"id": "5783a3e7-e373-51cd-8642-c83782b807c5",
|
||||
},
|
||||
]
|
||||
],
|
||||
},
|
||||
]
|
||||
],
|
||||
},
|
||||
"tag": "interconn"
|
||||
"tag": "interconn",
|
||||
}
|
||||
```
|
||||
|
||||
|
@ -167,16 +167,16 @@ outbound:
|
|||
"type": "field",
|
||||
"inboundTag": ["bridge"],
|
||||
"domain": ["full:reverse-proxy.xray.internal"],
|
||||
"outboundTag": "interconn"
|
||||
"outboundTag": "interconn",
|
||||
},
|
||||
{
|
||||
// 从 portal 过来的流量,也会从 bridge 出来,但是不带上面的domain
|
||||
// 则路由到 out,即转发给网页服务器
|
||||
"type": "field",
|
||||
"inboundTag": ["bridge"],
|
||||
"outboundTag": "out"
|
||||
"outboundTag": "out",
|
||||
},
|
||||
]
|
||||
],
|
||||
}
|
||||
```
|
||||
|
||||
|
@ -208,8 +208,8 @@ inbound:
|
|||
"settings": {
|
||||
"address": "127.0.0.1",
|
||||
"port": 80,
|
||||
"network": "tcp"
|
||||
}
|
||||
"network": "tcp",
|
||||
},
|
||||
}
|
||||
```
|
||||
|
||||
|
@ -222,10 +222,10 @@ inbound:
|
|||
"settings": {
|
||||
"clients": [
|
||||
{
|
||||
"id": "5783a3e7-e373-51cd-8642-c83782b807c5"
|
||||
"id": "5783a3e7-e373-51cd-8642-c83782b807c5",
|
||||
},
|
||||
],
|
||||
},
|
||||
]
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
|
@ -239,7 +239,7 @@ inbound:
|
|||
// 则路由到 portal, 最终会转发给 bridge
|
||||
"type": "field",
|
||||
"inboundTag": ["external"],
|
||||
"outboundTag": "portal"
|
||||
"outboundTag": "portal",
|
||||
},
|
||||
{
|
||||
// 如果来自 interconn 入站,说明是来自 bridge 的尝试建立反向隧道请求,
|
||||
|
@ -247,8 +247,8 @@ inbound:
|
|||
// 注意:这里进入的请求会带上了前文配置的domain,所以 portal 能够区分两种被路由到 portal 的请求
|
||||
"type": "field",
|
||||
"inboundTag": ["interconn"],
|
||||
"outboundTag": "portal"
|
||||
"outboundTag": "portal",
|
||||
},
|
||||
]
|
||||
],
|
||||
}
|
||||
```
|
||||
|
|
|
@ -28,7 +28,7 @@ If you need to do some more detailed routing for traffics that have been routed
|
|||
"tag": "need-to-split",
|
||||
"settings": {
|
||||
"inboundTag": "traffic-input", // This tag will be used as the inboundTag inside the RuleObject
|
||||
}
|
||||
},
|
||||
},
|
||||
{
|
||||
"tag": "tcp-output",
|
||||
|
@ -44,14 +44,14 @@ If you need to do some more detailed routing for traffics that have been routed
|
|||
{
|
||||
"inboundTag": ["traffic-input"], // tag set in the loopback outbound setting
|
||||
"network": "tcp",
|
||||
"outboundTag": "tcp-output"
|
||||
"outboundTag": "tcp-output",
|
||||
},
|
||||
{
|
||||
"inboundTag": ["traffic-input"], // tag set in the loopback outbound
|
||||
"network": "udp",
|
||||
"outboundTag": "udp-output"
|
||||
"outboundTag": "udp-output",
|
||||
},
|
||||
],
|
||||
},
|
||||
]
|
||||
}
|
||||
}
|
||||
```
|
||||
|
|
|
@ -81,6 +81,7 @@ VLESS будет перенаправлять трафик с длиной пе
|
|||
Если указан только `port`, можно использовать как число, так и строку, например `80` или `"80"`. Обычно это указывает на `http`-сервис, работающий в открытом виде (`addr` будет автоматически дополнен как `"localhost"`).
|
||||
|
||||
Примечание: Начиная с версии `v25.7.26`, `dest`, содержащий только `port`, указывает на `localhost`, тогда как до этой версии он всегда указывал на `127.0.0.1`. После этого изменения фактической целью может стать `::1`. Некоторые шаблоны `webserver`, скопированные из интернета, могут прослушивать `::1`, но при этом разрешать доступ только с `127.0.0.1` или требовать применения `proxy protocol`, что может привести к различиям в поведении.
|
||||
|
||||
> `xver`: number
|
||||
|
||||
Отправка [PROXY protocol](https://www.haproxy.org/download/2.2/doc/proxy-protocol.txt), специально для передачи реального исходного IP-адреса и порта запроса, заполняется версией 1 или 2, по умолчанию 0, то есть не отправляется. При необходимости рекомендуется указать 1.
|
||||
|
|
|
@ -91,11 +91,11 @@ VMess полагается на системное время. Убедитес
|
|||
|
||||
Метод шифрования. Клиент будет отправлять данные с использованием настроенного метода шифрования, сервер автоматически распознает его, настройка на сервере не требуется.
|
||||
|
||||
* `"aes-128-gcm"`: Использовать алгоритм `AES-128-GCM`.
|
||||
* `"chacha20-poly1305"`: Использовать алгоритм `Chacha20-Poly1305`.
|
||||
* `"auto"`: Значение по умолчанию. Автоматический выбор (для архитектур `AMD64`, `ARM64` или `s390x` будет выбран метод шифрования `aes-128-gcm`, в остальных случаях — `Chacha20-Poly1305`).
|
||||
* `"none"`: Без шифрования, сохраняется структура сообщения `VMess`.
|
||||
* `"zero"`: Без шифрования, поток данных копируется напрямую (аналогично `VLESS`).
|
||||
- `"aes-128-gcm"`: Использовать алгоритм `AES-128-GCM`.
|
||||
- `"chacha20-poly1305"`: Использовать алгоритм `Chacha20-Poly1305`.
|
||||
- `"auto"`: Значение по умолчанию. Автоматический выбор (для архитектур `AMD64`, `ARM64` или `s390x` будет выбран метод шифрования `aes-128-gcm`, в остальных случаях — `Chacha20-Poly1305`).
|
||||
- `"none"`: Без шифрования, сохраняется структура сообщения `VMess`.
|
||||
- `"zero"`: Без шифрования, поток данных копируется напрямую (аналогично `VLESS`).
|
||||
|
||||
Не рекомендуется использовать псевдошифрование `"none"` или `"zero"` без включенного `TLS` шифрования и принудительной проверки сертификата. Независимо от выбранного метода шифрования, заголовки пакетов `VMess` всегда защищены шифрованием и аутентификацией.
|
||||
|
||||
|
|
|
@ -39,16 +39,16 @@
|
|||
"bridges": [
|
||||
{
|
||||
"tag": "bridge",
|
||||
"domain": "reverse-proxy.xray.internal"
|
||||
"domain": "reverse-proxy.xray.internal",
|
||||
},
|
||||
],
|
||||
"portals": [
|
||||
{
|
||||
"tag": "portal",
|
||||
"domain": "reverse-proxy.xray.internal"
|
||||
"domain": "reverse-proxy.xray.internal",
|
||||
},
|
||||
],
|
||||
},
|
||||
]
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
|
@ -65,7 +65,7 @@
|
|||
```jsonc
|
||||
{
|
||||
"tag": "bridge",
|
||||
"domain": "reverse-proxy.xray.internal"
|
||||
"domain": "reverse-proxy.xray.internal",
|
||||
}
|
||||
```
|
||||
|
||||
|
@ -83,7 +83,7 @@
|
|||
```jsonc
|
||||
{
|
||||
"tag": "portal",
|
||||
"domain": "reverse-proxy.xray.internal"
|
||||
"domain": "reverse-proxy.xray.internal",
|
||||
}
|
||||
```
|
||||
|
||||
|
@ -130,8 +130,8 @@ outbound:
|
|||
"tag": "out",
|
||||
"protocol": "freedom",
|
||||
"settings": {
|
||||
"redirect": "127.0.0.1:80"
|
||||
}
|
||||
"redirect": "127.0.0.1:80",
|
||||
},
|
||||
}
|
||||
```
|
||||
|
||||
|
@ -146,13 +146,13 @@ outbound:
|
|||
"port": 1024,
|
||||
"users": [
|
||||
{
|
||||
"id": "5783a3e7-e373-51cd-8642-c83782b807c5"
|
||||
"id": "5783a3e7-e373-51cd-8642-c83782b807c5",
|
||||
},
|
||||
]
|
||||
],
|
||||
},
|
||||
]
|
||||
],
|
||||
},
|
||||
"tag": "interconn"
|
||||
"tag": "interconn",
|
||||
}
|
||||
```
|
||||
|
||||
|
@ -168,16 +168,16 @@ outbound:
|
|||
"type": "field",
|
||||
"inboundTag": ["bridge"],
|
||||
"domain": ["full:reverse-proxy.xray.internal"],
|
||||
"outboundTag": "interconn"
|
||||
"outboundTag": "interconn",
|
||||
},
|
||||
{
|
||||
// Трафик от portal также будет выходить из bridge, но без указанного выше домена
|
||||
// маршрутизируем на out, то есть перенаправляем на веб-сервер
|
||||
"type": "field",
|
||||
"inboundTag": ["bridge"],
|
||||
"outboundTag": "out"
|
||||
"outboundTag": "out",
|
||||
},
|
||||
]
|
||||
],
|
||||
}
|
||||
```
|
||||
|
||||
|
@ -209,8 +209,8 @@ inbound:
|
|||
"settings": {
|
||||
"address": "127.0.0.1",
|
||||
"port": 80,
|
||||
"network": "tcp"
|
||||
}
|
||||
"network": "tcp",
|
||||
},
|
||||
}
|
||||
```
|
||||
|
||||
|
@ -223,10 +223,10 @@ inbound:
|
|||
"settings": {
|
||||
"clients": [
|
||||
{
|
||||
"id": "5783a3e7-e373-51cd-8642-c83782b807c5"
|
||||
"id": "5783a3e7-e373-51cd-8642-c83782b807c5",
|
||||
},
|
||||
],
|
||||
},
|
||||
]
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
|
@ -240,7 +240,7 @@ inbound:
|
|||
// маршрутизируем на portal, который в конечном итоге перенаправит его на bridge
|
||||
"type": "field",
|
||||
"inboundTag": ["external"],
|
||||
"outboundTag": "portal"
|
||||
"outboundTag": "portal",
|
||||
},
|
||||
{
|
||||
// Если входящее соединение от interconn, значит, это запрос от bridge для установления обратного туннеля,
|
||||
|
@ -249,8 +249,8 @@ inbound:
|
|||
// маршрутизируемых на portal.
|
||||
"type": "field",
|
||||
"inboundTag": ["interconn"],
|
||||
"outboundTag": "portal"
|
||||
"outboundTag": "portal",
|
||||
},
|
||||
]
|
||||
],
|
||||
}
|
||||
```
|
||||
|
|
|
@ -30,7 +30,6 @@
|
|||
- Разрешенный IP-адрес используется только при выборе маршрута, в пересылаемых пакетах данных по-прежнему используется исходное доменное имя;
|
||||
- `"IPOnDemand"`: если при сопоставлении встречается любое правило на основе IP-адреса, доменное имя немедленно разрешается в IP-адрес для сопоставления;
|
||||
|
||||
|
||||
> `rules`: \[[RuleObject](#ruleobject)\]
|
||||
|
||||
Соответствует массиву, каждый элемент которого является правилом.
|
||||
|
|
|
@ -301,6 +301,7 @@ x25519Kyber768Draft00
|
|||
Полученный Config можно опубликовать в HTTPS-записи DNS (см. пример в [Google DNS](https://dns.google/query?name=encryptedsni.com&rr_type=HTTPS) или RFC 9460).
|
||||
|
||||
Учтите: сервер, настроенный на использование ECH, всё ещё принимает обычные не-ECH-соединения. Но клиент, настроенный на ECH, при неудачной ECH-рукопожатии сразу завершит соединение, не откатываясь к открытому SNI.
|
||||
|
||||
> `echForceQuery` : string
|
||||
|
||||
Управляет политикой при использовании DNS-запросов для `ECH Config`, доступны опции `none`(по умолчанию), `half`, `full`.
|
||||
|
|
Loading…
Reference in New Issue