v2rayN-HY2 能正常使用
总功能列表在这篇分析里.
我们现在实现第 7 项 能正常使用
首先要在 v2rayN.exe 同目录下放一个支持 hy2 的 v2ray 内核. 写本文时, 最新版本 v5.21.0
下面, 开始处理代码.
一路走读代码, 遇到函数就 F12 跳进去.
最终看到 V2rayConfigHandler 模块的 GenerateClientConfig 函数.
然后我们需要在 outbound 函数里面 添加 生成 hy2 内容的逻辑.
跳进去一看, 对不同的 network, 相应地生成不同的 streamSettings.
也是照着其它的逻辑框架, 实现 hy2 的处理.
看一下其它的 Settings 定义在哪里, 鼠标点在 QuicSettings 上, F12 跳转到定义.
原来在 V2rayClientConfig 模块里.我们也照样子抄一个结构.
那么在 C# 的数据结构定义中, 也要给 StreamSettings 类(结构) 添加一个 Hy2Settings 数据成员(子元素).
进一步的, 请你注意到, C# 中数据成员的命名, 要和 json 结构中的 key 名称完全一致.
这是和 C# 中将 数据结构 序列化为 Json 结构的规则有关.
跑起来看看.
报了一堆错.
继续走读代码, 找到了 V2rayHandler 模块的 V2rayStart 函数.
可以看到 p.Start(); 就是启动 v2ray.exe 程序的地方. 我们在这里打个断点. 快捷键 F9
我们查看一下内存, 即将执行的命令到底是什么.
鼠标点在 p 变量上, Shift + F9 查看内存.
从代码上看, 前面一段, 对 StartInfo 结构的填充, 就是在设置运行的参数.
对应着内存数据一起分析,
D:\_work\v2rayN-3.29-VLESS\v2rayN\bin\Debug\v2ray.exe
按 v2ray v5.21.0 的启动语法来说, 这是有问题的.
我们去命令行实际操作一下就知道了.
在命令行中, 应该使用
在命令行中, 应该使用
v2ray.exe run -c config.json
的形式.
落实在代码上, 把参数设置进去.
========
开了一个分支, 本文的修改内容已提交.
如果你有兴趣, 可以看到整个的开发过程.
本次修改记录
评论
发表评论