1 前言
Hysteria协议大家可能在很多地方都见过,很多人都说是可以拯救吃灰小鸡的脚本。但是由于他使用的udp协议,并且比较暴力。除去有qos的风险,还有可能会被商家删鸡,所以使用起来见仁见智了。
hysteria的多倍发包比较克制,hostloc论坛反馈像是racknerd和cloudcone等商家并没有对此进行删机。
目前来说只要是你本地和vps商家对于udp协议没有qos的严重,都是可以流畅起飞的。Hysteria 2 与 Hysteria 1.x 完全不兼容
并且,作者还开发了tcp-brutal这个项目,TCP Brutal是Hysteria的拥塞控制算法移植到TCP上,期待以后有人做出可以让reality协议也使用hysteria算法的方法。
在文章末尾有大家关心的一些问题,比如Hysteria 2和Hysteria 1的区别,是否是暴力发包等等。
另外,关于Hysteria 2的稳定性,我和一个用Hysteria 2协议做直连机场的机场主讨论过,他说稳定性还是很不错的,关于自签证书是否会封IP他说没有实际证据,但是如果开了混淆是有概率封端口的,由于这个脚本默认自带混淆大家可以不用考虑,如果后续有封端口的情况发生,大家可以换一个可以决定是否开启混淆的脚本使用来关闭混淆。
hysteria的github项目页:https://github.com/apernet/hysteria
本次使用的脚本是御坂的脚本,他的github项目页:https://github.com/Misaka-blog/hysteria-install
并没有使用某人的四合一脚本,实在是不敢用他的脚本,用你的vps挖矿谁受得了。御坂的脚本有点是可以不使用自己的域名,直接使用bing的自签证书,目前这个证书的防墙效果有待考证,我使用是没有问题的。
hy2安装脚本:wget -N --no-check-certificate https://raw.githubusercontent.com/Misaka-blog/hysteria-install/main/hy2/hysteria.sh && bash hysteria.sh
给大家看以下Hysteria 2协议的速度,测试环境是移动晚高峰时间测速,vps是cloudcone的dc1垃圾小鸡,进行油管4K测速。
2 安装
SSH链接上你的vps以后,确定在此vps上你要使用hy2的端口是开放的,这里推荐debian系统,默认端口就是开放的。然后使用此一键脚本,会提示你以下界面。
- 安装 Hysteria 2
- 卸载 Hysteria 2
- 关闭、开启、重启 Hysteria 2
- 修改 Hysteria 2 配置
- 显示 Hysteria 2 配置文件
- 更新 Hysteria 2 内核
- 退出脚本
请输入选项 [0-5]:
这里我们输入 1 ,然后等待程序反应。
后续提示
Hysteria 2 安装成功!
Hysteria 2 协议证书申请方式如下:
- 必应自签证书 (默认)
- Acme 脚本自动申请
- 自定义证书路径
请输入选项 [1-3]:
这里我们需要选择证书,如果使用自己的域名申请证书,可以选择2,如果觉得麻烦,可以直接输入1使用bing的自签证书。默认回车也是bing的自签证书。
然后会提示你选择端口,443最好。默认回车是随机,随机也可以。
然后会提示你Hysteria 2 端口使用模式,这里有单端口和端口跳跃。Hysteria作者有说明:中国用户有时报告运营商会阻断或限速 UDP 连接。不过,这些限制往往仅限单个端口。端口跳跃可用作此情况的解决方法。客户端将随机选择一个端口进行初始连接,并定期随机跳跃到另一个端口。用于控制时间间隔的选项是 transport
部分中的 hopInterval
。一句话来说就是定期换连接端口来防止某些qos。
所以我们默认选择单端口即可,如果后续有使用一段时间后限速。排除vps商家qos以后,可以使用端口跳跃。
然后会提示你设置 Hysteria 2 密码,这里默认回车使用随机密码即可。
然后会提示你Hysteria 2 的伪装网站地址,如果有喜欢的可以自己选择,默认回车是使用世嘉maimai日本网站。
一路畅快淋漓的回车下来,你的Hysteria 2就搭建完成了。
后续会给你客户端 配置文件和Hysteria 2 节点分享链接。某些软件比如v2rayn不支持用节点链接一键导入,就需要配置文件。配置文件可以直接复制脚本给出的客户端配置文件,或者从服务器的/root/hy/路径里面寻找也是可以的。
如果需要json配置文件,找到你刚刚安装脚本的ssh界面。在桌面新创建一个txt文件,里面脚本返回给你的客户端 JSON 配置文件内容。比如我的服务器的内容就是下面的内容:
{
"server": "74.18.114.19:9168",
"auth": "081e248c",
"tls": {
"sni": "www.bing.com",
"insecure": true
},
"quic": {
"initStreamReceiveWindow": 16777216,
"maxStreamReceiveWindow": 16777216,
"initConnReceiveWindow": 33554432,
"maxConnReceiveWindow": 33554432
},
"fastOpen": true,
"socks5": {
"listen": "127.0.0.1:5080"
},
"transport": {
"udp": {
"hopInterval": "30s"
}
}
}
然后我们将该txt的文件名改成hy-client.json
重点是后面的文件格式一定要是.json结尾。
3 导入软件
3.1 windows的V2rayn
V2rayn的项目页:https://github.com/2dust/v2rayN
v2rayn的github项目下载页面:https://github.com/2dust/v2rayN/releases
推荐下载新版本的v2rayN-With-Core.zip,解压后得到的文件夹。点击v2rayN即可打开软件使用。
然后我们需要替换Hysteria 2内核,截止到写文章时,v2rayn的sing-box内核并无法使用Hysteria 2协议,这不是sing-box内核的问题,最新版内核是支持的,可能是内核和软件之间没有协作好,所以我们仍然使用Hysteria内核,需要自己下载替换。
Hysteria内核下载页,https://github.com/apernet/hysteria/releases/
进去以后下载名字为hysteria-windows-amd64-avx.exe的版本。然后进入你解压的V2rayn文件夹里面的bin/hysteria目录中,将我们下载的hysteria-windows-amd64-avx.exe改名为hysteria-windows-amd64.exe后替换掉原本目录里面改的hysteria-windows-amd64.exe文件。
然后我们打开v2rayn软件,点击右上角的 服务器
,点击 添加自定义服务器
。
然后添加服务器。注意内核选择Hysteria,然后配置文件点击右边的浏览
选择刚刚保存在桌面的json文件。端口是你在用脚本搭建服务器时候选择的脚本,选择回车使用随机脚本的用户去ssh界面找一下默认的是哪个端口。
然后这个节点就导入成功了,可以使用了。具体的v2rayn设置系统代理和分流去谷歌搜以下v2rayn的使用教程。
3.3 windows的Nekoray / 安卓的Nekobox
新版的nekoray和nekobox可以直接导入节点链接,并且使用sing-box进行代理。
Nekoray的GitHub下载地址:https://github.com/MatsuriDayo/nekoray/releases
我写的nekoray使用教程:https://duangks.com/archives/153/
nekobox的github项目下载页:https://github.com/MatsuriDayo/NekoBoxForAndroid/releases
我写的nekobox使用教程:https://duangks.com/archives/146/
首先复制你的节点链接,比如我搭建好的链接就是hysteria2://[email protected]:9368/?insecure=1&sni=www.bing.com#Misaka-Hysteria2
在nekoray界面点击程序
然后点击从剪切板导入
即可。
在nekobox界面点击右上角第二个图标,一个文档中间带有加号的图标,然后点击从剪切板导入。
4 常见问题
4.1 Hysteria 2 与 Hysteria 1 的比较
Hysteria 2 继承了 Hysteria 1.x 的几乎所有功能,同时引入了各种新的修复和增强。但值得注意的是,由于协议和代码经过了重大更改,Hysteria 2 与 Hysteria 1.x 完全不兼容。 用户必须在客户端和服务器上使用一致的版本。
主要改进
最值得注意的几点包括:
- 新协议 :重新设计的协议,伪装成 HTTP/3,增加对抗审查的能力。
- 0-RTT UDP 会话建立 :每个新 UDP 会话的第一个包没有额外延迟。
- 新的 ACL 和出站系统 :根据不同的请求使用不同的出口。
- 流量统计 API :便于监控和管理。
- 性能改进 :各种底层优化,提高了性能和稳定性。
缺失的功能
Hysteria 2 尚未实现 Hysteria 1.x 中的一些功能:
- 客户端 ACL :目前 ACL 只在服务器端可用。
- FakeTCP 协议 :FakeTCP 一直是相对小众的功能,我们还在评估是否要重新引入。
- TUN 模式 :目前暂无,但很可能在未来重写、重新引入。
4.2 Hysteria 是多倍发包吗?
不是。Hysteria 不会在任何情况下主动对一份数据进行多次发送 ,只有在检测到丢包时才会对丢失的部分进行重传(丢包重传是任何可靠协议都必须有的)。而检测丢包和重传的策略和原版 QUIC 完全一致,QUIC 的策略本身也源自 TCP 没有太大区别。
在丢包率低的情况下,Hysteria 传输一份数据所消耗的流量和数据本身大小没有太大差异,并且能跑满带宽。假如是多倍发包,即使只多一倍,流量消耗也会是原来的两倍,并且最大有效传输速度只是线路的一半。因此所谓多倍发包是一个非常容易证伪的错误说法。
2 comments
如何再次进入脚本?
如何再次进入脚本?