V2Ray 简介


V2Ray 是什么?

Thomas Xu
Thomas Xu
Dec 28, 2018 · 6 min read

下面是我直接从 V2Ray官网 摘下来的一段介绍:

Project V 是一个工具集合,它可以帮助你打造专属的基础通信网络。Project V 的核心工具称为 V2Ray,其主要负责网络协议和功能的实现,与其它 Project V 通信。V2Ray 可以单独运行,也可以和其它工具配合,以提供简便的操作流程。

由于大家更加熟悉 Shadowsocks 和 VPN,所以很多人可能会想当然地将 V2Ray 看作一个特定的翻墙协议或用于实现该协议的翻墙软件。但正如上面所说,V2Ray 实际上是一个融合了各种翻墙协议的集成性软件,其中只有 VMess 协议是 V2Ray 社区原创的翻墙协议。

那上面那段话的 Project V 是什么呢?V2Ray 最早就这一个名字,维护 V2Ray 的社区叫 V2Ray 社区,V2Ray社区发布的程序软件也都可以用 V2Ray 泛指。后来,V2Ray 规模越来越大,就成立一个 Project V 项目。现在,我们称呼维护 V2Ray 的社区为 Project V 社区 更合适,不过这个也不用分的很清。

Project V 包含了与 V2Ray 有关的全部,除了 V2Ray 自己,所有相关的软件、工具、新协议都是 Project V 的一部分。这里的“相关软件”主要指:1、V2Ray 的一些辅助工具,比如用于生成证书和校验配置文件的工具。2、基于 V2Ray 开发的移植到其它平台(Windows、macOS、iOS 等等)的实现,特别是那些带图形界面的。

目前,V2Ray 这个名字严格上只代指 V2Ray 内核。那么,这个内核又是指什么呢?很简单,就是你在 GitHub 上下载的那些玩意儿。这些是 V2Ray 的预编译版本,你也可以下载代码自己编译,也是 V2Ray 内核。

Project V 社区在 GitHub 上非常贴心的准备了多个操作平台的预编译程序。不过这些都是命令行程序(要不然咋能叫 内核 呢),虽然可以直接使用,但用起来很不友好、很麻烦,更何况 V2Ray 的配置文件写起来特别烦,所以大家用的一般都是带图形界面的第三方 V2Ray 客户端。比如 macOS 平台的 V2RayX。V2RayX 完全是基于 V2Ray 内核来的。事实上,V2RayX 本身就是一个壳,帮助用户图形化地生成配置文件并运行 V2Ray 内核,当然 V2RayX 是有配置系统代理的功能的。

V2Ray 支持的代理协议

截止到2018年12月,V2Ray支持以下协议:

  • 传统的代理协议:HTTP 和 SOCKS。
  • MTProto:Telegram 的开发团队制作的一款协议,作为 Telegram 的专用代理协议。
  • Shadowsocks:这个无需多言。但要注意的是,V2Ray 不支持 ShadowsocksR。
  • VMess:V2Ray 独创的一款翻墙协议,据说比 Shadowsocks 更安全。有些机场声称支持 V2Ray,一般就是指支持 VMess。

细心的朋友可能会发现一个问题,我上面“传统的代理协议”那一栏怎么只有 HTTP 和 SOCKS,没有 HTTPS 和 SOCKS over TLS。这两种协议虽然不常用但却很重要,V2Ray 既然是一个融合了各种翻墙协议的集成性软件,没理由不支持。毕竟,单纯的 HTTP 和 SOCKS 是没法用来翻墙的,只能作为本地代理用用,真要拿来翻墙,HTTPS 和 SOCKS over TLS 才行。

莫急,上面这些代理协议是从应用层角度上讲的,V2Ray 强大的一点在于,它在传输层上也可以高度自定义。

同样是截止到2018年12月,V2Ray 可选的传输层配置有:用于优化网络质量的 kcp、QUIC 和 TCP Fast Open;用于伪装的 WebSocket;HTTP/2 传输;以及 TLS 加密。

不仅是 HTTP 和 SOCKS 可以在传输层配置 TLS 使其变成 HTTPS 和 SOCKS over TLS 协议,MTProto、Shadowsocks 和 VMess 也都可以通过传输层的配置包一层 TLS 在它们外面进行加密(并伪装成 TLS 流量)。HTTP 和 SOCKS 不必说,TLS 肯定是要的,VMess 裹 TLS 层也是常见的做法,但应该没人会在 Shadowsocks 外面再使用 TLS 加密。

V2Ray 客户端推荐

V2Ray 内核就是可以直接拿来用的,但用起来很麻烦,配置文件得自己写,系统代理得自己配,除了个别追求 V2Ray 功能极致的 Power User,应该很少有人拿 V2Ray 内核当客户端用,所以我们主要介绍带图形界面的 V2Ray 客户端。对了,特别说明,教程具有时效性,你看到这篇文章的时候,有些东西可能已经不太一样了。

iOS 端

Shadowrocket 和 Quantumult

不用我多介绍,大家应该都对这两款软件非常熟悉了。除了 Shadowsocks(R) 协议,它们也都支持 VMess 协议,所以也能算 V2Ray 客户端,但它们对 V2Ray 的支持都很有限。

Kitsunebi

引用下 V2Ray 官网对它的介绍:

Kitsunebi 是一个基于 V2Ray 核心的 iOS 应用。它可以创建基于 VMess 或者 Shadowsocks 的 VPN 连接。Kitsunebi 支持导入和导出与 V2Ray 兼容的 JSON 配置。

由于使用 V2Ray 核心,Kitsunebi 几乎支持 V2Ray 的所有功能,比如 Mux 和 mKCP。

Kitsunebi 和 Shadowrocket、Quantumult 一样都是收费软件。

Windows 端

Windows 端支持 V2Ray 的客户端可就多了,毕竟 Windows 上开发一个图形界面相对容易,但用心做的、好用的很少。我用过的只有一个,也只推荐这一个,即 Clash for Windows。

Clash for Windows 同时也支持 Shadowsocks(不支持 ShadowsocksR),它的 Github 主页在这里,教程看这里

Clash for Windows 对 V2Ray 的支持有限,和 Shadowrocket、Quantumult 差不多,但 Clash for Windows 也许是 Windows 平台最为美观易用甚至能和 Surge 媲美的一款代理客户端了。

macOS 端

V2RayX

这个我上面提过,就不赘述了。

V2rayU

除了 VMess,它还支持 Shadowsocks。

Android 端

抱歉,我没有用过安卓机,就不瞎推荐了,大家可以看看 V2Ray 官网上的推荐

V2Ray 服务端的搭建

V2Ray 服务端可没有五花八门的带图形界面的软件可以用,只有 原版的 V2Ray 可用,必须学会自己写配置文件。

V2Ray 配置文件的教程主要有两个。

优点是最新、最详细。V2Ray 社区对这个教程更新得很勤快,基本不用担心时效性的问题。

缺点是看起来比较累。而且,它的详细全面仅是指与 V2Ray 有关的内容,但对于小白来说,麻烦的远不止折腾的软件本身。

由 V2Ray 热心用户维护的第三方 V2Ray 教程,虽然没有官方教程那样全面、时效,但胜在相对简单易懂。

总结

实话说,仅从翻墙的角度看,V2Ray 并没有什么明显的优势,相反,劣势倒很显眼。但正如 Surge 从不称自己是“翻墙工具”而是“网络调试工具”,V2Ray 也不应简单地通过它实现翻墙的能力来判断它的价值。V2Ray 是一款网络工具,它可以实现多种网络流量的接收、过滤、变换和转发,通过 V2Ray,你只要操纵一个几KB的文本文件,就可以随心所欲的让网络流量伪装成你希望的样子,按照你喜欢的规则,流往你指定的地方,这才是 V2Ray 的价值所在。

原创内容,转载时请注明出处。

Thomas Xu

Written by

Thomas Xu

Digital Refugee…

Welcome to a place where words matter. On Medium, smart voices and original ideas take center stage - with no ads in sight. Watch
Follow all the topics you care about, and we’ll deliver the best stories for you to your homepage and inbox. Explore
Get unlimited access to the best stories on Medium — and support writers while you’re at it. Just $5/month. Upgrade