mirror of
https://github.com/XTLS/Xray-docs-next.git
synced 2026-10-01 19:38:14 +03:00
Add udp mask
EN Add udp mask RU Add udp mask Prettified Code!
This commit is contained in:
@@ -21,6 +21,9 @@
|
||||
"grpcSettings": {},
|
||||
"wsSettings": {},
|
||||
"httpupgradeSettings": {},
|
||||
"finalmask": {
|
||||
"udp": []
|
||||
},
|
||||
"sockopt": {
|
||||
"mark": 0,
|
||||
"tcpMaxSeg": 1440,
|
||||
@@ -101,6 +104,10 @@ Reality — это самое безопасное на данный момен
|
||||
|
||||
Конкретные настройки, связанные с прозрачным проксированием.
|
||||
|
||||
> `finalmask`: [FinalMaskObject](#finalmaskobject)
|
||||
|
||||
Конфигурация FinalMask, используемая для универсальной маскировки трафика.
|
||||
|
||||
### TLSObject
|
||||
|
||||
```json
|
||||
@@ -913,3 +920,110 @@ PS: Если трафик домена, например, обычный веб-
|
||||
> `maxConcurrentTry`: number
|
||||
|
||||
Максимальное количество одновременных попыток. Используется для предотвращения ситуации, когда ядро создает большое количество соединений, если разрешено много IP-адресов и ни одно из соединений не увенчалось успехом. По умолчанию 4, установка значения 0 отключает happyEyeballs.
|
||||
|
||||
### FinalMaskObject
|
||||
|
||||
FinalMask применяет последний слой маскировки к трафику после того, как ядро завершит обработку шифрования транспортного уровня, включая TLS/REALITY.
|
||||
|
||||
В настоящее время поддерживается только UDP.
|
||||
|
||||
```json
|
||||
{
|
||||
"udp": [
|
||||
{
|
||||
"type": "header-dns",
|
||||
"settings": {
|
||||
"domain": "www.baidu.com"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
```
|
||||
|
||||
> `udp`: \[ list \]
|
||||
|
||||
Массив, представляющий список маскировок, применяемых к UDP-трафику. Несколько маскировок будут применяться последовательно, слой за слоем.
|
||||
|
||||
`settings` зависят от типа маскировки, см. ниже.
|
||||
|
||||
> `mkcp-original`
|
||||
|
||||
Простая обфускация, которая раньше применялась в mKCP по умолчанию; возможно, вам понадобится настроить её для подключения к старым серверам mKCP. Без дополнительных настроек.
|
||||
|
||||
> `mkcp-aes128gcm`
|
||||
|
||||
Соответствует функции `seed` оригинального mKCP. Использует AES-128-GCM для обфускации.
|
||||
|
||||
- `settings`:
|
||||
```json
|
||||
{
|
||||
"password": "your-password"
|
||||
}
|
||||
```
|
||||
|
||||
`password` — пароль шифрования, он должен совпадать на сервере и клиенте.
|
||||
|
||||
> `header-dns`
|
||||
|
||||
Соответствует DNS-маскировке оригинального mKCP.
|
||||
|
||||
- `settings`:
|
||||
```json
|
||||
{
|
||||
"domain": "www.example.com"
|
||||
}
|
||||
```
|
||||
|
||||
`domain` — домен, используемый для маскировки.
|
||||
|
||||
> `header-dtls`
|
||||
|
||||
Соответствует DTLS-маскировке оригинального mKCP. Без дополнительных настроек.
|
||||
|
||||
> `header-srtp`
|
||||
|
||||
Соответствует SRTP-маскировке оригинального mKCP. Без дополнительных настроек.
|
||||
|
||||
> `header-utp`
|
||||
|
||||
Соответствует uTP-маскировке оригинального mKCP. Без дополнительных настроек.
|
||||
|
||||
> `header-wechat`
|
||||
|
||||
Соответствует маскировке под WeChat Video оригинального mKCP. Без дополнительных настроек.
|
||||
|
||||
> `header-wireguard`
|
||||
|
||||
Соответствует WireGuard-маскировке оригинального mKCP. Без дополнительных настроек.
|
||||
|
||||
> `xdns`
|
||||
|
||||
Экспериментальная функция, использующая DNS-запросы для передачи данных (похоже на DNSTT). Она выполняет стандартные запросы DNS TXT для передачи полезной нагрузки.
|
||||
|
||||
Из-за технических ограничений предоставляемый MTU очень мал, использование QUIC невозможно, рекомендуется использовать в паре с mKCP. Рекомендуемые значения MTU: клиент — 130, сервер — 900.
|
||||
|
||||
- `settings`:
|
||||
```json
|
||||
{
|
||||
"domain": "www.example.com"
|
||||
}
|
||||
```
|
||||
|
||||
`domain` — домен, используемый для запросов.
|
||||
|
||||
Поскольку выполняемые запросы являются стандартными, они могут пересылаться через любой UDP DNS-сервер, хотя эффективность может быть крайне низкой.
|
||||
|
||||
Чтобы использовать эту функцию, сервер должен слушать порт 53, затем протокол прокси должен указывать цель на DNS-сервер (например, 8.8.8.8:53), и вы должны владеть доменом `domain` и направить его NS-запись на сервер.
|
||||
|
||||
> `salamander`
|
||||
|
||||
Обфускация Salamander (из Hysteria2).
|
||||
|
||||
- `settings`:
|
||||
```json
|
||||
{
|
||||
"password": "your-password"
|
||||
}
|
||||
```
|
||||
|
||||
`password` — пароль обфускации, он должен совпадать на сервере и клиенте.
|
||||
|
||||
@@ -20,15 +20,16 @@ mKCP жертвует пропускной способностью ради у
|
||||
"downlinkCapacity": 20,
|
||||
"congestion": false,
|
||||
"readBufferSize": 1,
|
||||
"writeBufferSize": 1,
|
||||
"header": {
|
||||
"type": "none",
|
||||
"domain": "example.com"
|
||||
},
|
||||
"seed": "Password"
|
||||
"writeBufferSize": 1
|
||||
}
|
||||
```
|
||||
|
||||
::: TIP
|
||||
Поля `header` и `seed` были удалены, пожалуйста, используйте [FinalMask](../transport.md#finalmaskobject) для настройки.
|
||||
|
||||
Также была удалена стандартная обфускация mKCP; для подключения к старым версиям серверов необходимо настроить `mkcp-original` в FinalMask.
|
||||
:::
|
||||
|
||||
> `mtu`: number
|
||||
|
||||
Максимальный размер передаваемого блока (maximum transmission unit).
|
||||
@@ -97,43 +98,6 @@ mKCP жертвует пропускной способностью ради у
|
||||
При скорости сети не превышающей 20 МБ/с, значение по умолчанию 1 МБ может удовлетворить требованиям; при превышении этой скорости можно соответствующим образом увеличить значения `readBufferSize` и `writeBufferSize`, а затем вручную сбалансировать скорость и использование памяти.
|
||||
:::
|
||||
|
||||
> `header`: [HeaderObject](#headerobject)
|
||||
|
||||
Настройка маскировки заголовка данных
|
||||
|
||||
> `seed`: string
|
||||
|
||||
Опциональное шифрование пароля, используемое для шифрования потока данных с помощью алгоритма AES-128-GCM. Клиент и сервер должны использовать одинаковый пароль.
|
||||
|
||||
Эта шифровальная схема не предназначена для обеспечения безопасности контента, но может помочь противостоять некоторым блокировкам.
|
||||
|
||||
> В настоящее время в тестовой среде, после включения этой настройки, не наблюдалось явления блокировки исходного, не зашифрованного варианта.
|
||||
|
||||
### HeaderObject
|
||||
|
||||
```json
|
||||
{
|
||||
"type": "none",
|
||||
"domain": "example.com"
|
||||
}
|
||||
```
|
||||
|
||||
> `type`: string
|
||||
|
||||
Тип маскировки, доступные значения:
|
||||
|
||||
- `"none"`: значение по умолчанию, не применяется маскировка, отправляемые данные не имеют никаких отличительных признаков.
|
||||
- `"srtp"`: маскировка под SRTP-пакеты, будет идентифицироваться как данные видеозвонка (например, FaceTime).
|
||||
- `"utp"`: маскировка под uTP-пакеты, будет идентифицироваться как данные загрузки BT.
|
||||
- `"wechat-video"`: маскировка под пакеты видеозвонка WeChat.
|
||||
- `"dtls"`: маскировка под DTLS 1.2-пакеты.
|
||||
- `"wireguard"`: маскировка под WireGuard-пакеты. (Это не настоящий протокол WireGuard).
|
||||
- `"dns"`: некоторые корпоративные сети разрешают DNS-запросы без авторизации, добавление DNS-заголовка к KCP-пакетам позволяет обойти некоторые корпоративные сети.
|
||||
|
||||
> `domain`: string
|
||||
|
||||
Используется совместно с типом маскировки `"dns"`, можно указать произвольный домен.
|
||||
|
||||
## Благодарности
|
||||
|
||||
- [@skywind3000](https://github.com/skywind3000) изобрел и реализовал протокол KCP.
|
||||
|
||||
Reference in New Issue
Block a user