tobyxdd

协议与传输

Hysteria 协议与核心开创者 · 2015 — 至今

又名 Toby

以暴力美学撕裂长肥网络桎梏:Hysteria 的 UDP 极速纪元与拥塞控制突破

打破传统 TCP 代理面对丢包被动减速的陈旧范式,自研 Brutal 算法与工业级定制 QUIC,以纯粹速度撕开跨国弱网与审查封锁

第一幕 · 时代困境:跨国长肥网络与传统 TCP 的雪崩

在跨国互联网访问场景中,物理距离带来的高往返时延(RTT 普遍在 150ms 到 300ms 以上)与跨境网络安全网关的人为限速,共同构成了典型的“长肥网络”(Long Fat Network)。在这一环境下,沿用了数十年的传统 TCP 拥塞控制机制暴露出难以克服的物理缺陷。

在 Google BBR 尚未普及的年代,操作系统与代理软件普遍采用 Cubic 算法。Cubic 恪守经典的丢包反馈机制,将任何数据包丢失一律视为网络发生严重拥塞的信号。一旦遭遇丢包,发送端便会触发乘法减小(Multiplicative Decrease),将拥塞窗口削减一半甚至重置为初始状态。

这种在局域网内保障公平性的经典机制,在恶劣的跨境翻墙场景下却演变为吞吐灾难:海外 VPS 即使拥有 1Gbps 的高速物理链路,只要遭遇运营商国际出口高峰期施加的 5% 到 15% 人为 QoS 随机丢包,传统代理的传输带宽便会断崖式暴跌至几兆甚至几千字节每秒。加之 TCP 单一数据流中单个丢包引发的整流队头阻塞(Head-of-Line Blocking),所有并发应用请求瞬时冻结,网页打不开、4K 视频无法缓冲成为中文网民的常态梦魇。

早在大学时代,还在探索底层网络的 tobyxdd 便在跨境实测中洞察到了这一反常物理现象:国际网络连接上的丢包率在达到运营商流量整形(Traffic Policing)上限之前,无论速度快慢几乎都保持恒定。这一关键发现打破了“丢包即网络承载过载”的传统定势,成为日后颠覆性拥塞控制算法的思想火种。[16][13]

第二幕 · 寻路与创世:从 Java 版 Dragonite 到 QUIC 协议破局

打破陈规的第一步源自大学时代的极客探索。2015 年,受商业文件加速传输系统 IBM Aspera(FASP 协议)的启发,tobyxdd 在没有高深网络背景的情况下,在 Java 语言中从零实现了一套基于不可靠 UDP 的可靠应用层传输协议——Dragonite(dragonite-java)。他在后来的技术答卷中回忆道:“作为一名没有网络专业背景的大学生,当看到我的项目仅凭一台普通的日本 VPS 就能在 Cubic 根本无法企及的恶劣网络下流畅播放 1080p YouTube 时,我感到无比震撼。”

数年之后的 2020 年 4 月 9 日 14:07(UTC-7),tobyxdd 在 GitHub 推送了 Hysteria 仓库的创世根提交(Commit 5547895),留下简洁而坚定的提交日志:“First commit, forwarder is essentially complete”。

4 月 23 日,他在提交的首版 README 中坦荡写下了项目的血缘谱系与立项动机:“Hysteria 是专门针对恶劣网络环境(常见于在中国访问海外服务器)进行优化的连接转发和代理工具(即所谓的双边加速)。其基于修改版的 QUIC 协议,可以理解为是我此前弃坑的项目 dragonite-java 的续作。”

这一次,tobyxdd 彻底抛弃了自研协议栈容易陷入小众维护的陷阱,全面拥抱正在由 IETF 推进标准化的新兴传输层标准——基于 UDP 的 QUIC 协议。QUIC 天生支持单连接多路流复用且各流相互独立、彻底消除了队头阻塞,并具备连接迁移(Connection Migration)能力。以针对不可靠链路深度修改的 quic-go 为底座,Hysteria 的极速轮廓破土而出。[1][2][3][13]

第三幕 · 暴力美学的数学与工程:Brutal 算法与固定速率补偿

然而,标准 QUIC 内置的 Reno 或 Cubic 控制器在恶劣丢包网络下依旧受制于被动减速的传统逻辑。tobyxdd 决意走出自己的道路,开创了代理技术史上最具争议却又最为立竿见影的拥塞控制算法——Brutal。

Brutal 算法的核心哲学极其纯粹:摒弃根据网络丢包和时延波动被动探测与减速的传统范式,采用用户主动指定带宽的固定速率模型。用户根据自身物理网络下行与上行能力设定目标速率,算法便以此为基准进行高精度的定序发包(Pacing)。

更具颠覆性的是其在数学与工程层面的“逆向补偿”机制。在提交 994cef3 中固化的核心算法实现中,发送端实时统计时间滑动窗口内的确认率(ackRate)与平滑往返时延(SmoothedRTT),将拥塞窗口计算为 CWND = bps * RTT * Multiplier / ackRate,发包定序器速率同样设定为 bps / ackRate。

这意味着当网络发生丢包(ackRate < 1.0)时,Brutal 不仅不减速退让,反而将拥塞窗口与发送速率按丢包比例反向放大,主动重传丢失报文并以更高频次发包,强行抹平丢包造成的速率损耗!原本在晚高峰被运营商丢包限制在 2Mbps 的恶劣网络,在 Hysteria 介入后瞬间被拉升至数百度光纤的理论峰值。

关于这一算法名字的由来,tobyxdd 在公开文献中留下了一段极具极客自省的坦诚自述:“A fun fact is that Brutal originally had no name. It was only after I fully realized its aggressive nature that I named it, hoping that the name would signal its behavior to users.”(有趣的是,Brutal 最初并没有名字。直到我完全意识到它的激进本质后,我才正式将它命名为 Brutal,希望这个名字能直接向使用者警示其霸道行为。)[6][16][13][5]

第四幕 · 推倒重构:Hysteria 2、HTTP/3 伪装、混淆与端口跳跃

一代 Hysteria 在高丢包链路上的惊人表现席卷了整个社区,但也暴露出初代握手协议容易被运营商特征匹配识别、单一 UDP 端口持续大流量容易遭到 QoS 黑洞拦截的新挑战。tobyxdd 拒绝在旧地基上修修补补,于 2023 年开启了一场历时逾一年的推倒重来式重塑。

2023 年 9 月 1 日,全面重写的第二代协议 Hysteria 2(v2.0.0)正式发布。在协议线格式规范(v4 wire format)中,新协议彻底废弃了初代特征,将整个认证流程无缝伪装成标准 HTTP/3 Web 流量(RFC 9114)。面对防火墙的未授权主动探测,服务端与普通 Web 站点毫无二致;而合法客户端则通过标准的 HTTP/3 POST /auth 请求建立握手,服务端以独创的 HTTP 状态码 233 HyOK 完成会话确认。

针对深度包检测(DPI)对 QUIC 明文握手特征的嗅探,tobyxdd 先于 2023 年 7 月 9 日提交实装了 Salamander 混淆机制(Commit 4c24eda):对每个数据包注入 8 字节随机 Salt,结合预共享密钥通过 BLAKE2b-256 算法生成高熵哈希,并进行逐字节异或掩护;2026 年更进一步引入实验性的 Gecko 混淆,将 QUIC Long Header 报文按 Gecko Frame 切片为 2 至 8 个随机大小的片段并混入随机 Padding,彻底打散握手包的“体态指纹”(Traffic Shape)。

而针对运营商针对单一 UDP 端口大流量的长期限速,tobyxdd 在 2022 年 11 月 1 日提交实验性原型(Commit a4da230)、并在 2023 年 8 月 30 日(Commit 3e5eccd)全面实装了 UDP 端口跳跃(Port Hopping)机制。客户端可在数百个端口之间以随机或固定间隔动态无感漂移,并在切换瞬间维持跨端口的双向滑动接收窗口处理在途报文(in-flight packets),实现连接不中断的幽灵跃迁,粉碎了运营商单端口策略库的围剿。[10][15][8][7][9][17]

第五幕 · 风暴与答卷:TCP Brutal 的公网论战与极客宣言

当 Brutal 在定制 QUIC 栈中大获全胜后,社区开始渴望将这一极速算法赋能给更广泛的传统 TCP 代理协议。2023 年 11 月 3 日 06:18(UTC),tobyxdd 再次做出惊人之举:他用纯 C 语言编写了 Linux 内核拥塞控制模块 tcp-brutal(Commit d2276eb),直接向系统协议栈注入全新的 brutal 算法,并联合 sing-box 维护者 nekohasekai 制定了 _BrutalBwExchange 握手规范,使多路复用(mux)下的 TCP 代理连接也能在内核层无视丢包、满速传输。

然而,将激进的固定速率发包下沉至标准操作系统 TCP 协议栈,立即在全世界计算机网络界掀起滔天巨浪。项目发布数日内登上全球极客社区 Hacker News 榜首与中文知乎技术热榜,引来包括早期 TCP/IP 奠基人、UDP 协议共同发明人 David Reed 在内的多位国际网络先驱的实名批评,指责 Brutal 算法彻底破坏了互联网长久依赖的“拥塞崩溃防线”(Congestion Collapse)与公平性共识。

面对铺天盖地的争议与学界泰斗的质疑,tobyxdd 没有选择沉默回避或仓皇删库。2023 年 11 月 9 日,他在官方频道以“My response”为题,发布了那篇注定载入开源网络史册的公开答卷(Gist response.md)。

在答卷中,他坦然承认批评在理论上的严谨与合理性,承认 Brutal 确实打破了带宽公平性,但随后他向全世界揭示了中国开发者面对的人为网络高墙与极度不平等的现实困境:

“Brutal 并没有‘摧毁互联网’。如果说中国互联网与全球连接的完整性遭受了破坏,那早在 Brutal 出现前很久就已经被摧毁了。它只是在瓦砾废墟中清理出一条前进的道路。”

“Brutal is not responsible for 'destroying the internet.' If anything, the global connectivity aspect of the internet in China had been destroyed long before Brutal existed. It merely shifts the rubble to make a path forward.” 这段字字千钧的宣言展现了当代开源极客最深沉的担当:面对物理规则人为筑起的深渊,代码不是温室里的教条理论,而是撕破不公的凿壁之光。[11][12][13]

第六幕 · 防御镜像与生态余响:OpenGFW、P2P Realms 与 UDP 极速纪元

深谙攻防之道的顶尖黑客,往往也是最懂防御机制的架构师。2024 年 1 月 19 日,tobyxdd 在 GitHub 开源了极具传奇色彩的个人作品 OpenGFW(Commit 4f86f91),将自身对审查机制的逆向认知转化为一个运行在 Linux 上的 DIY 深度包检测与流量分析防火墙。他在初代 README 中用幽默自嘲的笔触写道:“OpenGFW 是 Linux 上灵活、易用、开源的 GFW 实现,在许多方面比真货更加强大。凭什么审查的乐趣只属于当权者?把网络主权的刺激体验直接带进你的家用路由器,你也可以体验当老大哥的快感。”

OpenGFW 实现了全套工业级的 IP/TCP 数据流重组、覆盖 Shadowsocks 与 VMess 等“全加密流量”(Fully Encrypted Traffic)的特征分析,以及基于 expr 的高性能规则引擎。尽管该项目后来因遭遇商业网络监控公司的恶意抄袭而一度关闭,但在全球开源社区的强烈呼吁下最终重新开放,成为研究网络审查底层机制的珍贵活化石。

在 Hysteria 的技术演进上,tobyxdd 依然保持着敏锐的探索步伐:2026 年 5 月在 v2.9.0 中引入 P2P 模式 Hysteria Realms,通过轻量牵线服务器(Rendezvous Server)与 STUN 协议,在无公网 IP 和无端口转发的严苛家用宽带及 CGNAT 环境下实现直接 UDP 打洞;同年 9 月在 v2.12.3 中深度集成 ECH(Encrypted Client Hello)密钥生成与公开域名伪装,消除了 TLS 握手中最后的明文 SNI 泄露隐患。

从 2015 年大学宿舍里对 IBM Aspera 协议的青涩逆向,到 2020 年 Hysteria 的创世惊雷,再到今天被 sing-box、FlClash、Clash Verge Rev、NekoBox、Hiddify、Surge、Shadowrocket 等全生态客户端原生集成的技术基石——tobyxdd 以近乎执拗的纯粹速度哲学,在现代翻墙史上确立了与 TCP 伪装派平分秋色的 UDP 极速帝国,用十余年的一手代码筑起了一条跨越网络深渊的高速通途。[14][18][19][10]

代表作品与核心贡献

Hysteria 2

访问作品

全面推倒重构的第二代极速代理核心,支持 HTTP/3 深度拟态伪装(233 HyOK)、自研 Brutal 算法、Salamander/Gecko 混淆与 UDP 端口跳跃

Brutal 拥塞控制算法

访问作品

颠覆丢包减速传统的固定速率拥塞控制算法,基于 RTT 与确认率主动补偿发包,榨干跨国长肥网络物理带宽

TCP Brutal (Linux 内核模块)

访问作品

将 Brutal 算法移植至 Linux 内核协议栈(C 语言),使传统 TCP 代理连接在内核层突破运营商恶劣 QoS 丢包限制

Linux 平台上灵活高效的开源深度包检测与审查分析防火墙,实现完整的 IP/TCP 重组与全加密流量特征识别引擎

Dragonite (dragonite-java)

访问作品

2015 年基于可靠 UDP 探索网络加速的初代开源项目,为日后 Hysteria 的诞生奠定算法与实测认知基石

致敬开发者的坚守

代码或许归档,但火种永不熄灭。为推动网络对抗演进与底层工程突破的开拓者献上一份敬意。

单设备 1 小时内限致敬 1 次 · 匿名无感不收集隐私

作者公开发言与动态

来源:GitHub

tobyxdd:Hysteria 不需要专门的 OpenWrt 构建

在「关于对 openwrt-arm_cortex-a9 的构建支持」的问题(HyNetworks/hysteria #1685)中,tobyxdd 回复:不需要专门的 openwrt build,hysteria 是纯 Go 程序、不依赖 libc,linux-arm 应该可以直接跑;如果 CPU 没有硬件浮点,也可以用 linux-armv5。

来源:GitHub

tobyxdd 澄清 Hysteria 的 ECH 并未被丢弃,是客户端日志始终显示为 false

在 Hysteria 议题「tls.ech 在未设置 disableChromeParrot 时被静默忽略」的讨论中,tobyxdd 回应称 ECH 实际上并没有被丢弃。问题只是客户端在启用 Chrome 指纹伪装(parroting)时,即使 ECH 已经生效,日志里也始终显示 ech 为 false。他表示该问题纯属显示层面,将在下个版本修复。

查看全部动态(4 条)

编年大事记

早期探索:基于可靠 UDP 的 Java 传输协议 Dragonite 立项

从 IBM Aspera(FASP 协议)汲取灵感,在 Java 中自研实现抗丢包 UDP 协议 dragonite-java,实现在恶劣跨境弱网下流畅播放 1080p YouTube。[3][13]

Hysteria 初代核心创世根提交

tobyxdd 在 GitHub 推送 Hysteria 初代代码创世提交(5547895),初步确立基于定制 QUIC 栈的高性能连接转发架构。[1]

发布首版 README 阐明技术谱系与立项初衷

在初代 README 中明确将项目定义为 dragonite-java 的精神续作,正式确立针对恶劣弱网与 QoS 限速的代理协议路线。[2]

实装 TUN 虚拟网卡接管模式

为客户端引入系统级 TUN 虚拟网卡接口,使非代理感知型应用实现免配置全局流量接管。[4]

Brutal 拥塞控制算法独立规范化

发布 v0.9.0,正式将自研固定速率发包与丢包逆向补偿机制命名为 Brutal,并建立独立拥塞控制抽象。[5][13]

首次提交实验性 UDP 端口跳跃机制

提交 a4da230 首次探索多端口地址格式与动态跳跃,应对运营商针对单一 UDP 端口大流量的长期 QoS 限速与封锁。[7]

实装 Salamander 流量混淆机制

提交 4c24eda 引入 Salamander 混淆层,基于 BLAKE2b-256 加盐哈希与逐字节异或伪装消除 QUIC 流量指纹。[8]

端口跳跃机制正式落地并合并

提交 3e5eccd 全面实装 UDP 端口跳跃,实现跨端口无感平滑切换与在途报文缓冲,粉碎运营商单端口限速。[9][17]

全面推倒重构的 Hysteria 2 正式发布

推出完全重构的 Hysteria 2.0.0,引入 HTTP/3 深度拟态伪装、独创 233 HyOK 鉴权状态码与 0-RTT 会话建立。[10][15]

开源 Linux 内核模块 TCP Brutal

推送 C 语言编写的内核拥塞控制模块 tcp-brutal(d2276eb),将固定速率算法直接下沉至 Linux 协议栈内核层。[11][12]

发表公开答卷澄清公网公平性争议

针对 David Reed 等学者关于破坏拥塞公平性的质疑发表经典 Gist,留下“在瓦砾废墟中清理出前进道路”的极客名言。[13]

开源 Linux 审查分析防火墙 OpenGFW

推送创世提交 4f86f91 开源 OpenGFW,实现完整的 IP/TCP 数据流重组、全加密流量识别与基于 expr 的规则引擎。[14]

Hysteria 2.9.0 引入 P2P Realms 穿透模式

发布 2.9.0 版本,通过 STUN 穿透与轻量牵线服务器实现无公网 IP 和无端口映射环境下的直接 NAT UDP 打洞互通。[18]

Hysteria 2.12.3 深度支持 ECH 加密握手

内置 ECH 密钥生成与伪装域名配置命令,通过外层公开域名掩护真实 SNI,消除 TLS 握手中的明文泄露隐患。[19]

一手来源与考据

小传正文中的关键事实与时间点均基于以下公开一手记录或权威报道:

  1. [1]

    2020-04-09 创世提交,包含初代基于定制 QUIC 转发核心的完整实现

    https://github.com/HyNetworks/hysteria/commit/5547895dcb9ee8e305a30a17b5de34b3c5da4f07
  2. [2]

    2020-04-23 发布首版文档,阐明基于定制 QUIC 并作为 dragonite-java 续作的立项宗旨

    https://github.com/HyNetworks/hysteria/commit/f2f025a1eecbbf57929a59b662d0baebbe123681
  3. [3]

    2015 年基于不可靠 UDP 实现可靠传输协议的早期探索项目

    https://github.com/dragonite-network/dragonite-java
  4. [4]

    2021-04-24 首次实装系统级 TUN 虚拟网卡流量接管

    https://github.com/HyNetworks/hysteria/commit/13ec19c4dfc5eb9fe03d20ebaa11e86093557e1b
  5. [5]

    2021-12-10 正式将固定速率主动发包拥塞控制算法抽象命名为 Brutal

    https://github.com/HyNetworks/hysteria/releases/tag/v0.9.0
  6. [6]

    展示基于 ackRate 确认率反向补偿、平滑 RTT 与两倍窗口的数学模型实现

    https://github.com/HyNetworks/hysteria/commit/994cef32ea81d3db41490c141ef3efce75be7c12
  7. [7]

    2022-11-01 首次在传输层引入多端口随机跳跃抗 QoS 限速

    https://github.com/HyNetworks/hysteria/commit/a4da230517768a46743f916d8d8ac1ff6c1d33bf
  8. [8]

    2023-07-09 实装 BLAKE2b-256 加盐异或混淆层,消除 QUIC 流量特征

    https://github.com/HyNetworks/hysteria/commit/4c24edaac14f50d3fa7da0a8262e36364e844b2f
  9. [9]

    2023-08-30 完成平滑端口跳跃与在途报文缓冲机制

    https://github.com/HyNetworks/hysteria/commit/3e5eccd6e39d2f668a6cda425e35494aaa847df8
  10. [10]

    2023-09-01 正式发布全面重塑的第二代协议,引入 HTTP/3 深度伪装与全新架构

    https://github.com/HyNetworks/hysteria/releases/tag/app%2Fv2.0.0
  11. [11]

    2023-11-03 首次用纯 C 语言将 Brutal 算法移植至 Linux 内核协议栈

    https://github.com/apernet/tcp-brutal/commit/d2276eb3b0ce420c1e68bc8d1554bf28202982db
  12. [12]

    开源内核模块实现、brutalctl 用户态控制及 sing-mux 协同设计

    https://github.com/apernet/tcp-brutal
  13. [13]

    2023-11-09 亲笔撰写“My response”,直面 David Reed 等先驱质疑,阐明算法初衷与极客宣言

    https://gist.github.com/tobyxdd/0993ac063b2eee94f7d36ddd786f52ce
  14. [14]

    2024-01-19 开源完整的 Linux 深度包检测与全加密流量特征识别框架

    https://github.com/HyNetworks/OpenGFW/commit/4f86f91a153b7cae7103db1274b0ec3ea6fa0e19
  15. [15]

    详述 HTTP/3 伪装握手、233 HyOK 状态码、Salamander 及 Gecko 混淆帧格式

    https://v2.hysteria.network/zh/docs/developers/Protocol/
  16. [16]

    官方系统性阐述 Brutal 固定速率发包、丢包逆向补偿与 BBR 模式切换逻辑

    https://v2.hysteria.network/zh/docs/advanced/Full-Server-Config/
  17. [17]

    详述多端口范围配置、跳跃时间间隔与突破单端口 QoS 限速原理

    https://v2.hysteria.network/zh/docs/advanced/Port-Hopping/
  18. [18]

    详述基于轻量牵线服务器与 STUN 的无公网 IP NAT UDP 直连打洞模式

    https://v2.hysteria.network/zh/docs/advanced/Realms/
  19. [19]

    详述基于 ECH 对 TLS ClientHello 与真实 SNI 进行端到端加密的防嗅探机制

    https://v2.hysteria.network/zh/docs/advanced/ECH/
资料边界与事实声明

本文严格基于 GitHub 公开代码仓库(HyNetworks/hysteria、apernet/tcp-brutal、HyNetworks/OpenGFW、dragonite-network/dragonite-java)真实 Git 提交历史、官方 Release 记录、Protocol RFC 设计白皮书及开发者公开技术答复(Gist response.md)撰写。恪守开源社区伦理底线与最高隐私红线,绝不探究、推测或记录维护者的现实身份、个人生活与地理行踪,聚焦于传输层协议突破、拥塞控制算法研发与网络攻防博弈的客观技术贡献。

修订历史:
  • :依据 GitHub 官方代码仓库创世提交(5547895)、首版 README 谱系声明、Hysteria 2 协议白皮书(RFC 风格规范)、Linux 内核模块 tcp-brutal 源码及 tobyxdd 个人答卷 Gist,全面补全从 Dragonite、Brutal 算法数学模型、HTTP/3 伪装到 OpenGFW 的全生命周期考据。
  • :首版收录,基于 Hysteria 项目仓库、RFC 提案草案及官方文档编写。

发现人物信息不准确?

写明需要纠正的内容,可附相关链接。资料会在人工核验后更新。