此页面描述了v2rayN的基本运行能力,重点介绍了应用程序如何管理代理连接、处理配置以及与各种核心进程进行交互。有关应用程序更新的信息,请参阅更新系统,有关速度测试的详细信息,请参阅速度测试。
v2rayN的核心功能围绕着通过各种后端进程管理代理连接。该应用程序支持多种代理核心,包括Xray、sing-box和clash,每种核心都需要不同的配置方法。
来源:ServiceLib/Handler/CoreHandler.cs10-424 ServiceLib/Handler/ConfigHandler.cs6-1032 ServiceLib/Services/CoreConfig/CoreConfigV2rayService.cs6-212 ServiceLib/Services/CoreConfig/CoreConfigSingboxService.cs6-542
v2rayN的核心功能遵循以下通用流程
来源:ServiceLib/Handler/CoreHandler.cs66-100 ServiceLib/Services/CoreConfig/CoreConfigV2rayService.cs19-78
CoreHandler 类负责管理代理核心进程的生命周期。它负责启动、停止和监控这些进程,并将它们的状t态回传给UI。
CoreHandler 类执行以下关键功能:
对于Linux系统,当需要时(例如 TUN 模式),该处理程序包含运行具有提升权限的进程的特殊支持。
来源:ServiceLib/Handler/CoreHandler.cs20-64 ServiceLib/Handler/CoreHandler.cs154-175 ServiceLib/Handler/CoreHandler.cs183-196 ServiceLib/Handler/CoreHandler.cs326-379
ConfigHandler 负责管理应用程序的配置,包括服务器配置文件、路由规则和应用程序设置。
| 组件 | 描述 |
|---|---|
| 核心配置 | 代理核心的基本设置(日志级别等) |
| 入站规则 | 应用程序接收流量的方式(端口、协议) |
| 路由规则 | 将流量通过不同代理的规则 |
| 服务器配置文件 | 代理服务器的连接详细信息 |
| 系统设置 | 应用程序偏好设置和UI设置 |
ConfigHandler 提供了添加、删除和修改各种类型服务器配置文件的功能。它支持广泛的代理协议,包括:
每种协议都有自己的验证和配置要求,这些都由ConfigHandler类中的特定方法处理。
来源:ServiceLib/Handler/ConfigHandler.cs13-168 ServiceLib/Handler/ConfigHandler.cs214-923 ServiceLib/Global.cs164-186
v2rayN通过专门的服务为不同核心类型生成适当的配置文件
配置生成过程通常包括:
来源:ServiceLib/Services/CoreConfig/CoreConfigV2rayService.cs19-78 ServiceLib/Services/CoreConfig/CoreConfigSingboxService.cs19-79 ServiceLib/Services/CoreConfig/CoreConfigClashService.cs16-154
v2rayN支持广泛的代理协议,具有不同的功能和配置要求。
| 协议 | 描述 | 支持的核心类型 |
|---|---|---|
| VMess | V2Ray 主要协议,带加密 | V2Ray, Xray, sing-box |
| VLESS | V2Ray 的轻量级协议 | Xray, sing-box |
| Shadowsocks | 流行的加密协议 | V2Ray, Xray, sing-box, Clash |
| Trojan | 模拟HTTPS的协议 | Xray, sing-box, Clash |
| SOCKS | 标准的SOCKS5代理 | V2Ray, Xray, sing-box, Clash |
| HTTP | 标准的HTTP代理 | V2Ray, Xray, sing-box, Clash |
| Hysteria2 | 基于UDP的协议,针对不稳定的连接进行了优化 | sing-box |
| TUIC | 基于TCP的协议,针对可靠性进行了优化 | sing-box |
| WireGuard | 现代VPN协议 | sing-box |
ConfigHandler 包含用于添加每种协议类型的服务器的专用方法,处理它们独特的需求
AddVMessServer:处理VMess服务器配置AddVlessServer:处理VLESS服务器配置AddShadowsocksServer:处理Shadowsocks服务器配置AddTrojanServer:处理Trojan服务器配置AddHysteria2Server:处理Hysteria2服务器配置AddTuicServer:处理TUIC服务器配置AddWireguardServer:处理WireGuard服务器配置这些方法会验证协议特定设置,并将其正确格式化以用于核心配置。
来源:ServiceLib/Handler/ConfigHandler.cs252-784 ServiceLib/Global.cs164-186 ServiceLib/Global.cs187-242
v2rayN使用统一的ProfileItem模型来存储服务器信息,无论其协议如何,并根据协议类型利用不同的字段。
来源:ServiceLib/Handler/ConfigHandler.cs252-784 ServiceLib/Models/V2rayConfig.cs6-458
此图说明了服务器配置文件如何转换为运行中的代理进程
来源:ServiceLib/Handler/CoreHandler.cs66-100 ServiceLib/Handler/ConfigHandler.cs214-265
v2rayN根据服务器配置文件的配置类型和用户设置来决定使用哪个核心
核心选择逻辑实现在AppHandler.GetCoreType方法中,该方法根据配置类型和配置文件中设置的任何显式核心类型来确定合适的核心类型。
来源: ServiceLib/Handler/AppHandler.cs234-245 ServiceLib/Handler/CoreHandler.cs183-196
v2rayN 支持 Windows、macOS 和 Linux,针对不同平台进行了适应性调整,包括:
应用程序使用工具方法来确定平台并相应地调整行为。
来源: ServiceLib/Common/Utils.cs797-837 ServiceLib/Handler/CoreHandler.cs222-407
v2rayN 的核心功能围绕着
总之,这些组件共同使 v2rayN 能够为跨多个平台管理代理连接提供灵活而强大的界面。