From 3b86800e60ce0eb517f5556141c8c8e799c6e99d Mon Sep 17 00:00:00 2001 From: Fangliding Date: Wed, 17 Jun 2026 21:44:48 +0800 Subject: [PATCH] Finalmask: Add gecko and refine --- docs/config/transports/finalmask.md | 21 +++++++++++++++------ docs/en/config/transports/finalmask.md | 21 +++++++++++++++------ docs/ru/config/transports/finalmask.md | 21 +++++++++++++++------ 3 files changed, 45 insertions(+), 18 deletions(-) diff --git a/docs/config/transports/finalmask.md b/docs/config/transports/finalmask.md index 668b9755..8285f1bf 100644 --- a/docs/config/transports/finalmask.md +++ b/docs/config/transports/finalmask.md @@ -57,7 +57,7 @@ FinalMask 在核心处理完包括 TLS/REALITY 在内的传输层加密后,对 ## TCPMask -一个数组,用以伪装核心发出的 TCP流量,数组第一个为最外层伪装。 +一个数组,用以伪装核心发出的 TCP流量,数组第一个为最内层伪装。 ```json { @@ -77,7 +77,7 @@ FinalMask 在核心处理完包括 TLS/REALITY 在内的传输层加密后,对 该层伪装的类型。 -> `settings`: string +> `settings`: object 该伪装类型的具体设置。 @@ -189,7 +189,7 @@ FinalMask 在核心处理完包括 TLS/REALITY 在内的传输层加密后,对 ## UDPMask -一个数组,用以伪装核心发出的 UDP 流量,数组第一个为最外层伪装。 +一个数组,用以伪装核心发出的 UDP 流量,数组第一个为最内层伪装。 ```json { @@ -209,7 +209,7 @@ FinalMask 在核心处理完包括 TLS/REALITY 在内的传输层加密后,对 该层伪装的类型。 -> `settings`: string +> `settings`: object 该伪装类型的具体设置。 @@ -323,13 +323,22 @@ Salamander 混淆。(来自 Hysteria2) ```json { "type": "salamander", - // [!code focus:3] + // [!code focus:4] "settings": { - "password": "your-password" + "password": "your-password", + "packetSize": "512-1200" } } ``` +`password`: 混淆密码。 + +#### gecko + +`packetSize`: [Int32Range](../../development/intro/guide.md#int32range) + +不为空则启用 Gecko 混淆,对 QUIC 的长包头数据包进行额外分片填充混淆(短包头直接使用 Salamander),packetSize 指定具体分片大小,上限不能超过 2048。 + ### sudoku ```json diff --git a/docs/en/config/transports/finalmask.md b/docs/en/config/transports/finalmask.md index 08954ac0..9e7e6c9c 100644 --- a/docs/en/config/transports/finalmask.md +++ b/docs/en/config/transports/finalmask.md @@ -57,7 +57,7 @@ It can be used for multiple kinds of TCP and UDP camouflage, as well as QUIC-rel ## TCPMask -An array used to camouflage TCP traffic emitted by the core. The first item in the array is the outermost camouflage layer. +An array used to camouflage TCP traffic emitted by the core. The first item in the array is the innermost camouflage layer. ```json { @@ -77,7 +77,7 @@ An array used to camouflage TCP traffic emitted by the core. The first item in t The type of this camouflage layer. -> `settings`: string +> `settings`: object The concrete settings for this camouflage type. @@ -189,7 +189,7 @@ For the meaning of these fields, see the [upstream documentation](https://github ## UDPMask -An array used to camouflage UDP traffic emitted by the core. The first item in the array is the outermost camouflage layer. +An array used to camouflage UDP traffic emitted by the core. The first item in the array is the innermost camouflage layer. ```json { @@ -209,7 +209,7 @@ An array used to camouflage UDP traffic emitted by the core. The first item in t The type of this camouflage layer. -> `settings`: string +> `settings`: object The concrete settings for this camouflage type. @@ -323,13 +323,22 @@ Salamander obfuscation. From Hysteria2. ```json { "type": "salamander", - // [!code focus:3] + // [!code focus:4] "settings": { - "password": "your-password" + "password": "your-password", + "packetSize": "512-1200" } } ``` +`password`: the obfuscation password. + +#### gecko + +`packetSize`: [Int32Range](../../development/intro/guide.md#int32range) + +When non-empty, enables Gecko obfuscation, which applies additional fragmentation-and-padding obfuscation to QUIC long-header packets (short-header packets use Salamander directly). `packetSize` specifies the fragment size, and its upper bound must not exceed 2048. + ### sudoku ```json diff --git a/docs/ru/config/transports/finalmask.md b/docs/ru/config/transports/finalmask.md index d36bf837..b40043bb 100644 --- a/docs/ru/config/transports/finalmask.md +++ b/docs/ru/config/transports/finalmask.md @@ -57,7 +57,7 @@ FinalMask добавляет последний слой маскировки п ## TCPMask -Массив для маскировки TCP-трафика, исходящего из ядра. Первый элемент массива является самым внешним слоем маскировки. +Массив для маскировки TCP-трафика, исходящего из ядра. Первый элемент массива является самым внутренним слоем маскировки. ```json { @@ -77,7 +77,7 @@ FinalMask добавляет последний слой маскировки п Тип этого слоя маскировки. -> `settings`: string +> `settings`: object Конкретные настройки для этого типа маскировки. @@ -189,7 +189,7 @@ FinalMask добавляет последний слой маскировки п ## UDPMask -Массив для маскировки UDP-трафика, исходящего из ядра. Первый элемент массива является самым внешним слоем маскировки. +Массив для маскировки UDP-трафика, исходящего из ядра. Первый элемент массива является самым внутренним слоем маскировки. ```json { @@ -209,7 +209,7 @@ FinalMask добавляет последний слой маскировки п Тип этого слоя маскировки. -> `settings`: string +> `settings`: object Конкретные настройки для этого типа маскировки. @@ -323,13 +323,22 @@ FinalMask добавляет последний слой маскировки п ```json { "type": "salamander", - // [!code focus:3] + // [!code focus:4] "settings": { - "password": "your-password" + "password": "your-password", + "packetSize": "512-1200" } } ``` +`password`: пароль обфускации. + +#### gecko + +`packetSize`: [Int32Range](../../development/intro/guide.md#int32range) + +Если не пусто, включает обфускацию Gecko: к QUIC-пакетам с длинным заголовком применяется дополнительная обфускация с фрагментацией и заполнением (пакеты с коротким заголовком используют Salamander напрямую). `packetSize` задаёт размер фрагмента, а его верхняя граница не должна превышать 2048. + ### sudoku ```json