From 7999f7eae683fa23fedbf824ad7f77e04abdcbce Mon Sep 17 00:00:00 2001 From: Fangliding Date: Fri, 3 Apr 2026 03:51:13 +0800 Subject: [PATCH] Transport: Refine Hysteria & quicParams --- docs/config/transport.md | 12 +++++++++++- docs/config/transports/hysteria.md | 12 +++--------- docs/en/config/transport.md | 12 +++++++++++- docs/en/config/transports/hysteria.md | 12 +++--------- docs/ru/config/transport.md | 12 +++++++++++- docs/ru/config/transports/hysteria.md | 12 +++--------- 6 files changed, 42 insertions(+), 30 deletions(-) diff --git a/docs/config/transport.md b/docs/config/transport.md index aa372c67..33f137a6 100644 --- a/docs/config/transport.md +++ b/docs/config/transport.md @@ -1236,8 +1236,18 @@ FinalMask 在核心处理完包括 TLS/REALITY 在内的传输层加密后,对 } ``` +用于 XHTTP H3 以及 hysteria 的 QUIC 配置调整。其中 XHTTP + > `congestion`: reno | bbr | brutal | force-brutal +拥塞控制算法,Hysteria 默认为 `brutal`,XHTTP H3 默认使用 `bbr`。 + +`reno`/`bbr`: 知名算法。 + +`brutal`: 与对端协商固定发包速率或降级到 BBR,只支持 Hysteria 传输(因为 XHTTP 无协商机制)。 + +`force-brutal`: 同 `brutal`,但强制使上行使用 `brutalUp` 固定发包速率,无视对端协商。 + > `debug`: false | true 启用 bbr/brutal congestion control 日志。 @@ -1250,7 +1260,7 @@ FinalMask 在核心处理完包括 TLS/REALITY 在内的传输层加密后,对 格式用户友好,支持各种常见的比特每秒写法,包括 `1000000` `100kb` `20 mb` `100 mbps` `1g` `1 tbps` 等等等,大小写不敏感,单位之间可以带或者不带空格,无单位时默认为 bps(比特每秒),不能低于 65535 bps。 -协商行为和 Hysteria 原版一致: +协商行为和 Hysteria brutal 一致: 服务端的值将限制客户端可以选择的最大 Brutal 模式速率,为 0 表示不限制客户端。 diff --git a/docs/config/transports/hysteria.md b/docs/config/transports/hysteria.md index da569ea6..4320e583 100644 --- a/docs/config/transports/hysteria.md +++ b/docs/config/transports/hysteria.md @@ -1,14 +1,6 @@ # Hysteria -::: tip -搭配 `hysteria protocol` 时默认启用 `quic native udp` - -搭配 `hysteria inbound` 时 `auth` 将会被 `clients` 覆盖 (如果存在) - -搭配其他 `protocol` 能否代理 `udp` 取决于该 `protocol` 是否具有 `uot` 能力 - -启用 `finalmask.udp` 后将会破坏 `masquerade` 的页面伪装 -::: +Hysteria2 的底层 QUIC 传输的 Xray 实现,通常搭配 hysteria[出站](../outbounds/hysteria.md) 和 hysteria[入站](../inbounds/hysteria.md) 使用,此时兼容其官方实现。 ## HysteriaObject @@ -45,6 +37,8 @@ Hysteria 版本,必须为 2。 Hysteria 认证密码,服务端和客户端需要保持一致。 +搭配 `hysteria inbound` 时将会被 `clients` 覆盖 (如果存在) + > `udpIdleTimeout`: number 单位秒,默认 60。 diff --git a/docs/en/config/transport.md b/docs/en/config/transport.md index 1ec70e40..6d2455d7 100644 --- a/docs/en/config/transport.md +++ b/docs/en/config/transport.md @@ -1219,8 +1219,18 @@ Same as the TCP version. } ``` +Used for QUIC configuration tuning of XHTTP H3 and Hysteria. + > `congestion`: reno | bbr | brutal | force-brutal +Congestion control algorithm. Hysteria defaults to `brutal`, XHTTP H3 defaults to `bbr`. + +`reno`/`bbr`: Well-known algorithms. + +`brutal`: Negotiates a fixed packet sending rate with the peer or falls back to BBR. Only supported with Hysteria transport (since XHTTP has no negotiation mechanism). + +`force-brutal`: Same as `brutal`, but forces upstream to use the `brutalUp` fixed packet sending rate, ignoring peer negotiation. + > `debug`: false | true Enable bbr/brutal congestion control logging. @@ -1233,7 +1243,7 @@ Upload/Download rate limits. Default is 0. The format is user-friendly and supports various common bit-per-second notations, including `1000000`, `100kb`, `20 mb`, `100 mbps`, `1g`, `1 tbps`, etc. It is case-insensitive, and spaces between the number and unit are optional. If no unit is specified, it defaults to bps (bits per second). It cannot be lower than 65535 bps. -The negotiation behavior is consistent with the original Hysteria: +The negotiation behavior is consistent with Hysteria brutal: The server's value limits the maximum Brutal mode rate that the client can choose. 0 means no limit on the client. diff --git a/docs/en/config/transports/hysteria.md b/docs/en/config/transports/hysteria.md index bac67e7b..c831f02a 100644 --- a/docs/en/config/transports/hysteria.md +++ b/docs/en/config/transports/hysteria.md @@ -1,14 +1,6 @@ # Hysteria -::: tip -When used with the `hysteria protocol`, `quic native udp` is enabled by default. - -When used with `hysteria inbound`, `auth` will be overridden by `clients` (if it exists). - -Whether other `protocols` can proxy `udp` depends on whether that `protocol` has `uot` capabilities. - -Enabling `finalmask.udp` will break the `masquerade` page masquerading. -::: +Xray implementation of the underlying QUIC transport for Hysteria2, typically used with hysteria [outbound](../outbounds/hysteria.md) and hysteria [inbound](../inbounds/hysteria.md), and is compatible with the official implementation in this case. ## HysteriaObject @@ -45,6 +37,8 @@ Hysteria version, must be 2. Hysteria authentication password. Must be consistent between the server and the client. +When used with `hysteria inbound`, it will be overridden by `clients` (if it exists). + > `udpIdleTimeout`: number Unit: seconds, default 60. diff --git a/docs/ru/config/transport.md b/docs/ru/config/transport.md index d1405bf3..7a1a03c4 100644 --- a/docs/ru/config/transport.md +++ b/docs/ru/config/transport.md @@ -1250,8 +1250,18 @@ FinalMask применяет последний слой маскировки к } ``` +Используется для настройки параметров QUIC для XHTTP H3 и Hysteria. + > `congestion`: reno | bbr | brutal | force-brutal +Алгоритм управления перегрузкой. Hysteria по умолчанию использует `brutal`, XHTTP H3 по умолчанию использует `bbr`. + +`reno`/`bbr`: Известные алгоритмы. + +`brutal`: Согласовывает фиксированную скорость отправки пакетов с другой стороной или переключается на BBR. Поддерживается только в транспорте Hysteria (поскольку XHTTP не имеет механизма согласования). + +`force-brutal`: Аналогично `brutal`, но принудительно использует фиксированную скорость отправки `brutalUp` для исходящего трафика, игнорируя согласование с другой стороной. + > `debug`: false | true Включить логирование в режиме bbr/brutal congestal control. @@ -1264,7 +1274,7 @@ FinalMask применяет последний слой маскировки к Формат удобен для пользователя, поддерживает различные распространенные записи бит в секунду, включая `1000000`, `100kb`, `20 mb`, `100 mbps`, `1g`, `1 tbps` и т.д. Регистр не важен, пробелы между единицами необязательны. Без единиц измерения по умолчанию используется bps (бит в секунду), значение не может быть ниже 65535 bps. -Поведение согласования соответствует оригинальной Hysteria: +Поведение согласования соответствует Hysteria brutal: Значение на сервере ограничивает максимальную скорость режима Brutal, которую может выбрать клиент; 0 означает отсутствие ограничений для клиента. diff --git a/docs/ru/config/transports/hysteria.md b/docs/ru/config/transports/hysteria.md index 041cecaa..54f57e63 100644 --- a/docs/ru/config/transports/hysteria.md +++ b/docs/ru/config/transports/hysteria.md @@ -1,14 +1,6 @@ # Hysteria -::: tip -При использовании с протоколом `hysteria`, `quic native udp` включен по умолчанию. - -При использовании с `hysteria inbound`, `auth` будет переопределен `clients` (если он существует). - -Возможность использования других `протоколов` в качестве прокси для `udp` зависит от наличия у этого `протокола` возможностей `uot`. - -Включение `finalmask.udp` нарушит работу маскировки страниц `masquerade`. -::: +Реализация Xray базового QUIC-транспорта для Hysteria2, обычно используется с hysteria [исходящим](../outbounds/hysteria.md) и hysteria [входящим](../inbounds/hysteria.md), и в этом случае совместима с официальной реализацией. ## HysteriaObject @@ -45,6 +37,8 @@ Пароль аутентификации Hysteria, должен совпадать на сервере и клиенте. +При использовании с `hysteria inbound` будет переопределён `clients` (если он существует). + > `udpIdleTimeout`: number Единица измерения: секунды, по умолчанию 60.