V2Ray 简介

V2Ray 简介

V2Ray 是什么?

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

V2Ray 支持的代理协议

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

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

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

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

本文同时也发表于 Medium

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

  1. 目前有:Windows、macOS、Linux、openBSD,还有一个我完全不知道是什么的 dragonfly ↩︎
  2. 这里只说与翻墙有关的,其它协议(比如用于服务器内部数据转发的协议)就不提及了,下面对传输层配置的介绍也是如此。 ↩︎
  3. Telegram 是目前比较火的一款即时聊天软件。 ↩︎
  4. 不明白的朋友可以看看我的“浅谈vpn、vps、Proxy以及shadowsocks之间的联系和区别”↩︎
  5. 即配置过于复杂。 ↩︎

Comments

Popular posts from this blog

浅谈vpn、vps、Proxy以及shadowsocks之间的联系和区别

自建shadowsocks基础知识