第五节 V2Ray

一、V2Ray 简介

V2Ray 是一个模块化的代理软件包。

(一)V2Ray 的定位

V2Ray 将自身定位为一个功能强大的平台,而非单纯的协议或软件,它除了自有的 Vmess 协议外还直接支持 Shadowsocks、Socks 等协议。它可以让使用者自行选择各种模式和组合,通过不同的设定来达到不同的代理效果,以此对抗变化着的 GFW。

参见:V2Ray 的模块化

(二)V2Ray 的优缺点

参见 V2Ray 白话文教程 - 前言

1. V2Ray 的优势:

(1)更完善的协议: V2Ray 使用了新的自行研发的 VMess 协议,改正了 Shadowsocks 一些已有的缺点,更难被墙检测到 (2)更强大的性能: 网络性能更好,具体数据可以看 V2Ray 官方博客 (3)更丰富的功能: 以下是部分 V2Ray 的功能 mKCP: KCP 协议在 V2Ray 上的实现,不必另行安装 kcptun 动态端口:动态改变通信的端口,对抗对长时间大流量端口的限速封锁 路由功能:可以随意设定指定数据包的流向,去广告、反跟踪都可以 传出代理:看名字可能不太好理解,其实差不多可以称之为多重代理。类似于 Tor 的代理 数据包伪装:类似于 Shadowsocks-rss 的混淆,另外对于 mKCP 的数据包也可伪装,伪装常见流量,令识别更困难 WebSocket 协议:可以 PaaS 平台搭建V2Ray,通过 WebSocket 代理。也可以通过它使用 CDN 中转,抗封锁效果更好 Mux:多路复用,进一步提高科学上网的并发性能

“VMess协议的特征是在目前常见协议中最弱的。即如果你认为VMess具有某个特征,那么在ss/ssr/其它协议中一定存在同样或更强的特征;反之则不然。” —— Project V 官方公告

“关于 TLS 混淆,V2Ray 用的是真 TLS,即完全符合 TLS 协议;Shadowsocks 的 obfs 和 ShadowsocksR 的 TLS 混淆用的均为假 TLS,即只模拟了部分 TLS 协议。真 TLS 的优势是服务器端防探测,第三方用任意的 TLS 数据包探测,V2Ray 都能做出合理的响应,而假TLS 则带有明显的特征。真 TLS 会有首次连接时进行一个两次通信(2-rtt)的握手,比起假 TLS 略慢,但之后的连接中,由于使用了缓存,握手不会有性能差异。” —— Project V 官方公告

2. V2Ray 的缺点

(1)配置复杂 (2)产业链不成熟

(三)Project V 官网与交流群

官网: https://www.v2ray.com/ 公告: https://t.me/v2msg 吹水: https://t.me/joinchat/AAAAAEIYaH-hjDDZS716jg (禁言) 使用: https://t.me/projectv2ray 开发: https://t.me/joinchat/DNcazUMxm77Jt0LQuwiGAQ 推特: https://twitter.com/projectv2ray

Telegram 讨论组规则见:https://www.v2ray.com/chapter_00/tg.html

(四)V2Ray 获取渠道

Github Release: github.com/v2ray/v2ray-core IPFS: /ipns/QmdtMuAhEUPFX9NQiGhRj2zhS1oEA76SXNDnZRHqivjMwR IPFS 分流: https://v2ray.com/download

(五)小结

V2Ray 可能是目前最具前景的翻墙手段,但它对于那些没有 Linux 基础或者 VPS 使用经验的入门者难度相对较高。如果你看完本节、Project V 官网和白话文教程后仍然一头雾水,建议先阅读 HyperApp 的相关教程,借助 HyperApp 部署 V2Ray。

HyperApp 是 iOS 平台上一个基于 SSH 和 Docker 的自动化部署工具,允许用户在图形化界面下将应用一键部署到 VSP 上,详见 HyperApp 用户文档:https://www.hyperapp.fun

注:Project V 与 V2Ray 的关系:V2Ray 升级到 3.0 后正式扩展为 Project V,除了 V2Ray 本身之外,Project V 包含所有 V2Ray 的周边产品,包括客户端、配置工具等。

二、如何使用 V2Ray

(一)服务器端

1. 购买 V2Ray 节点

经营 V2Ray 的服务商正在不断涌现,但目前的数量较为有限,产业规模尚不及 Shadowsocks及其衍生协议。以下 V2Ray 服务商信息引自 Project V 官网 - 一些推广 (最后一次访问于 2019 年 2 月 1 日):

BabyDriver 支持 V2Ray 的 VPN 服务。优惠码:bcb518 喵帕斯 V2Ray 小范围内测中 蓝岸 基于 V2Ray 的网络加速服务。优惠码:v2ra 多数派 基于V2RAY的全新的网络加速服 V2rayPro 基于 V2Ray 的网络加速服务。专属优惠码:v2ray.co vProxy 由 V2Ray 驱动的网络加速器。专属优惠码:v2ray.coo 栖息地 对内小众的 V2ray 优质网络加速服务。邀请码:V2RA NicoNode 支持 V2Ray 的网络加速改善服务。专属促销代码:V2RAYNO V2Net

2. 租用 VPS 自建 V2Ray

(1)VPS 简介 VPS 是 Virtual Private Server 的缩写,中文名称是虚拟专用服务器,指将一台服务器分区成多个虚拟专享服务器的服务。本文主要介绍将 VPS 用作代理服务器用于翻墙,此外 VPS 还具有搭建博客、私人云盘等诸多用途。

常见的 VPS 厂商有:GCP(Google Cloud Platform,提供为期一年、价值$300的免费试用)、AWS、Vultr、Linode、Bandwagon、DigtalOcean 等。

VPS 的选择和入门教程可参考:

Bandwagon 等 VPS 厂商现已支持使用支付宝付款,安全起见还是建议使用 PayPal 等不受国内直接监管的支付手段作为付款方式。

购买 VPS 后建议先测试能否在国内直接连接这台 VPS,为此你需要一个 SSH 客户端。如果你使用 Linux 或 macOS 操作系统,你可以直接使用系统自带的“终端”应用;如果你使用 Windows,你需要下载 SSH 客户端应用,常见的有 Xshell、PuTTY、KiTTY、MobaXterm、mRemoteNG、Bitvise SSH 客户端(更多参见:维基百科 - SSH客户端比较);在 iOS 设备上可以使用 SSH 客户端 Terminus 来操作 VPS。

以“终端”应用为例,先关闭 VPN 或 Shadowsocks 等代理工具,在“终端”中输入以下字符后回车:

ping 你的 VPS IP #例如 00.00.00.00 注:“#”后的内容是注释,不会作为命令代码运行,下同

如果能接收数据则证明能够直连,之后可按下“Control+C”来中止这一进程。如果不能直连则说明该 IP 可能已被 GFW 屏蔽,建议将其注销另租一台。

(2)常用 Linux 命令 ① 远程登录 Linux 主机 / VPS 远程登录和操作 VPS 同样需要用到 SSH 客户端应用。以“终端”为例,下同。 输入以下字符后回车:

ssh root@你的 VPS IP #例如 00.00.00.00 初次登陆可能需要在 (yes/no) 选项下输入“yes”,然后输入你的 VPS 登录密码(VPS 网页中获取),需要注意的是此时输入的密码在应用界面下并不可见,输入完毕后回车,如果密码无误即可成功登录。

② 退出登陆 输入“exit”后回车

③ 使用 cd 前往指定目录 输入 cd + 目录,例如: cd /etc/v2ray/ 需要退出 cd 时输入“cd”后回车即可。

④ 使用 vim 或 vi 修改配置文件 以 V2Ray 为例,输入 “vim config.json”进入 vim 界面。 vim 界面下不能直接编辑配置文件,但可以通过连击“D”键删除光标所在行。 如需修改或插入内容,需要依次按“esc”、“I”和“Enter”键进入可编辑的“Insert”模式(底部会出现 Insert 字样),之后你可以之后修改,或者将所有内容删除后粘贴已经在其他编辑器中写好的配置信息,完成后按“esc”键退出“Insert”模式。输入“:w”后回车以保存,输入“:q”回车退出,也可以输入“:wq”回车一步到位。

(3)如何部署 V2Ray 服务器端

如果你选择使用 HyperApp 搭建 V2Ray,请参考: HyperApp 用户手册 - 爱国软件 - V2Ray

如果在 Linux 下部署,请参考以下教程:

① 使用 SSH 登录 VPS,输入:

ssh root@00.00.00.00 #你的服务器 IP

② 修改时间 使用 Vmess 协议必须保证本地和服务器端的时间差不超过一分钟,因此需要修改 VPS 的系统时间:

rm -rf /etc/localtime #先删除默认的时区设置 ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime #替换上海作为默认

或者使用“date --set”: sudo date --set="2018-01-01 00:00:00”

查看时间: date -R

③ 使用 Linux 脚本安装 V2Ray(更新 v2ray-core 时同样使用此脚本) bash \<(curl -L -s https://install.direct/go.sh)

此部分请参考:Project V - 下载安装 运行 service v2ray start 来启动 V2Ray 进程,使用 service v2ray start|stop|status|reload|restart|force-reload 控制 V2Ray 的运行

④ 编辑配置文件 cd /etc/v2ray/ vim config.json 参考上文 vim 的用法编辑你的配置文件,输入“:wq”回车来保存和退出。

⑤ 重启 V2Ray 并查看是否正常运行 systemctl restart v2ray systemctl status v2ray

如果显示红色的 failed 表明你的配置有误,V2Ray 无法正常运营。V2Ray 本身提供了检查功能,输入: usr/bin/v2ray/v2ray -test -config /etc/v2ray/config.json 来检测 config.json 是否有误。

关于 V2Ray 的模式选择,可以参考上图。Vmess 裸奔的难度最低,可参考 Project V - 新手上路 。(事实上 Vmess 协议本身的强度已经足够了,如果担心 VPS 的 IP 被 GFW 屏蔽可以购买 CDN 加速服务隐藏真实 IP,具体方法请自行搜索 )

TCP + TLS 可以参考 白话文教程 - TLS 。使用 TLS 需要域名和 SSL 证书,域名可以从 Freenom 免费获取,或者从 Namecheap 购买廉价域名;SSL 证书可由 acme.sh、Caddy、Ngnix、certbot 等应用自动注册,详见 VINGA:免费获取个人专属顶级域名白话文教程 - TLS(购买域名后需要添加一个 A 记录指向 VPS 的 IP,之后若 ping 域名可以 ping 通且显示 VPS 的真实 IP 则表明域名已经解析成功)。WS+TLS+Web 可能是目前最好的模式,但难度也相对较高,新手可以借助 HyperApp 来辅助搭建。

关于 V2Ray 使用教程的选择,建议先看懂 Project V 官网和白话文教程,如有需要再搭配其他博客上的教程和配置模板。对于后者,编者建议认准同一份教程,因为不同作者采用的方法和使用配置文件之间存在差异,对新手而言同时参考多份教程可能会使你的思路越来越混乱。

如果在配置过程遇到问题,建议先自行搜索相关信息,在 Github 上查看 v2ray-core 已有的 Issue ,或者在 Telegram 群组 Project V (使用与反馈) 中搜索英文关键字查看聊天记录中的类似问题。如果问题仍未解决,可以在该群组中提问,或者参照模板在 Github 上提交 issue。

相关工具: V2Ray 配置生成器

其他教程:

YEARLINY | V2Ray完全使用教程

关于 V2Ray 的常见问题可以在私聊模式下向 Telegram bot Kiray (a V2Ray FQA bot by Kiri, username: @kiraybot) 提问,该 bot 目前收录了 36 个问题(最后一次访问于 2018 年 5 月 29 日),可以以 Q&A 的形式呈现答案。请勿在群组中使用该 bot,以免刷屏给其他成员造成困扰。

(二)客户端

V2Ray 客户端 macOS: V2RayXV2RayUV2RayCClashX iOS: KitsunebiKitsunebi Litei2RayShadowrocketPepiQuantumult Android: BifrostV (PlayStore)、 V2RayNG (PlayStore) 等 Windows: V2RayWV2RayNV2RayS

★ 参见:Project V - 神一样的工具 (最后一次访问于 2019 年 2 月 10 日)

iOS 客户端 Kitsunebi 和 i2Ray 均使用了 V2Ray Core 如果你使用 Kitsunebi,可以根据你对服务器端配置,参考 Kitsunebi 内置测试服务器的 TCP、WS、WSS、H2 和 KCP 五种模式的节点信息来填写添加。其他平台的图形化客户端的配置方法与之基本相同。

以 Project V 官网上“新手上路”教程为例,在客户端添加节点信息时,协议类型 (Type) 选择“Vmess”,地址 (Address) 填写自己 VPS 的 IP 或域名,端口 (Port) 填“10086” ,UUID 与服务器端保持一致,加密方式 (Security) 填“chacha20-poly1305”,传输协议 (Network) 选择“tcp”。

三、捐助支持 Project V

Project V 捐助支持

比特币 (BTC): 15dQnC9yvX6JJXaFkP9MiRYvJS3FvsqvKW 比特现金 (BCH): 1NNRgpWYD8UX1bkcokCEoD6HHpaw98onxa 以太坊 (ETH): 0x196b695ce3b44c4bd16fe43981bcc908a6a09c2e 莱特币 (LTC): LVdeH2HkCgGRs8ZEpan7fkAEEPbiJ4McoR 门罗币 (XMR): 48kA4NyLRCWQvB7U2A77G66Z25uWbyzmoZSYjxJfrMR1J4dRFW6fWFLDn3wirAqP8ySnR4rnvoXWxfkNFhrK5ZxY1WyBqKg EOS: 0x196b695ce3b44c4bd16fe43981bcc908a6a09c2e 嫩模币 (OMG): 0x196b695ce3b44c4bd16fe43981bcc908a6a09c2e 贡献你的 CPU