Hysteria2 简介
Hysteria 是一个强大、快速、抗审查的代理工具。
⚡ 快如闪电
通过魔改的 QUIC 协议驱动,Hysteria 即使在最不稳定和容易丢包的网络环境中也能提供无与伦比的性能。
✊ 抗封锁能力
协议旨在伪装成标准的 HTTP/3 流量,无论中间人还是主动探测,都很难分辨和封锁。
为何这么火?能使垃圾线路焕发第二春?
对比之前的 ss、vmess、vless、trojan 等协议,说说它的特点及优势:
名词解释:QUIC 的名称最初是“快速UDP互联网连接”(Quick UDP Internet Connection)的首字母缩写,QUIC 的目的是为了在网络层淘汰 TCP ,以满足许多应用的需求,因此该协议偶尔也会获得 “TCP/2”的昵称。
大家都知道网络使用高峰期时会出现拥堵造成高延迟及丢包。我们访问网站用的 HTTP 协议是基于 TCP 的,包括我们常用的 ss、vmess 、vless 、trojan 等工具也是基于 TCP 的。 TCP 的协议的拥塞控制算法决定了当出现拥堵会主动降低发送速率来缓解,网络就会变慢,也就是说决定权不在我们手里,拥堵自会变慢。
而 Hysteria 魔改 QUIC 基于 UDP 非 TCP ,魔改QUIC 的拥塞控制算法后名为 Brutal, Brutal 采用固定速率模型,拥堵时不会主动降低发送速率。可以让我们在配置文件中手动设置发送速率和接收速率,不管它是否拥堵。也就是别人拥堵时自动降速,我们保持不变。这就是 Hysteria 能大幅提升网速,使垃圾线路焕发第二春的原因。面对道德问题, Hysteria2 也支持使用传统BBR拥塞控制。搭建过程中会细说。
Hysteria 2 与 Hysteria 1.x 完全不兼容,用户必须在客户端和服务器上使用一致的版本。Hysteria 1 这里就不再细说。
Hysteria 2 搭建教程
准备工作
VPS
使用谷歌云,操作系统版本 Debian12,防火墙入站规则已设置好。可以参考 2023年8月最新谷歌云GCP注册教程域名并解析好(非必须)
1
test.heybro.bid 34.92.218.72
可以不使用自己的域名使用自签名证书,后面配置过程会讲到。
服务端部署
采用官方提供的脚本
1 | # 切换到 root |
输出提示
Congratulation! Hysteria 2 has been successfully installed on your server. 表示安装成功
并提示我们下一步要:
- 修改服务端配置文件 /etc/hysteria/config.yaml
- 启动 hysteria systemctl start hysteria-server.service
- 设置开机自启 systemctl enable hysteria-server.service
先设置开机自启
1 | systemctl enable hysteria-server.service |
生成自签名证书
1 | openssl req -x509 -nodes -newkey ec:<(openssl ecparam -name prime256v1) -keyout /etc/hysteria/server.key -out /etc/hysteria/server.crt -subj "/CN=bing.com" -days 36500 && sudo chown hysteria /etc/hysteria/server.key && sudo chown hysteria /etc/hysteria/server.crt |
设置配置文件
1 | cat << EOF > /etc/hysteria/config.yaml |
启动Hysteria2服务
1 | systemctl start hysteria-server.service |
其他命令
1 | # 查看状态及日志 |
客户端
windows
我们先从Windows开始
v2rayN 下载:https://github.com/2dust/v2rayN/releases/latest
Hysteria 2下载:https://github.com/apernet/hysteria/releases
客户端配置文件
关于带宽字段的设置
1 | bandwidth: |
根据自己使用的带宽酌情设置,官方说法如下:
Brutal 如果带宽设置低于实际最大值也能正常运行;相当于限速。重要的是不要将其设置得高于实际最大值,否则会因为补偿机制导致连接速度更慢且不稳定。
另外,服务端、客户端的配置文件均可设置带宽字段,这样会有三种情形:
服务端、客户端两端均设置:两个方向都会使用 Brutal,客户端的 up 应当等于服务端的 down,两端设置数据不同时,实际控制速度为相对小的值。
仅一端设置:按这一端设置值使用 Brutal 控制速度
- 两侧均不设置,则双方均使用 BBR
一个特殊情况是当服务端配置文件启用了 ignoreClientBandwidth
选项,无论客户端的带宽值如何,双方始终都会使用 BBR。
1 | server: IP:443 |
手机客户端
各种客户端陆续开始支持 hysteria 2,官方最新的客户端支持列表里显示,全平台支持的客户端包括 Clash Meta 及 sing box
给大家介绍 NekoBox for Android