v2rayN 中的核心组件是管理代理配置、控制核心进程以及提供应用程序基本功能的底层服务和处理程序。这些组件独立于用户界面运行,构成了应用程序的引擎。有关用户界面层的信息,请参阅 用户界面。
下图说明了主要核心组件及其关系
来源: ServiceLib/Handler/CoreHandler.cs ServiceLib/Handler/ConfigHandler.cs ServiceLib/Handler/AppHandler.cs ServiceLib/Services/CoreConfig/CoreConfigV2rayService.cs ServiceLib/Services/CoreConfig/CoreConfigSingboxService.cs ServiceLib/Services/CoreConfig/CoreConfigClashService.cs
AppHandler 是一个单例,充当应用程序的中央协调器,负责管理应用程序状态和初始化其他组件。
主要职责
来源: ServiceLib/Handler/AppHandler.cs1-247
ConfigHandler 管理 v2rayN 的所有配置方面,包括应用程序设置和服务器配置文件。
主要职责
来源: ServiceLib/Handler/ConfigHandler.cs1-1024
ConfigHandler 加载应用程序配置文件(guiNConfig.json)并管理存储在 SQLite 中的服务器配置文件。它提供了一套丰富的方法来操作服务器配置文件,包括对每种支持的协议类型的专用处理程序。
CoreHandler 负责管理代理核心进程。它控制这些进程的生命周期,包括启动、监控和停止它们。
主要职责
来源: ServiceLib/Handler/CoreHandler.cs1-409
CoreHandler 通过几个关键方法管理代理核心进程
Init(): 设置环境变量并准备核心二进制文件LoadCore(): 为选定的配置文件生成并加载配置CoreStop(): 终止正在运行的核心进程LoadCoreConfigSpeedtest(): 创建用于速度测试的特殊配置特定于平台的处理是 CoreHandler 的一个关键方面,它为 Windows、Linux 和 macOS 提供了特殊代码,特别是对于通常需要提升权限的 TUN 模式。
这些服务为不同的核心类型生成代理配置。每种服务都实现类似的功能,但根据其特定核心类型的要求进行定制
所有核心配置服务共享一个类似的模式
来源: ServiceLib/Services/CoreConfig/CoreConfigV2rayService.cs ServiceLib/Services/CoreConfig/CoreConfigSingboxService.cs ServiceLib/Services/CoreConfig/CoreConfigClashService.cs
为 V2Ray/Xray 核心生成配置,处理
主要方法包括
GenerateClientConfigContent(): 创建标准的客户端配置GenerateClientSpeedtestConfig(): 创建用于速度测试的配置GenerateClientMultipleLoadConfig(): 为多个服务器创建配置来源: ServiceLib/Services/CoreConfig/CoreConfigV2rayService.cs1-420
为 Sing-box 核心生成配置,处理
来源: ServiceLib/Services/CoreConfig/CoreConfigSingboxService.cs1-303
为 Clash 兼容核心生成配置,处理
来源: ServiceLib/Services/CoreConfig/CoreConfigClashService.cs1-262
核心组件使用几个关键数据模型来表示配置信息
V2rayConfig 类及其相关类代表 V2Ray/Xray 核心的配置结构
来源: ServiceLib/Models/V2rayConfig.cs1-458
Global 类提供了应用程序中使用的常量和共享资源
Utils 类提供了所有核心组件使用的基本实用方法
主要方法包括
GetPath()、GetConfigPath()、GetBinPath(): 管理文件路径IsWindows()、IsLinux()、IsOSX(): 平台检测Base64Encode()、Base64Decode(): 编码工具GetFreePort(): 查找可用网络端口IsDomain()、IsIPv6(): 网络验证来源: ServiceLib/Common/Utils.cs1-866
以下图表说明了核心组件如何协同工作以管理代理进程的生命周期
来源: ServiceLib/Handler/CoreHandler.cs ServiceLib/Handler/CoreHandler.cs182-237
v2rayN 的核心组件协同工作,提供应用程序的基本功能。AppHandler 初始化和协调系统,ConfigHandler 管理配置数据,CoreHandler 控制代理进程,Core Configuration Services 为不同的代理类型生成必要的配置文件。
这些组件为应用程序提供了坚实的基础,处理配置管理、进程控制和平台特定行为等复杂操作,同时向用户界面层呈现一致的接口。