注意事项
截至本文最后更新时间 2022-08-24
,该解决方案仍处于测试阶段,未来短期内会有大量的版本更新,请注意甄别本文中可能过时的内容,谨慎参考。
本文涉及到的开源项目如下:
项目名 | 发行版本号 | 用途 |
---|---|---|
HyNetwork/hysteria | v1.2.0 | 代理核心 |
2dust/v2rayN | v5.32 | 图形化客户端 |
emptysuns/Hi_Hysteria | v0.4.0 | 服务端安装脚本 |
注意 本文不面向零基础的小白读者,开始前,请确保你已了解 v2rayN 的基本用法,备有一台国外 VPS 以及可解析的域名,最后你需要了解基本的 Linux 操作指令用以解决本文尚未提及的偶发性异常。
快速上手
以 V2rayN 图形客户端为例,介绍在 Windows 上启动 hysteria 客户端的具体方法。
前期准备
关闭服务器防火墙
域名解析,关闭 CDN
关闭冲突服务
若服务器此前运行过或正在运行 xray-core 及其他代理核心服务,你需要先暂停或关闭这些服务。
注意: hysteria 与 xray-core 等服务并不冲突,可以同时运行,此处关闭仅为控制查错变量。
更新 v2rayN 客户端至最新版
Linux 服务端配置
通过脚本拉取基础设施
如下指令需要在
superuser env
下执行,使用sudo su root
切换至管理员上下文(如有必要)。1
bash <(curl -fsSL https://git.io/hysteria.sh)
脚本配置
在弹出的菜单中选择「安装 hysteria」。首次安装后,可通过全局脚手架指令
hihy
调出菜单。配置介绍
此处仅描述脚本运行所涉及到的基础配置项,更多高级参数详见 高级配置
域名:输入解析到本服务器 IP 的域名即可,解析前不可开启 CDN 。另外,确保已处理「前期准备」否则后续步骤必然报错。
端口: 无特殊要求,按回车随机选取即可。
协议类型: 经本人测试,仅有
wechat-video
能够较好地兼容v2rayN
运行,其他协议类型大概率不可用(留意时效性)。转发延迟: 在本地调出控制台,
ping
服务器 IP,执行 3 轮,每轮间隔 5 秒,取平均值即可。服务对此项配置并不敏感,保持在相交于真实值略低的区间即可(留意时效性)。下行速度: 限制每个客户端的最大下载速率(mbps)。留有 1.25 倍的冗余,也即填入 50,最后配置为 62.5。此项不宜过大,否则会导致客户端频繁遇到「Google reCAPTCHA 异常流量」的提示。
取<本地带宽理想值>以及<服务器带宽上限>的最小值,如服务器限速 100mbps,这里填 100 即可,若服务器带宽上限严重溢出,根据本地带宽取值。如:家宽 300Mbps 但你在阳台用笔记本的 WIFI 上网,实际网速可能只有 50Mbps ,这里填什么?好吧我也不知道,影响网速的东西可太多了Orz,一般情况下个人使用填 100 足足有余。
上行速度: 限制每个客户端的最大上传速率(mbps),同「下行速度」。
认证口令: 输入一串用于身份认证的指令, 如
fuck me till the daylight
。复制输出
脚本解析结束后会打印客户端的
json
配置信息以及Shadowrocket/Sagernet/Passwall
一键链接。此处,你需要复制其中的json
配置信息。上述的「一键链接」是以
hysteria://
打头的分别可用于 iOS/Andoid/软路由等嵌入式设备进行代理的 URI Scheme。
Windows 客户端配置
操作前,请确保你的 v2rayN 客户端已更新至最新版本。
下载 hysteria-core
访问 hysteria releases,在「Assets」找到最新版本的hysteria-tun-windows-6.0.amd64.exe
,下载。文件名随着时间推移可能会有所变更,留意时效性。
下载 hihy
分流文件
访问 hihy releases,在「Assets」找到最新版的压缩文件,如 v2rayN-hysteriaCore.rar
,下载解压。这个包中的文件我们只会用到 acl
,此处先按下不表。
启动 v2rayN
添加自定义配置服务器
- 在界面的「服务器」一栏中选择「添加自定义配置服务器」。
在「自定义配置中」点击「预览」,弹出一个窗口,访问 v2rayN 的项目根目录。
将
hihy
中的acl
文件夹以及hysteria-tun-windows-6.0.amd64.exe
拖入到此窗口中(也即拖入到 v2rayN 的根目录下)。在 v2rayN 的根目录下选中
config.json
模版文件,点击 「打开」 自动拷贝一份配置文件。在自定义配置窗口下点击 「编辑」,弹出 UUID 源文件窗口,将刚才复制的
json
配置信息复制进来。注意: 若你使用
hihy v3.7+
版本,自动生成的客户端配置(http,socks5)已自动适配 v2rayN 的系统代理监听端口,无需更改。Modify listen port。将
http
以及socks5
字段改为如下内容。也即将http
监听端口改为 10809,将socks5
监听端口改为10808
(对接 v2rayN 的端口配置即可)。
1 2 3 4 5 6 7 8 9 10
"http": { "listen": "127.0.0.1:10809", "timeout": 300, "disable_udp": false }, "socks5": { "listen": "127.0.0.1:10808", "timeout": 300, "disable_udp": false }
- Select Core Type。修改端口后保存并关闭配置文件。回到此处,在「Core 类型」中选择
hysteria
,确定,保存。完整配置后的参考截图如下:
连接测试
选中新加入的代理服务器并启动系统代理。若配置正常,即可正常访问互联网。
[可选] Socks5 系统代理
这里介绍一种通用的客户端代理方法,同样是凭借 v2rayN 图形化客户端启动 hysteria 代理。
修改节点客户端配置
以同样的方法打开 uuid 配置文件,将 http 的监听配置删去,修改 socks5 的监听端口,建议不与常见端口冲突,如可设为
8889
。启动 hysteria 服务
从 v2rayN 根目录启动 shell,运行 hysteria 服务,配置文件在“当前目录”的
guiConfigs
文件夹下。假设 v2rayN 根目录路径为
C:\v2rayn
,hysteria 文件名为hysteria-tun-windows-6.0.amd64.exe
,节点客户端配置文件名为UUID.json
,那么可以假设的命令行如下:1
C:\\v2rayn> hysteria-tun-windows-6.0.amd64.exe -c guiConfigs\\UUID.json
运行成功后可以看到如下输出日志,说明服务启动成功。
1 2
时间 [INFO] [addr:服务端IP:服务端port] Connected 时间 [INFO] [addr:127.0.0.1:8889] SOCKS5 server up and running
添加 Socks5 服务器
唤出 v2rayN 主界面,右键空白处,在弹出的菜单中选择「添加 Socks 服务器」。
以上文所述内容为例,此处分别在地址(address)以及端口(port)处填写 127.0.0.1 以及 8889,别名(remarks)随意,其余不动。
注意: 如果你额外设置了用户名及密码,在配置窗口中对应填写即可。
连接测试
选中刚创建的类型为「Socks」的
inner-hysteria
“套娃节点”,启动系统代理,以你喜欢的方式运行一系列的指标检测。值得一提的是,使用本方法在 v2rayN 中添加的配置项,可以使用 v2rayN 内置的测速功能(如真延迟,速度测试等),而根据上一节创建的类型为「Custom」的节点则不行(留意时效性)。
组合推荐
通常情况下推荐使用 2.3 介绍的方法直接添加服务器。
如果你依赖 v2rayN 的内置工具完成一些必要的测试工作,我建议你将指向同一个服务端的客户端配置文件分写,既使用完整的配置用于直接启动 hysteria 客户端代理,另起一个配置文件仅用于添加 Socks5 服务,在需要测速时按照 2.4.2 中介绍的方法手动运行 hysteria 服务,最后进行测速。
Speedtest 测试
本人使用多个代理节点进行对比测试后发现,hysteria
对素质较差的代理节点有较大提升,尤其在网络拥堵时间段。如下测试仅为不严谨的「玄学对比定性分析」,请忽视各种所谓的「测不准」因素。
以下测试中,左组均使用 hysteria-core
进行 100Mbps 下行,10Mbps 上行的带宽限制(有 1.25 倍冗余溢出);右组均使用 xray-core
,拥塞算法 bbr
,队列算法 fq
。
VPS/Solution | hysteria-core && wechat-video | xray-core && Trojan TLS |
---|---|---|
CloudPowerall | ||
Racknerd | ||
PacificRack | ||
BandwagonHost |
Youtube 测试
如下测试使用同上文一样的限制策略。
测试方法是,播放 Youtube 视频 Switzerland in 8K ULTRA HD HDR - Heaven of Earth (60 FPS) - YouTube ,播放源 7680x4320@60
, 从 1:30 持续播放至 2:50,取 2:50 时刻的截图(在这段时间内我会关注连接速度的取值,如果截停瞬间出现了偏离正常区间的异常数值,我会剔除这个样本并继续播放视频 1~2s 并取位于正常区间或附近的正常值)。不同节点和代理策略切换时,使用控制台清除本地缓存。测试时间段并非晚高峰。
VPS/Solution | xray-core && Trojan TLS | hysteria-core && wechat-video |
---|---|---|
CloudPowerall | ||
Racknerd | ||
PacificRack | ||
BandwagonHost |