V2Fly.orgV2Fly.org
快速开始
配置文档
配置文档 (v5, WIP)
工具列表
开发手册
新白话文指南
  • 简体中文
  • English
GitHub
快速开始
配置文档
配置文档 (v5, WIP)
工具列表
开发手册
新白话文指南
  • 简体中文
  • English
GitHub
  • 开发手册

    • 第一步:学会编译
    • 第二步:了解架构
      • 目标
      • 架构
      • 应用层
      • 代理层
        • 入站代理
        • 出站代理
      • 传输层
    • 第三步:开始开发
    • Release Archive
    • Release Signing
  • 协议细节

    • VMess 协议
    • mKCP 协议
    • Mux.Cool 协议

第二步:了解架构

本文描述了 V2Ray 内核(v2ray-core)的设计思路。

目标

  • V2Ray 内核提供了一个平台,支持必要的网络代理功能,在其之上可以进行二次开发,以提供更好的用户体验;
  • 以跨平台为首要原则,以减少二次开发的成本;

架构

Architecture

内核分为三层:应用层、代理层和传输层。每一层内包含数个模块,模块间互相独立,同类型的模块可无缝替换。

应用层

应用层包含一些代理层中常用的功能,这些功能被抽象出来,以便在不同的代理模块中复用。应用层的模块应为纯软件实现,与硬件或平台相关的技术无关。

重要模块列表:

  • Dispatcher: 用于把入站代理所接收到的数据,传送给出站代理;
  • Router: 内置路由,详见 路由配置;
  • DNS: 内置的 DNS 缓存;
  • Proxy Manager: 入站代理的管理器;

代理层

代理层分为两部分:入站代理(Inbound Proxy)和出站代理(Outbound Proxy)。两部分相互独立,入站代理不依赖于某个特定的出站代理,反之亦然。

入站代理

  • 实现 proxy.Inbound 接口;

出站代理

  • 实现 proxy.Outbound 接口;

传输层

传输层提供一些网络数据传输相关的工具模块。

在 GitHub 上编辑此页
上次更新:
贡献者: kslr, QwQ, Kslr, Richard Chen, RPRX, Kid, KevinZonda, alicete
Prev
第一步:学会编译
Next
第三步:开始开发