FinalMask & mKCP: correct kcpSettings fields and legacy FinalMask type name (#897)

This commit is contained in:
youugiuhiuh
2026-09-17 02:04:23 +08:00
committed by GitHub
parent e42da10dbe
commit 5ee08112dd
3 changed files with 27 additions and 76 deletions
+9 -25
View File
@@ -26,9 +26,8 @@ mKCP 牺牲带宽来降低延迟。传输同样的内容,mKCP 一般比 TCP
"tti": 20,
"uplinkCapacity": 5,
"downlinkCapacity": 20,
"congestion": false,
"readBufferSize": 1,
"writeBufferSize": 1
"cwndMultiplier": 1,
"maxSendingWindow": 2097152
}
}
}
@@ -39,7 +38,7 @@ mKCP 牺牲带宽来降低延迟。传输同样的内容,mKCP 一般比 TCP
::: tip
`header``seed` 字段已被移除,请使用 [FinalMask](../transports/finalmask.md#finalmaskobject) 进行配置。
并且曾经默认的 mKCP 混淆也被移除,要连接旧版服务端,需要在 FinalMask 中配置 `mkcp-original`
并且曾经默认的 mKCP 混淆也被移除,要连接旧版服务端,需要在 FinalMask 中配置 `mkcp-legacy``settings.header``settings.value` 均留空即为旧版默认的 XOR 混淆)
:::
> `mtu`: number
@@ -77,32 +76,17 @@ mKCP 牺牲带宽来降低延迟。传输同样的内容,mKCP 一般比 TCP
推荐把 `downlinkCapacity` 设置为一个较大的值,比如 100,而 `uplinkCapacity` 设为实际的网络速度。当速度不够时,可以逐渐增加 `uplinkCapacity` 的值,直到带宽的两倍左右。
:::
> `congestion`: true | false
> `cwndMultiplier`: number
是否启用拥塞控制
拥塞窗口倍数,用于乘在由 `uplinkCapacity``mtu``tti` 推导出的发送在途包数上。最小值为 `1`
开启拥塞控制之后,Xray 会自动监测网络质量,当丢包严重时,会自动降低吞吐量;当网络畅通时,也会适当增加吞吐量
默认值为 `1`
默认值为 `false`
> `maxSendingWindow`: number
> `readBufferSize`: number
最大发送窗口,单位是字节。实际按 `maxSendingWindow / mtu` 折算为在途包数,因此不得小于 `mtu`
单个连接的读取缓冲区大小,单位是 MB
默认值为 `2`
> `writeBufferSize`: number
单个连接的写入缓冲区大小,单位是 MB。
默认值为 `2`
::: tip
`readBufferSize``writeBufferSize` 指定了单个连接所使用的内存大小。
在需要高速传输时,指定较大的 `readBufferSize``writeBufferSize` 会在一定程度上提高速度,但也会使用更多的内存。
在网速不超过 20MB/s 时,默认值 1MB 可以满足需求;超过之后,可以适当增加 `readBufferSize``writeBufferSize` 的值,然后手动平衡速度和内存的关系。
:::
默认值为 `2097152`
## 鸣谢
+9 -25
View File
@@ -26,9 +26,8 @@ Please ensure that the firewall configuration on the host is correct.
"tti": 20,
"uplinkCapacity": 5,
"downlinkCapacity": 20,
"congestion": false,
"readBufferSize": 1,
"writeBufferSize": 1
"cwndMultiplier": 1,
"maxSendingWindow": 2097152
}
}
}
@@ -39,7 +38,7 @@ Please ensure that the firewall configuration on the host is correct.
::: tip
The `header` and `seed` fields have been removed. Please use [FinalMask](./finalmask.md#finalmaskobject) for configuration.
Additionally, the previously default mKCP obfuscation has also been removed. To connect to a legacy server, you need to configure `mkcp-original` in FinalMask.
Additionally, the previously default mKCP obfuscation has also been removed. To connect to a legacy server, you need to configure `mkcp-legacy` in FinalMask (leaving both `settings.header` and `settings.value` empty selects the legacy default XOR obfuscation).
:::
> `mtu`: number
@@ -77,32 +76,17 @@ Taking a client sending data as an example, the client's `uplinkCapacity` specif
It is recommended to set `downlinkCapacity` to a larger value, such as 100, and set `uplinkCapacity` to the actual network speed. When the speed is insufficient, you can gradually increase the value of `uplinkCapacity` until it is about twice the bandwidth.
:::
> `congestion`: true | false
> `cwndMultiplier`: number
Whether to enable congestion control.
The congestion window multiplier, multiplied by the number of sending in-flight packets derived from `uplinkCapacity`, `mtu` and `tti`. The minimum value is `1`.
When congestion control is enabled, Xray automatically monitors network quality. When packet loss is severe, it automatically reduces throughput; when the network is smooth, it appropriately increases throughput.
The default value is `1`.
The default value is `false`.
> `maxSendingWindow`: number
> `readBufferSize`: number
The maximum sending window, in bytes. It is converted into a number of in-flight packets as `maxSendingWindow / mtu`, and therefore must not be smaller than `mtu`.
The read buffer size for a single connection, in MB.
The default value is `2`.
> `writeBufferSize`: number
The write buffer size for a single connection, in MB.
The default value is `2`.
::: tip
`readBufferSize` and `writeBufferSize` specify the memory size used by a single connection.
When high-speed transmission is required, specifying larger `readBufferSize` and `writeBufferSize` will improve speed to a certain extent, but it will also use more memory.
When the network speed does not exceed 20MB/s, the default value of 1MB can meet the demand; beyond that, you can appropriately increase the values of `readBufferSize` and `writeBufferSize`, and then manually balance the relationship between speed and memory.
:::
The default value is `2097152`.
## Credits
+9 -26
View File
@@ -26,9 +26,8 @@ mKCP жертвует пропускной способностью ради у
"tti": 20,
"uplinkCapacity": 5,
"downlinkCapacity": 20,
"congestion": false,
"readBufferSize": 1,
"writeBufferSize": 1
"cwndMultiplier": 1,
"maxSendingWindow": 2097152
}
}
}
@@ -39,7 +38,7 @@ mKCP жертвует пропускной способностью ради у
::: tip
Поля `header` и `seed` были удалены, пожалуйста, используйте [FinalMask](./finalmask.md#finalmaskobject) для настройки.
Также была удалена стандартная обфускация mKCP; для подключения к старым версиям серверов необходимо настроить `mkcp-original` в FinalMask.
Также была удалена стандартная обфускация mKCP; для подключения к старым версиям серверов необходимо настроить `mkcp-legacy` в FinalMask (если оставить `settings.header` и `settings.value` пустыми, будет использоваться стандартная обфускация XOR из старых версий).
:::
> `mtu`: number
@@ -82,33 +81,17 @@ mKCP жертвует пропускной способностью ради у
Рекомендуется установить `downlinkCapacity` в большое значение, например, 100, а `uplinkCapacity` - в фактическое значение скорости сети. Когда скорость недостаточна, можно постепенно увеличивать значение `uplinkCapacity` до примерно двух раз больше, чем фактическая скорость сети.
:::
> `congestion`: true | false
> `cwndMultiplier`: number
Включить или отключить контроль перегрузки.
Множитель окна перегрузки, применяемый к количеству отправляемых пакетов «в полёте», которое вычисляется из `uplinkCapacity`, `mtu` и `tti`. Минимальное значение — `1`.
При включении контроля перегрузки Xray будет автоматически отслеживать качество сети. При серьезных потерях пакетов он автоматически снизит пропускную способность; при хорошем качестве сети он также будет соответствующим образом увеличивать пропускную способность.
По умолчанию `1`.
По умолчанию `false`.
> `maxSendingWindow`: number
> `readBufferSize`: number
Максимальное окно отправки в байтах. Фактически пересчитывается в количество пакетов «в полёте» как `maxSendingWindow / mtu`, поэтому не должно быть меньше `mtu`.
Размер буфера чтения для отдельного соединения, в МБ.
По умолчанию `2`.
> `writeBufferSize`: number
Размер буфера записи для отдельного соединения, в МБ.
По умолчанию `2`.
::: tip
`readBufferSize` и `writeBufferSize` определяют размер памяти, используемой для каждого соединения.
При необходимости высокой скорости передачи, установка больших значений `readBufferSize` и `writeBufferSize` может в некоторой степени повысить скорость, но также будет использовать больше памяти.
При скорости сети не превышающей 20 МБ/с, значение по умолчанию 1 МБ может удовлетворить требованиям; при превышении этой скорости можно соответствующим образом увеличить значения `readBufferSize` и `writeBufferSize`, а затем вручную сбалансировать скорость и использование памяти.
:::
По умолчанию `2097152`.
## Благодарности