主题
什么是 V2Ray?
V2Ray,是 Victoria Raymond 以及其社区团队开发的 Project V 下的一个工具。Project V 是一个工具集合,号称可以帮助其使用者打造专属的基础通信网络。Project V 的核心工具称为 V2Ray,其主要负责网络协议和功能的实现,与其它 Project V 通信。V2Ray 可以单独运行,也可以和其它工具配合,以提供简便的操作流程。开发过程主要使用 Go 语言,Core 采用 MIT 许可证并开放源代码。
在中国大陆,本工具广泛用于突破防火长城(GFW),以访问被封锁和屏蔽的内容。
运行原理
V2Ray 的运行原理与其他代理工具基本相同,使用特定的中转服务器完成数据传输。例如,用户无法直接访问 Google,YouTube 等网站,但代理服务器可以访问,且用户可以直接连接代理服务器,那么用户就可以通过特定软件连接代理服务器,然后由代理服务器获取网站内容并回传给用户,从而实现代理上网的效果。服务器和客户端软件会根据不同协议,要求用户提供一定的参数,如 UUID、密钥、加密方式等,双方一致后才能成功连接(VMess 协议能够自适应客户端采用的加密方式)。连接到服务器后,客户端会在本机构建一个本地 Socks5 代理(或 VPN、HTTP、透明代理等)。浏览网络时,客户端通过这个 Socks5(或其他形式)代理收集网络流量,然后再经混淆加密发送到服务器端,以防网络流量被识别和拦截,反之亦然。V2Ray 定位为一个平台,任何开发者都可以利用 V2Ray 提供的模块开发出新的代理软件。
主要特性
- 多入口多出口:一个 V2Ray 进程可并发支持多个入站和出站协议,每个协议可独立工作。
- 定制化路由:入站流量可按配置由不同地出口发出。轻松实现按区域或按域名分流,以达到最优的网络性能。
- 多协议支持:V2Ray 可同时开启多个协议支持,包括 Socks、HTTP、Shadowsocks、VMess、Trojan 和 VLESS 等。每个协议可单独设置传输载体,比如 TCP、mKCP 和 WebSocket 等。
- 隐蔽性:采用 VMess、VLESS 和 Trojan 协议的节点可以伪装成正常的网站(HTTPS),将其流量与正常的网页流量混淆,以避开第三方干扰。
- 反向代理:通用的反向代理支持,可实现内网穿透功能。
- 多平台支持:原生支持所有常见平台,如 Windows、macOS 和 Linux,并已有第三方支持移动平台。
历史事件
专利事件
北京理工大学教授罗森林和两名学生王帅鹏、潘丽敏,于 2019 年 3 月 25 日申请名为“基于长短期记忆网络的 V2ray 流量识别方法”的专利。2019 年 10 月 25 日,该专利的法律状态修改为“发明专利申请公布后的撤回”。
V2Ray 项目组表示,专利并不会保证方法的有效性,专利仅仅是保护方法本身。其次,该专利的描述存在一些问题:
- 专利中提到:“V2ray 服务端与客户端进行每次通信时需要预先交换密钥,因而每次通信较为靠前的数据包具有显著特征”。实际上,VMess 协议并不存在“预先交换密钥”这个步骤。即使将 V2Ray 与需要进行“预先交换密钥”的协议配合使用,那么进行“预先交换密钥”时的数据包也不会有 V2Ray 的数据特征,因为此时还没有开始发送有效数据,即使有特征也是配合使用的协议的特征。
- 专利中将 V2Ray 拼写成了 V2ray。
原作者失踪
2019 年 2 月,V2Ray 项目创始人 Victoria Raymond 突然消失,其 Twitter、Telegram 以及知乎停止更新。
2019 年 8 月 2 日,原作者 Victoria Raymond 的 Telegram 频道提示:“创建此频道的用户的帐户在过去 5 个月中处于非活动状态。如果它在接下来的 30 天内仍然不活动,那么该账户将自动销毁,并且这个频道将不再拥有创建者。”
原作者的 Github 账号依然保持更新直到 2019 年 11 月最后一次提交 commits。
衍生项目
Project X
2020 年 11 月,因为开源许可证等原因 XTLS 被 V2Ray 社区从 V2ray core 移除,VLESS 及 XTLS 的作者和支持者基于 V2Ray 另行组建了 Project X 组织,开发了基于 V2Ray 的衍生版本 Xray。该软件完全相容 V2Ray 的配置文件和传输协议,由于 Project X 社区非常活跃,大部分新版图形化用户端已支持 Xray。
V2Fly
由开源社区在原作者失踪后重组成立。
其于 2019 年 6 月 2 日表示:由于原开发者长期不上线,其他维护者没有完整权限,为了方便维护,我们创建了新的 organization:github.com/v2fly 原 organization 中的仓库:v2ray/v2ray-core 将会一直同步更新。
而实际上原仓库已停止同步更新,所有工作转移至 v2fly/v2ray-core 仓库下。
由 V2Ray 衍生的图形客户端
由于 V2Ray、Xray 项目本身开源,所以在 Github 等网站上有兼容或包含 V2Ray、Xray 核心而开发的图形化代理客户端,如
- Qv2ray – 使用 Qt/C++开发的兼容多种平台和多种协议的代理客户端
- SagerNet – 包含 v2ray-core 的 Android 代理客户端,并能通过添加插件支持 Brook、Hysteria、Naive、Mieru 等多种代理协议
- AnXray – 包含 xray-core 的 Android 代理客户端
- v2rayNG – 包含 v2ray-core 和 xray-core 的 Android 代理客户端
- v2rayN – 包含 v2ray-core 和 xray-core 的 Windows 代理客户端