V2Ray 新一代互联网代理工具

2015/10/01
关于V2Ray
V2Ray 是一个翻墙工具包,用于简化和复用其它翻墙工具,加速二次开发。
“V2”来源于 V2 火箭,Ray 即射线,意指新一代的翻墙工具。
作者:我只是一名普通的开发人员,已肉翻,本已不依赖这些翻墙工具,但 ShadowSock 和 GoAgent 被迫删除代码的事件实在太恶心,不得不做点什么了。
V2Ray 设计概要
目标
1;V2Ray 自身提供基础的翻墙功能,单独使用可满足日常需求;
2;V2Ray 可被用于二次开发,可为用户提供个性化的翻墙体验,从而也达到难以统一屏蔽之效果;
3;V2Ray 为模块化设计,模块之间互相独立。每个模块可单独使用,也可和其它模块搭配使用。
架构
术语
Point:一个 V2Ray 服务器称为 Point Server
Set:一组 Point Server,包含多个 Point 进程,由一个 Master 进程统一管理。
SuperSet:多机环境中的多个 Set
工作流程
Point 可接收来自用户或其它 Point 的请求,并将请求转发至配置中的下一个 Point(或 Set 或 SuperSet) 或目标网站,然后将所得到的应答回复给请求来源。 Point 采用白名单机制,只接受已认证帐号的请求。
通信协议
Point 之间默认使用自有 VMess 协议,或第三方自定义协议。
Point 和客户端之间可使用以下协议:
    HTTP Proxy
    SOCKS Proxy
    PPTP / L2TP / SSTP 等 VPN 隧道
    其它自定义协议
Point 和目标网站之间使用以下协议:
    HTTP / HTTPS
    UDP (DNS)
VMess
VMess 为 V2Ray 的原生协议,设计用于两个 Point 之间的通信。
Point
每个 Point 有一个 ID,运行时生成
每个 Point 可使用独立的配置文件,或从 Set 继承
一个 Point 监听主机上的一个特定端口(可配置),用于接收和发送数据
一个 Point 运行于一个独立的进程,可设定其使用的系统帐户
Set
TODO
SuperSet
TODO
Point 详细设计
一个 Point 包含五个部分:
配置文件处理:读取和解析配置文件
输入(Inbound):负责与客户端建立连接(如 TCP),接收客户端的消息
输出(Outbound):负责向客户端发送消息
配置文件
配置文件使用 JSON / ProtoBuf 兼容格式
编程语言
暂定为 golang。
V2Ray 简明教程
工作机制
你需要至少两个 Point Server(设为 A、B)才可以正常穿墙。以网页浏览为例,你的浏览器和 A 以 Socks 5 协议通信,B和目标网站之间以 HTTP 协议通信,A 和 B 之间使用 V2Ray 的自有协议 VMess 通信,如下图:

通常 Point A 运行在你自己的电脑,Point B 运行在一台海外的 VPS 中。
V2Ray核心设计概念:https://github.com/V2Ray/v2ray-core/blob/master/spec/design.md
下载地址:v2ray-core-master.zip
来源:http://www.ruooo.com/VPS/759.html

Related Posts