博文

目前显示的是标签为“hysteria2”的博文

Hysteria2服务端自签证书 搭建节点时未获取证书指纹 v2ray客户端测试查询证书指纹

图片
前言 如果你使用Hysteria2服务端自签证书, 搭建脚本/面板没有提供证书的指纹. 而你担心被中间人攻击, 你希望在客户端指定证书的指纹. 那么, 你可以这么做: 1. 如果你能在服务端找到证书 你可以使用 openssl x509 -in 你的证书.crt -outform DER | sha256sum | awk '{print $1}'  或 openssl x509 -noout -fingerprint -sha256 -in your_cert.crt | sed 's/^.*=//' 得到证书指纹的 hex 编码 . 可以用于 Hysteria2 的客户端配置文件. 详见  https://zelikk.blogspot.com/2025/11/hy2-pinsha256-der.html 你也可以使用 openssl x509 -in 你的证书.crt -outform DER | sha256sum | awk '{print $1}' | xxd -r -p | base64 或 openssl x509 -noout -fingerprint -sha256 -in 你的证书.crt | sed 's/^.*=//' | xxd -r -p | base64 得到证书指纹的 base64 编码 . 可以用于 V2ray 的客户端配置文件. 详见  https://zelikk.blogspot.com/2025/11/hysteria2-v2ray.html 2. 如果你不能(或者不懂)在服务端 找到证书 你可以使用 v2ray 客户端 尝试指定证书指纹连接服务端, 命令行报错信息会提示服务端的证书指纹. 我们以 v2rayN-VLESS 客户端为例. https://github.com/crazypeace/v2rayN-3.29-VLESS/ 支持hy2指定证书指纹的preview打包  https://t.me/FuckGFW_Newbie1/105 导入一个不带证书指纹的 Hy2 分享链接, 如 hysteria2://b4349e3a-55be-39ad-9837-3fb9397a888c@74.48.9.95:2053?insecure=1#HY2_74.48....

Hysteria2 服务端自签证书 V2ray客户端指定证书指纹

图片
前言 上一篇我们解决了 Hysteria2 客户端指定证书 现在我们来尝试用 V2ray作为客户端, 指定证书 文档 https://www.v2fly.org/config/transport.html#tlsobject 修改本地配置文件 试试. 报错. 尝试将日志中的  TeddTPwg0va7l8sJsBuTlrK6us6X+7GdxnssJ+JRuso= 写到配置文件中, 如下 测试成功. 分析 其实  4de75d4cfc20d2f6bb97cb09b01b9396b2babace97fbb19dc67b2c27e251baca 和  TeddTPwg0va7l8sJsBuTlrK6us6X+7GdxnssJ+JRuso= 本质上对应的原本的字节码是一样的. 只是前面那个是字节码转 hex, 后面是字节码转 base64. 在 Linux 上要得到 base64 格式的, 可以这样: openssl x509 -in your_cert.crt -outform DER | sha256sum | awk '{print $1}' | xxd -r -p | base64 或 openssl x509 -noout -fingerprint -sha256 -in your_cert.crt | sed 's/^.*=//' | xxd -r -p | base64 其中  | xxd -r -p | base64 的意思是, 从 hex 恢复成字节码, 再转 base64 总结 V2ray 客户端在对接服务端 Hysteria2 协议时, 可以指定证书的指纹, 但是要使用 base64 的形式. 形如, {   "protocol": "hysteria2",   "settings": {     "servers": [       {         "address": "服务.端.IP.地址",         "port": 服务端口       }     ]   },...

Hysteria2 服务端自签证书 客户端指定证书指纹

图片
前言 最近翻墙圈的氛围是研究服务端自签证书时, 客户端最好固定证书以避免中间人攻击. 理论支持 Hysteria2文档 https://v2.hysteria.network/zh/docs/getting-started/Client/#__tabbed_1_3 Hysteria2 服务端 问GPT, 计算证书的sha256 openssl dgst -sha256 certificate.crt 所以我的就是 openssl dgst -sha256 /etc/ssl/private/learn.microsoft.com.crt 得到 SHA2-256(/etc/ssl/private/learn.microsoft.com.crt)= a178a313215bd1db5f0256a7f56b23e97f00c2f89a7a47e42e36ad67e820131d Hysteria2 客户端 配置文件照着上面文档说的来, 就是 server: 服务.端.IP.地址:服务端口 auth: 密码 socks5:   listen: 127.0.0.1:20888 http:   listen: 127.0.0.1:20889 tls:   insecure: true   pinSHA256:  a178a313215bd1db5f0256a7f56b23e97f00c2f89a7a47e42e36ad67e820131d 命令行跑一下试试. 报错 PS D:\GFW\hy2> .\hysteria-windows-amd64.exe 2025-11-10T12:24:22+08:00       INFO    client mode 2025-11-10T12:24:23+08:00       FATAL   failed to initialize client     {"error": "connect error: CRYPTO_ERROR 0x12a (local): no certificate matches the pinned hash "...

极简一键脚本 搭Hysteria2梯子 UDP 使用BBR策略

图片
本文是整理博客补一篇. 并没有新的一键脚本发布. 一键执行 bash <(curl -L https://github.com/crazypeace/hy2/raw/main/install.sh) 这个一键脚本超级简单。有效语句 6 行(其中 安装Hysteria2 1 行, 安装Hysteria2服务 2 行, 生成自签证书 3 行) + 配置文件28行(其中你需要修改 4 行), 其它都是用来检验小白输入错误参数或者搭建条件不满足的。 你如果不放心开源的脚本,你可以自己执行那 6 行有效语句,再修改配置文件中的 4 行,也能达到一样的效果。 Github  https://github.com/crazypeace/hy2 前提条件 一个没有被墙的VPS Hysteria2底层是UDP直连,如果你的VPS已经被墙,那肯定用不了。出门左转  https://github.com/crazypeace/v2ray_wss 如果你能确定只是UDP有问题, 想试试TCP, 那么可以尝试 Reality https://github.com/crazypeace/xray-vless-reality 具体安装过程说明 bash <(curl -L https://github.com/crazypeace/hy2/raw/main/install.sh) 每个需要输入的地方都有提示 如果是IPv4+IPv6双栈的小鸡, 问你IPv4还是IPv6时 请按你的VPS的公网入口IP的情况填写. 公网IP为IPv4就输入 4 , 公网IP为IPv6就输入 6 . 单栈的小鸡直接按回车, 脚本会自动处理. 其它选项都可以回车使用脚本随机生成的默认值. 本项目配置文件不使用Brutal 我建此项目的目的是为了使用UDP这个通路. 不是为了Brutal策略. 所以在配置文件中使用了 ignoreClientBandwidth: true  如果你需要使用Brutal策略, 请自行修改配置文件, 或使用其它一键脚本. 带参数的使用方法 bash <(curl -L https://github.com/crazypeace/hy2/raw/main/install.sh) <netstack> <port>...

v2rayN-HY2 测试真连接延迟

图片
总功能列表在 这篇分析 里. 我们现在实现第 9 项 Ctrl+R 测速 打开主窗口 .cs 文件的设计器 找到菜单项, 双击,  打开菜单项 "测试真连接延迟" 的响应函数 走读代码, 跳转到 RunRealPing 函数. 继续走读代码, 一路跳转到 V2rayStartNew 函数 我们用 上一篇 一样的方法, 在 p.Start() 上设置断点. 再检查设置的启动参数. 可以看到, 实际上相当于在命令行执行 D:\_work\v2rayN-3.29-VLESS\v2rayN\bin\Debug\v2ray.exe -config stdin: 同样的, 这是 v2ray v4版本的启动语法. 我们要参考 v5 版本的启动语法了. 官方文档 https://www.v2fly.org/guide/start.html#运行 要注意, 测速的启动过程, 并不要指定配置文件. 而是, 先把程序启动起来, 再往 stdin (标准输入流) 输入json格式的配置文本. 而 v2ray v5版本, 要从stdin (标准输入流) 获取json格式的文本, 就要以 不指定配置文件的方式启动, 而且在同目录下不能有 config.json 文件. 所以, 我们把 生成配置文件的文件名, 修改为 不是config.json  比如, runconfig.json 进一步的, 我们使用的是 v4格式的json配置文本, 所以参数还要加上 -format json 最终, 修改启动参数为 run -format json 跑起来测试一下.   记得把以前生成的 config.json 文件删掉哦. 功能正常. ======== 开了一个分支, 本文的修改内容已提交. https://github.com/crazypeace/v2rayN-3.29-VLESS/tree/hy2 如果你有兴趣, 可以看到整个的开发过程. 本次修改记录 https://github.com/crazypeace/v2rayN-3.29-VLESS/commit/3129b5e ======== 如果只是使用 hy2 的话, 应该是可用的状态了. 所以发布了一个 pre release https://github.com...

v2rayN-HY2 导出分享链接至剪贴板 显示分享二维码

图片
总功能列表在 这篇分析 里. 我们现在实现第 8 项 导出分享链接至剪贴板 打开主窗口 .cs 文件的设计器 找到菜单项, 双击,  打开菜单项 "导出分享URL至剪贴板" 的响应函数 走读代码, 一路 F12 跳进去, 直到 GetVmessQRCode 函数. 这里就是生成分享URL的地方. 很明显, 函数名称没有及时更新, 还叫 Vmess  Hy2 分享链接的格式有官方定义. https://v2.hysteria.network/zh/docs/developers/URI-Scheme/ 示例: hysteria2://密码@服务器IP域名:端口?insecure=跳过证书验证#备注 我们照着 VLESS 的逻辑抄一遍. 没有encryption参数, 所以去掉. 继续跳进 GetStdTransport 函数. 这里面是处理 streamSettings 结构中的数据. 我们添加 hy2 的处理. 跑起来测试一下. 能复制出分享URL了. 但是里面多了一些参数. hysteria2://7c6c918f-6e80-3283-9cf0-a8d34e80f86e@104.168.128.251:2053?security=tls&type=hysteria2&insecure=1#HY2-104.168.128.251 security 和 type 参数在 hy2 的官方定义中是不应该出现的. 所以我们改一下, 不要调用 GetStdTransport 函数了, 直接在 GetVmessQRCode 函数中, 把 insecure 参数填充了就算了. 测试一下, 分享的URL正常. 生成的二维码用 Shadowrocket 扫一下, 也能正常使用. ======== 开了一个分支, 本文的修改内容已提交. https://github.com/crazypeace/v2rayN-3.29-VLESS/tree/hy2 如果你有兴趣, 可以看到整个的开发过程. 本次修改记录 https://github.com/crazypeace/v2rayN-3.29-VLESS/commit/16dd2f6

v2rayN-HY2 能正常使用

图片
总功能列表在 这篇分析 里. 我们现在实现第 7 项 能正常使用 首先要在 v2rayN.exe 同目录下放一个支持 hy2 的 v2ray 内核. 写本文时, 最新版本 v5.21.0  https://github.com/v2fly/v2ray-core/releases/tag/v5.21.0 下面, 开始处理代码. 打开主窗口 .cs 文件的设计器 找到菜单项, 双击,  打开菜单项 "设定为活动服务器" 的响应函数 一路走读代码, 遇到函数就 F12 跳进去.  最终看到 V2rayConfigHandler 模块的 GenerateClientConfig 函数. 然后我们需要在 outbound 函数里面 添加 生成 hy2 内容的逻辑. 抄一下原来的 Trojan 的流程框架, 把 hy2 相关的数据处理一下. 从配置文件上看, hy2 的参数, 要写在 streamSettings 里面. 所以我们还要继续修改 boundStreamSettings 函数. 跳进去一看, 对不同的 network, 相应地生成不同的 streamSettings. 也是照着其它的逻辑框架, 实现 hy2 的处理. 为了照样子抄呢, 还要新增一个结构 Hy2Settings 看一下其它的 Settings 定义在哪里, 鼠标点在 QuicSettings 上, F12 跳转到定义. 原来在 V2rayClientConfig 模块里. 我们也照样子抄一个结构. 这个结构是和配置文件的json结构相对应的. 对比观察一下. 进一步的, 在配置文件的json结构中, hy2Settings 是 streamSettings 的子元素. 那么在 C# 的数据结构定义中, 也要给 StreamSettings 类(结构) 添加一个 Hy2Settings 数据成员(子元素). 进一步的, 请你注意到, C# 中数据成员的命名, 要和 json 结构中的 key 名称完全一致. 这是和 C# 中将 数据结构 序列化为 Json 结构的规则有关. 跑起来看看. 报了一堆错. 似乎是启动命令有问题. 继续走读代码, 找到了...

v2rayN-HY2 [插播] network 字段忘处理了

图片
 前面我们在 设置 Hy2 窗口 的时候, 少处理了 "network": "hysteria2", 从 Vmess 窗口复制一个粘过来. 再编辑一下 可选集合 列表. 在 hy2 场景下, 应该只有 hysteria2 可选. 再补充一下 前几篇 处理过的功能. 1. 从剪贴板导入数据到窗口元素. 2. 按下 确定 按钮, 保存节点信息到主窗口.  3. 从主窗口双击节点, 打开窗口显示节点信息. ======== 开了一个分支, 本文的修改内容已提交. https://github.com/crazypeace/v2rayN-3.29-VLESS/tree/hy2 如果你有兴趣, 可以看到整个的开发过程. 本次修改记录 https://github.com/crazypeace/v2rayN-3.29-VLESS/commit/4e2ac78

The Hot3 in Last 30 Days

酒馆SillyTavern 玩英文角色卡 也能以中文输出 设置世界书Lorebooks

搭 Docker版 Sub-Store订阅转换专家 带 http-meta 实现 集合订阅 测延迟 排序 筛选 生成新订阅 定时任务上传Gist