博文

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 结构的规则有关. 跑起来看看. 报了一堆错. 似乎是启动命令有问题. 继续走读代码, 找到了 V2rayHandler 模块的 V2rayStart 函数. 可以看到 p.Start(); 就是启动 v2ray.exe 程序的地方

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

v2rayN-HY2 粘贴分享链接 将节点信息保存到主窗口

图片
总功能列表在 这篇分析 里. 我们现在实现第 4 项 粘贴分享链接 将节点信息保存到主窗口 打开主窗口 .cs 文件的设计器 找到菜单项, 双击, 打开菜单项的响应函数 一路走读代码,  F12 跳转, 到了 AppConfigHandler 模块的 AddBatchServers 函数 可以看到函数里, 对各种协议都有处理. 那么, 当然的, 我们要把 hy2 的处理加进去. 刚好, 利用到前几篇写好的 AddHysteria2Server 函数 跑起来测试一下, 顺便测试一下 从主窗口双击节点, 打开窗口显示节点信息. 都正常. 进一步的, 测试一下关闭程序后,  v2rayN 软件配置文件 有没有保存节点信息. v2rayN 软件配置文件 文件名 是 guiNConfig.json 位置是和 v2rayN.exe 执行文件在同一目录. 我们用的是 Debug 方式编译的 所以生成的 v2rayN.exe 的位置是在  v2rayN-3.29-VLESS\v2rayN\bin\Debug 如果你搞不清楚, 可以用 everything.exe 全局查找一下. 看起来数据都好好的, 不错啊. 启动程序后, 测试节点信息的加载, 也正常的. 看来, 功能项 5 6 我们什么都没干, 就是正常的了. 5. 保存节点信息到 v2rayN 软件配置文件.  6. 启动程序时, 从 v2rayN 软件配置文件 加载 节点信息. ======== 开了一个分支, 本文的修改内容已提交. https://github.com/crazypeace/v2rayN-3.29-VLESS/tree/hy2 如果你有兴趣, 可以看到整个的开发过程. 本次修改记录 https://github.com/crazypeace/v2rayN-3.29-VLESS/commit/9357ef6

v2rayN-HY2 保存节点信息到主窗口

图片
总功能列表在 这篇分析 里. 我们现在实现第 2 项 保存节点信息到主窗口 打开窗口设计器, 双击 确定 按钮, 打开 点击事件 响应函数 走读代码. 看到这里的 AddShadowsocksServer 函数 调用 我们这里可是 Hy2 的功能啊. 所以要模仿 AddShadowsocksServer 函数, 写一个 AddHysteria2Server 函数. 在 AddShadowsocksServer 上面按 F12 跳转到实现, 于是跳转到了 AppConfigHandler 模块.  把 AddShadowsocksServer 整个复制, 粘贴一份克隆. 再把函数名改为 AddHysteria2Server, 然后把内容稍微修改一下.  前面几篇的修改过程中, 对 hy2 节点的关键信息还有印象吗? 在此函数中都要处理到. 跑起来试试.  不错哦, 好像 第 3 项功能 从主窗口双击节点, 打开窗口显示节点信息 也刚好没问题. ======== 开了一个分支, 本文的修改内容已提交. https://github.com/crazypeace/v2rayN-3.29-VLESS/tree/hy2 如果你有兴趣, 可以看到整个的开发过程. 本次修改记录 https://github.com/crazypeace/v2rayN-3.29-VLESS/commit/31e7acc

v2rayN-HY2 从剪贴板导入数据到窗口元素

图片
在 上一步 , 我们有了一个元素符合要求的窗口, 但是还只是个"样子", 没有实际上的正确的功能. 我梳理了一下, 有这么几个功能流程要实现: 1. 从剪贴板导入数据到窗口元素. 2. 按下 确定 按钮, 保存节点信息到主窗口.  3. 从主窗口双击节点, 打开窗口显示节点信息. 4. Ctrl+V 粘贴分享链接, 将节点信息保存到主程序. 5. 保存节点信息到 v2rayN 软件配置文件.  6. 启动程序时, 从 v2rayN 软件配置文件 加载 节点信息. 7. 能正常使用 8. Ctrl+C 导出分享链接至剪贴板 显示分享二维码 9. Ctrl+R 测速. 我们先来实现 第 1 项 从剪贴板导入数据到窗口元素

v2rayN-HY2 完善 添加Hy2服务器 窗口

图片
在 上一步 , 我们已经添加了一个新的窗口.  跑起来看一下, 和实际需要的参数还是有差别的. 所以, 我们需要对窗口元素作以下调整: 1) 窗口上的"加密方式"元素 原本是 Shadowsocks的, 不符合要求, 删掉. 2) 从 Vmess 窗口 把 TLS 和 allowInsecure 元素复制过来, 调整一下位置. 接下来要做的, 就是在现有的逻辑流程中, 去掉不再使用的 "加密方式"元素 的数据处理, 并加上 TLS 和 allowInsecure 元素 的数据处理. 这些处理可以参考其它协议的窗口, 比如说, Vmess 窗口. 我的具体作法就是, 把 Vmess 窗口的 .cs 文件打开. 在里面搜索 cmbStreamSecurity 和 cmbAllowInsecure 看看是怎么处理的, 在哪个函数里处理的. 然后再把那几行代码搬到 Hy2 窗口的 .cs 文件里. 到目前为止, 我们还什么实质功能都没实现. 慢慢来. ======== 开了一个分支, 本文的修改内容已提交. https://github.com/crazypeace/v2rayN-3.29-VLESS/tree/hy2 如果你有兴趣, 可以看到整个的开发过程. 本次修改记录 https://github.com/crazypeace/v2rayN-3.29-VLESS/commit/bfe7191

The Hot3 in Last 30 Days

RackNerd VPS搭V2Ray WSS梯子 年付 $10.98 1G端口 3T流量 17G存储 1GB内存