From 40142a51c0dd50555b83236d25618c47aece1f5e Mon Sep 17 00:00:00 2001 From: Fangliding Date: Wed, 14 Jan 2026 12:30:07 +0800 Subject: [PATCH] Hysteria: Add --- docs/config/outbounds/hysteria2.md | 23 +++++++++ docs/config/transports/hysteria.md | 79 ++++++++++++++++++++++++++++++ 2 files changed, 102 insertions(+) create mode 100644 docs/config/outbounds/hysteria2.md create mode 100644 docs/config/transports/hysteria.md diff --git a/docs/config/outbounds/hysteria2.md b/docs/config/outbounds/hysteria2.md new file mode 100644 index 00000000..1b7d750a --- /dev/null +++ b/docs/config/outbounds/hysteria2.md @@ -0,0 +1,23 @@ +# Hysteria2 + +Hysteria2 协议的客户端实现。 + +这个页面非常简单,因为 hysteria2 协议实际上分为一个简单的代理控制协议和经过调优的 QUIC 底层传输,在 Xray 中代理协议和底层传输被拆分,更多内容(如 brutal)详见底层传输的 [hysteriaSettings](../transports/hysteria.md) + + +## OutboundConfigurationObject + +```json +{ + "address": "192.168.108.1", + "port": 3128, +} +``` + +> `address`: string + +Hysteria2 代理服务器地址,必填。 + +> `port`: int + +Hysteria2 代理服务器端口,必填。 \ No newline at end of file diff --git a/docs/config/transports/hysteria.md b/docs/config/transports/hysteria.md new file mode 100644 index 00000000..ab03bf41 --- /dev/null +++ b/docs/config/transports/hysteria.md @@ -0,0 +1,79 @@ +# Hysteria + +Hysteria2 的底层 QUIC 传输的 Xray 实现,通常需要搭配 [hysteria2 出站](../outbounds/hysteria2.md) 使用。 + +## HysteriaObject + +`HysteriaObject` 对应传输配置的 `hysteriaSettings` 项。 + +```json +{ + "version": 2, + "auth": "password", + "up": "0", + "down": "0", + "udphop": { + "port": "1145-1919", + "interval": "30s" + }, + "initStreamReceiveWindow": 8388608, + "maxStreamReceiveWindow": 8388608, + "initConnectionReceiveWindow": 20971520, + "maxConnectionReceiveWindow": 20971520, + "maxIdleTimeout": 30, + "keepAlivePeriod": 0, + "disablePathMTUDiscovery": false +} +``` + +> `version`: number + +Hysteria 版本,必须位 2。 + +> `auth`: string + +Hysteria 认证密码,服务端和客户端需要保持一致。 + +> `up`: string + +> `down`: string + +限制的上传/下载速率。默认值为 0. + +格式用户友好,支持各种常见的比特每秒写法,包括 `1000000` `100kb` `20 mb` `100 mbps` `1g` `1 tbps` 等等等,大小写不敏感,单位之间可以带或者不带空格,无单位时默认为 bps(比特每秒),不能低于 65535 bps。 + +协商行为和 Hysteria 原版一致: + +服务端的值将限制客户端可以选择的最大 Brutal 模式速率,为 0 表示不限制客户端。 + +客户端为 0 则表示使用 BBR 模式,不为 0 则表示使用 Brutal 模式,会受到服务端的限制。 + +注意相对论,服务端的上传是客户端的下载,服务端的下载是客户端的上传。 + +> `udphop`: {"port": string, "interval": string} + +UDP 端口跳跃配置。 + +port 为跳跃的端口范围,可以是一个数值类型的字符串,如 `"1234"`;或者一个数值范围,如 `"1145-1919"` 表示端口 1145 到端口 1919,这 775 个端口。可以使用逗号进行分段,如 `11,13,15-17` 表示端口 11、端口 13、端口 15 到端口 17 这 5 个端口。 + +> `initStreamReceiveWindow`: number + +> `maxStreamReceiveWindow`: number + +> `initConnectionReceiveWindow`: number + +> `maxConnectionReceiveWindow`: number + +这四个为具体的 QUIC 窗口参数,**除非你完全明白自己在做什么,否则不建议修改这些值**。如果要改,建议保持流接收窗口与连接接收窗口的比例为 2:5 + +> `maxIdleTimeout`: number + +最长空闲超时时间(秒)。服务器会在多长时间没有收到任何客户端数据后关闭连接,范围为 4~120 秒,默认为 30 秒。 + +> `keepAlivePeriod`: number + +QUIC KeepAlive 间隔(秒)。范围为 2~60 秒。默认禁用。 + +> `disablePathMTUDiscovery`: bool + +是否禁用路径 MTU 发现。