Hysteria
本条目的参考资料可能不符合维基百科关于可靠来源的指引。 |
此条目已被提出存废讨论。请前往此处就该条目是否应该被删除进行讨论。? |
Hysteria是由美国非营利组织光圈互联网实验室(Aperture Internet Laboratory)及其社区团队开发的反审查工具。Hysteria能将代理流量伪装成HTTP/3, 并使用专门的拥塞控制算法确保传输速度。Hysteria主要使用Go语言开发,采用MIT许可证且开放源代码。
原作者 | tobyxdd 光圈互联网实验室(Aperture Internet Laboratory) |
---|---|
首次发布 | 0.0.1 (2020年4月23日[1] | )
当前版本 | 2.4.3 (2024年4月29日 | )
源代码库 | https://github.com/apernet/hysteria |
编程语言 | Go |
操作系统 | 类Unix系统 Microsoft Windows |
平台 | ARM、X86、X86-64、MIPS、MIPSLE、RISC-V64等 |
类型 | 代理服务器 突破网络审查 自由软件 应用软件 |
许可协议 | MIT |
网站 | https://hysteria.network/ |
运行原理 编辑
与其它代理工具相似,Hysteria使用特定的中转服务器完成数据传输。Hysteria由服务端和客户端两部分组成。运行在中转服务器上的Hysteria服务端首先监听一个HTTP/3服务,等待客户端连接以及发送认证凭据。服务端仅会在凭据验证通过后启用代理功能。如果没有收到认证凭据或者收到了错误的凭据,服务端会将自己伪装成一个正常的HTTP/3服务器[2]。
在成功建立与中转服务器的连接之后,Hysteria客户端会在本机构建一个本地SOCKS5代理(或HTTP、透明代理等)。客户端通过该本地代理收集其它应用程序(如网页浏览器)的网络流量,并转发给服务端。
Hysteria服务端与客户端之间的所有通信皆通过HTTP/3内置的TLS进行加密,并利用HTTP/3内置的多路复用功能将多个连接的流量通过单个HTTP/3连接发送。
特点 编辑
抗审查能力 编辑
此章节尚无参考来源,内容或许无法查证。 |
利用HTTP/3协议的特点,Hysteria的流量难以被中间人解密、篡改、主动探测和封锁。Hysteria服务器还可将自己伪装成一个同时提供明文HTTP、HTTPS以及HTTP/3服务的正常网站,具有一定的隐蔽性。
传输速度 编辑
此章节尚无参考来源,内容或许无法查证。 |
Hysteria内置了一个名为brutal(直译为“野蛮”)的拥塞控制算法。与传统的拥塞控制算法不同,该算法不会从延迟和丢包估算可用带宽,而采用由用户手动设置的带宽来发包。因此在较差的网络环境中仍然能保持较高的传输速度。
缺陷 编辑
资源占用多 编辑
Hysteria在特殊情况下可能会持续占用较多的CPU资源[3],这可能违反某些VPS提供商用户协议中的“合理使用”政策,从而造成用于运行Hysteria服务端的VPS被服务商停用或者删除。
来自运营商和国家防火墙的干扰 编辑
Hysteria传输所使用的HTTP/3基于UDP协议。在中国大陆,基于UDP的协议被互联网服务提供商基于QoS原因限制速度。
派生项目 编辑
TCP Brutal 编辑
TCP Brutal是Hysteria的“brutal”拥塞控制算法的TCP移植版本[6]。它被实现成一个Linux内核模块,并在GPLv2协议下开放源代码。在加载该内核模块之后,应用程序(例如修改过的翻墙软件)可以设置指定TCP连接的带宽参数并启用加速。TCP Brutal亦提供DKMS支持,以实现在内核更新时自动重新编译。
争议与批评 编辑
多倍发包 编辑
尽管Hysteria并不是通过发送多倍的数据包来提高速度[7],但仍然有一些人了解到Hysteria 2 的拥塞控制算法会根据丢包率补偿发包,因此而产生对于可能产生的额外的网络流量开销对用户造成的潜在损失的担心。
占用带宽的道德问题 编辑
2023年11月,在TCP Brutal发布之时,早期TCP规范起草人之一,David P. Reed曾对其发表过严厉的批评[8]。
“ |
互联网之所以能够正常运作,其核心在于通过合作共赢的容量共享,来实现最小化的延迟。Dave Taht 以及其他一些人已尽力去实现这一目标。 然而,有一些混蛋宣传类似于这样[注 1]的修改方案(大多数是针对 Linux 的),故意通过这种垃圾手段来降低他人的体验。这甚至对他们自己也没有多大帮助——除非他们的目的是让他们自己的其他流量也都经历极差的延迟。在我看来,这十分愚蠢。 |
” |
——David P. Reed |
Hysteria的作者 tobyxdd 曾写过一篇文章,对这些批评作出回应[9]。
注释 编辑
- ^ 指 TCP Brutal
参考资料 编辑
- ^ v0.0.1. GitHub. 2020-04-23 [2024-04-28].
- ^ Hysteria 2 Protocol Specification. Hysteria. 2024-03-05 [2024-04-28].
If authentication fails, the server MUST either act like a standard web server that does not understand the request
- ^ 做客户端使用一段时间后,CPU占用会很高 · Issue #360 · apernet/hysteria. GitHub. [2024-05-01].
- ^ A report on Iran's GFW. GitHub. 2023-05-22 [2024-04-28].
- ^ 有使用hysteria被疯的兄弟吗?关于hysteria和naiveproxy. HostLoc论坛. 2023-01-14 [2024-04-28].
- ^ TCP Brtual 项目介绍. GitHub. 2023-11-18 [2024-04-28].
- ^ Hysteria 是多倍发包吗?. Hysteria. 2023-11-09 [2024-04-28].
Hysteria 不会在任何情况下主动对一份数据进行多次发送,只有在检测到丢包时才会对丢失的部分进行重传
- ^ 可恶的 TCP 加速算法. 知乎. 2023-11-10 [2024-04-28].
- ^ My response to the recent controversy about TCP Brutal. 2023-11-10 [2024-04-28].