V2Ray
V2Ray(简称V2),是Victoria Raymond开发的 Project V 下的一个工具。Project V 是一个工具集合,号称可以帮助其使用者打造专属的基础通信网络。Project V 的核心工具称为V2Ray,其主要负责网络协议和功能的实现,与其它 Project V 通信。V2Ray 可以单独运行,也可以和其它工具配合,以提供简便的操作流程。开发过程主要使用Go语言,Core采用MIT许可协议授权并开放源代码。
![]() | |
開發者 | Victoria Raymond(原开发者)[1],V2Fly 社区(现维护者) |
---|---|
初始版本 | 0.1 (2015年9月18日 | )
穩定版本 | 4.34.0 (2021年1月4日 ) |
源代码库 | github github |
编程语言 | Go |
操作系统 | 跨平台(基于客户端和远程服务器) |
类型 | 网络工具 |
许可协议 | MIT |
网站 | https://v2ray.com https://www.v2fly.org |
在中国大陆,本工具广泛用于突破防火长城(GFW),以访问被封锁和屏蔽的内容。
运行原理
V2Ray的运行原理与其他代理工具[2]基本相同,使用特定的中转服务器完成数据传输。例如,用户无法直接访问Google,YouTube等网站,但代理服务器可以访问,且用户可以直接连接代理服务器,那么用户就可以通过特定软件连接代理服务器,然后由代理服务器获取网站内容并回传给用户,从而实现代理上网的效果。服务器和客户端软件会要求提供密码和加密方式,双方一致后才能成功连接。连接到服务器后,客户端会在本机构建一个本地Socks5代理(或VPN、透明代理等)。浏览网络时,客户端通过这个Socks5(或其他形式)代理收集网络流量,然后再经混淆加密发送到服务器端,以防网络流量被识别和拦截,反之亦然。其他代理工具定位只是一个简单的代理工具,而 V2Ray 定位为一个平台,任何开发者都可以利用 V2Ray 提供的模块开发出新的代理软件。
主要特性
多入口多出口:一个 V2Ray 进程可并发支持多个入站和出站协议,每个协议可独立工作。
定制化路由:入站流量可按配置由不同地出口发出。轻松实现按区域或按域名分流,以达到最优的网络性能。
多协议支持:V2Ray 可同时开启多个协议支持,包括 Socks、HTTP、Shadowsocks 和 VMess 等。每个协议可单独设置传输载体,比如 TCP、mKCP 和 WebSocket 等。
隐蔽性:V2Ray 的节点可以伪装成正常的网站(HTTPS),将其流量与正常的网页流量混淆,以避开第三方干扰。
反向代理:通用的反向代理支持,可实现内网穿透功能。
多平台支持:原生支持所有常见平台,如 Windows、macOS 和 Linux,并已有第三方支持移动平台。
历史事件
专利事件
北京理工大學教授羅森林和兩名學生王帥鵬、潘麗敏,于2019年3月25日申請名為「基於長短期記憶網絡的V2ray流量識別方法」的專利。2019年10月25日,该专利的法律状态修改为“发明专利申请公布后的撤回”。[3]
V2Ray项目组表示,专利并不会保证方法的有效性,专利仅仅是保护方法本身。其次,该专利的描述存在一些问题。专利中提到:「V2ray服务端与客户端进行每次通信时需要预先交换密钥,因而每次通信较为靠前的数据包具有显著特征」。实际上,VMess 协议并不存在「预先交换密钥」这个步骤。即使将 V2Ray 与需要进行「预先交换密钥」的协议配合使用,那么进行「预先交换密钥」时的数据包也不会有 V2Ray 的数据特征,因为此时还没有开始发送有效数据,即使有特征也是配合使用的协议的特征。2. 专利中将 V2Ray 拼写成了 V2ray。[4]
原作者失踪
2019年2月,V2Ray 项目创始人Victoria Raymond突然消失,其Twitter[5]、Telegram[6]以及知乎[7]全部停止更新。
随后开源社区进行重组成立 V2Fly 社区,并于2019年6月2日表示:“由于原开发者长期不上线,其他维护者没有完整权限。为了方便维护,我们创建了新的organization:https://github.com/v2fly 原organization中的仓库:v2ray/v2ray-core将会一直同步更新。”[8]
2019年8月2日,原作者Victoria Raymond的Telegram 频道提示:“创建此频道的用户的帐户在过去5个月中处于非活动状态。如果它在接下来的30天内仍然不活动,那么该账户将自动销毁,并且这个频道将不再拥有创建者。”[9]
但是,原作者的Github账号依然保持更新直到2019年11月最后一次提交commits。
衍生项目
Project X
開發者 | Project X 社区(由rprx决定创立)[10] |
---|---|
初始版本 | 1.0 (2020年11月15日 | )
穩定版本 | 1.2.4 (2021年2月1日 ) |
源代码库 | github |
编程语言 | Go |
操作系统 | 跨平台(基于客户端和远程服务器) |
类型 | 网络工具 |
许可协议 | Mozilla公共许可证 2.0 |
网站 | https://xtls.github.io |
2020年11月,因为开源许可证等原因XTLS被V2Ray社区从V2ray core移除,VLESS及XTLS的作者和支持者基于V2Ray另行组建了Project X 组织,开发了基于V2Ray的Xray[11]。该软件完全兼容V2Ray的配置文件和传输协议,由于Project X社区非常活跃,有些基于V2Ray的图形客户端所使用的内核便由V2Ray-Core改为Xray-Core。
参考文献
- . GitHub (英语).
- . [2020-08-29]. (原始内容存档于2020-09-11).
- . www.zhangqiaokeyan.com (中文).
- . Telegram.
- . Twitter.
- . Telegram.
- . www.zhihu.com. [2020-12-22].
- . Telegram.
- . Telegram.
- . GitHub (中文(中国大陆)).
- tlanyan. . tlanyan. [2021-02-15].