Add udp mask

EN Add udp mask

RU Add udp mask

Prettified Code!
This commit is contained in:
Fangliding
2026-02-01 01:44:50 +08:00
parent 303cbf1879
commit fad0551a49
6 changed files with 353 additions and 129 deletions
+114
View File
@@ -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` — пароль обфускации, он должен совпадать на сервере и клиенте.
+7 -43
View File
@@ -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.