Featured image of post 『Blog』V2rayN 配置 Hysteria

『Blog』V2rayN 配置 Hysteria

通过 V2rayN 实现在 Windows 上启动 Hysteria 客户端

注意事项

截至本文最后更新时间 2022-08-24 ,该解决方案仍处于测试阶段,未来短期内会有大量的版本更新,请注意甄别本文中可能过时的内容,谨慎参考。

本文涉及到的开源项目如下:

项目名发行版本号用途
HyNetwork/hysteriav1.2.0代理核心
2dust/v2rayNv5.32图形化客户端
emptysuns/Hi_Hysteriav0.4.0服务端安装脚本

注意 本文不面向零基础的小白读者,开始前,请确保你已了解 v2rayN 的基本用法,备有一台国外 VPS 以及可解析的域名,最后你需要了解基本的 Linux 操作指令用以解决本文尚未提及的偶发性异常。

快速上手

以 V2rayN 图形客户端为例,介绍在 Windows 上启动 hysteria 客户端的具体方法。

前期准备

  1. 关闭服务器防火墙

  2. 域名解析,关闭 CDN

  3. 关闭冲突服务

    若服务器此前运行过或正在运行 xray-core 及其他代理核心服务,你需要先暂停或关闭这些服务。

    注意: hysteria 与 xray-core 等服务并不冲突,可以同时运行,此处关闭仅为控制查错变量。

  4. 更新 v2rayN 客户端至最新版

Linux 服务端配置

  1. 通过脚本拉取基础设施

    如下指令需要在 superuser env 下执行,使用 sudo su root 切换至管理员上下文(如有必要)。

    1
    
    bash <(curl -fsSL https://git.io/hysteria.sh)
    
  2. 脚本配置

    在弹出的菜单中选择「安装 hysteria」。首次安装后,可通过全局脚手架指令 hihy 调出菜单。

  3. 配置介绍

    此处仅描述脚本运行所涉及到的基础配置项,更多高级参数详见 高级配置

    域名:输入解析到本服务器 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

  4. 复制输出

    脚本解析结束后会打印客户端的 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 添加自定义配置服务器

  1. 在界面的「服务器」一栏中选择「添加自定义配置服务器」。
image-20220406004646824
  1. 在「自定义配置中」点击「预览」,弹出一个窗口,访问 v2rayN 的项目根目录

    1. hihy 中的 acl 文件夹以及 hysteria-tun-windows-6.0.amd64.exe 拖入到此窗口中(也即拖入到 v2rayN 的根目录下)。

    2. 在 v2rayN 的根目录下选中 config.json模版文件,点击 「打开」 自动拷贝一份配置文件。

    3. 在自定义配置窗口下点击 「编辑」,弹出 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
    }
    
    1. Select Core Type。修改端口后保存并关闭配置文件。回到此处,在「Core 类型」中选择 hysteria ,确定,保存。完整配置后的参考截图如下:
image-20220406010435991
image-20220501175014854

连接测试

选中新加入的代理服务器并启动系统代理。若配置正常,即可正常访问互联网。

[可选] Socks5 系统代理

这里介绍一种通用的客户端代理方法,同样是凭借 v2rayN 图形化客户端启动 hysteria 代理。

  1. 修改节点客户端配置

    以同样的方法打开 uuid 配置文件,将 http 的监听配置删去,修改 socks5 的监听端口,建议不与常见端口冲突,如可设为 8889

  2. 启动 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
    
  3. 添加 Socks5 服务器

    唤出 v2rayN 主界面,右键空白处,在弹出的菜单中选择「添加 Socks 服务器」。

    以上文所述内容为例,此处分别在地址(address)以及端口(port)处填写 127.0.0.1 以及 8889,别名(remarks)随意,其余不动。

    注意: 如果你额外设置了用户名及密码,在配置窗口中对应填写即可。

  4. 连接测试

    选中刚创建的类型为「Socks」的 inner-hysteria “套娃节点”,启动系统代理,以你喜欢的方式运行一系列的指标检测。

    值得一提的是,使用本方法在 v2rayN 中添加的配置项,可以使用 v2rayN 内置的测速功能(如真延迟,速度测试等),而根据上一节创建的类型为「Custom」的节点则不行(留意时效性)。

  5. 组合推荐

    通常情况下推荐使用 2.3 介绍的方法直接添加服务器。

    如果你依赖 v2rayN 的内置工具完成一些必要的测试工作,我建议你将指向同一个服务端的客户端配置文件分写,既使用完整的配置用于直接启动 hysteria 客户端代理,另起一个配置文件仅用于添加 Socks5 服务,在需要测速时按照 2.4.2 中介绍的方法手动运行 hysteria 服务,最后进行测速。

Speedtest 测试

本人使用多个代理节点进行对比测试后发现,hysteria 对素质较差的代理节点有较大提升,尤其在网络拥堵时间段。如下测试仅为不严谨的「玄学对比定性分析」,请忽视各种所谓的「测不准」因素。

以下测试中,左组均使用 hysteria-core 进行 100Mbps 下行,10Mbps 上行的带宽限制(有 1.25 倍冗余溢出);右组均使用 xray-core ,拥塞算法 bbr,队列算法 fq

VPS/Solutionhysteria-core && wechat-videoxray-core && Trojan TLS
CloudPowerallhysteria-core && wechat-videoxray-core && Trojan TLS
Racknerdhysteria-core && wechat-videoxray-core && Trojan TLS
PacificRackhysteria-core && wechat-videoxray-core && Trojan TLS
BandwagonHosthysteria-core && wechat-videoxray-core && VLESS TCP XTLS-direct

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/Solutionxray-core && Trojan TLShysteria-core && wechat-video
CloudPowerallxray-core && Trojan TLShysteria-core && wechat-video
Racknerdxray-core && Trojan TLShysteria-core && wechat-video
PacificRackxray-core && Trojan TLShysteria-core && wechat-video
BandwagonHostxray-core && Trojan TLShysteria-core && wechat-video
You will to enjoy grander sight / By climing to a greater height.