划重点
v2rayN 是一款代理客户端,最早为 Windows 写,后来也有了 macOS、Linux 版本。名字里的 V2Ray 是它起家时依托的项目;如今它默认装的是从 V2Ray 分出来的 Xray 内核,也能换用 sing-box。v2rayNG 是同一位作者写的安卓客户端。分层看:V2Ray、Xray 是干活的内核,VMess、VLESS 这些是内核实现的协议,v2rayN、v2rayNG 是套在内核外面的界面,本身不带任何节点。
这一讲替你拆开一串长得很像的名字,先从 v2rayN 是什么说起。它是一款代理客户端,也就是装在电脑上、负责读订阅和转发流量的那个软件。它最早为 Windows 写,后来也出了 macOS、Linux 版本。名字里的 V2Ray,是它起家时依托的开源项目;如今它默认装的是从 V2Ray 分出来的 Xray 内核,还能换用 sing-box。同一位作者写的安卓客户端,叫 v2rayNG。
几个名字长得像,层级却不同:V2Ray 和 Xray 是干活的内核,VMess、VLESS 是内核实现的协议,v2rayN、v2rayNG 是外面那层界面。下面把这几层拆开,讲清它们的关系,再说明为什么搜 v2ray 的人最后都绕不开一条订阅。
v2ray 是项目,v2rayN 是客户端:先把名字分开
V2Ray 是一个开源项目,2015 年前后出现,正式名字叫 Project V。它的核心是一个命令行程序,也就是常说的内核:支持多种代理协议、多种传输方式,还能按规则分流。原作者在 2019 年前后不再露面,社区以 v2fly 的名义接着维护。
Xray 是 2020 年底从 V2Ray 分出来的项目。主导开发的正是 VLESS 的提出者,XTLS、Vision、Reality 这些改进都是先在 Xray 里出现的。今天多数基于 V2Ray 一系的客户端,默认装的已经是 Xray。
v2rayN 是界面。它自己不实现协议,而是调用内核:你在界面里选节点、点开关,它替你生成配置、启动内核。v2rayNG 是同一作者写的安卓版,道理一样,里面跑的也是 Xray 内核。
| 名字 | 是什么 | 跑在哪 | 带不带节点 |
|---|---|---|---|
| V2Ray | 开源项目和内核,社区版叫 v2fly | 电脑、服务器 | 不带 |
| Xray | 从 V2Ray 分出的内核 | 电脑、服务器,也被客户端捆在里面 | 不带 |
| VMess、VLESS | 内核实现的代理协议 | 客户端和节点两头 | 协议本身谈不上带不带 |
| v2rayN | 图形界面的客户端 | Windows 起家,后来有 macOS、Linux 版 | 不带 |
| v2rayNG | 同一作者的安卓客户端 | 安卓 | 不带 |
最后一列全是「不带」,这一点常被误会:有人以为 V2Ray 是一家卖线路的公司,或者以为装好 v2rayN 就能直接打开境外网站;其实这几个名字背后都是开源软件,没有哪一个附送服务器。
划重点:V2Ray、Xray 是内核,VMess、VLESS 是协议,v2rayN、v2rayNG 是界面;三层叠在一起,也凑不出一个节点。
三者的关系,排成上下几层就清楚了
从下往上看,一层托着一层:
订阅 机场给的一条链接,里面是几十个节点
↓ 被读取
界面 v2rayN(电脑) v2rayNG(安卓)
↓ 调用
内核 Xray(默认) sing-box(可换) V2Ray(老项目)
↓ 实现
协议 VMess VLESS Trojan Shadowsocks …
界面换了,内核可以不变;内核升级了,界面也能不动。这就是为什么同一个 v2rayN,有时候读得了某种新节点、有时候读不了:看的不是界面的名字,是它里面捆的内核版本。内核这一层的来龙去脉,以及 Xray 和 mihomo、sing-box 三条线各自的位置,mihomo 是什么那一讲单独梳理过。
vmess 是 V2Ray 的老协议,名字为什么一直跟着它
VMess 是 V2Ray 最早的主力协议,自带加密,用 UUID 认证,还要求设备时间和服务器大致一致。很长一段时间里,「V2Ray 节点」几乎就等于 VMess 节点,订阅里那串以 vmess:// 开头、后面跟着一大段 Base64 的链接,就是它。那段 Base64 解开后是一小段 JSON,记着地址、端口、UUID 和传输方式,所以 VMess 链接看上去比别的协议长得多。
后来 VLESS 出现,去掉了重复的加密,机场的新节点逐渐转向 VLESS,VMess 慢慢退到兼容老设备的位置。VMess 自己也换过一次认证方式:早年链接里有一项 aid(额外 ID),不为 0 的是旧式认证,2022 年起主流内核改用新的认证方式,aid 不为 0 的老节点在新内核上大多已经连不上,见到时可以问机场要新的。两者的具体差别,在 VLESS 是什么里列过。
v2rayN、v2rayNG 的名字也是同样的情形:它们诞生在 V2Ray 的年代,后来内核换成了 Xray,名字却留了下来。名字里带 v2ray,不代表它只能读 V2Ray 时代的协议;反过来,一个客户端名字里没有 v2ray,照样可能读得了 VMess 节点。
V2Ray 留下的不只是协议:传输方式和分流规则
V2Ray 这个项目对后来的影响,远不止 VMess 一个协议。它把一个代理程序拆成了几块可以自由拼装的部分,后来的内核几乎都沿用了这种思路:
- 协议和传输分开。 协议管认人和转发,传输管数据在路上怎么走:TCP、WebSocket、gRPC,还有它自己设计的 mKCP。同一个协议换个传输方式,就能放到 CDN 后面,或者适应丢包严重的线路。
- 入站和出站分开。 客户端这一侧的本机代理端口是入站,通往各个节点的连接是出站,中间由路由模块决定每条连接交给哪个出站。
- 按规则分流。 V2Ray 很早就支持按域名、按 IP 归属地分流,配套的域名列表和 IP 数据文件由社区长期维护,写成 geosite、geoip 的规则就出自 V2Ray。今天的 Xray 原样继承了这套写法,mihomo 也支持 GEOSITE 规则,sing-box 则改成了自己的规则集格式。
所以你在别的客户端里见到「国内直连、境外走代理」的那几条规则,追根溯源,不少都能找到 V2Ray 的影子。
vpn 和 v2ray 的区别,落在搬运的方式上
搜「vpn和v2ray的区别」的人,多半想知道两者在原理上差在哪。简单说,差在搬运单位:传统 VPN 在设备上建一条隧道,把整个数据包装进去送走;V2Ray、Xray 这类内核做的是代理,接住一条条连接,读出目的地址,再用 VMess、VLESS 这类协议转发出去。正因为按连接处理,它才能按域名分流:国内的网站留在本地,境外的交给节点。
两种方式在加密、换出口这两件事上是一样的,差的是一个搬包、一个搬连接,以及外观上要不要像普通网页访问。完整的拆解在 VPN 原理里。至于 v2rayNG 在手机上为什么也会亮起 VPN 图标,那是借了系统的虚拟网卡接口来接管流量,TUN 模式那一讲说了其中的道理。
为什么搜 v2ray 的人,最后都要一条订阅
装好 v2rayN,打开以后是一个空列表。原因前面已经说了:界面不带节点,内核也不带节点,它们只负责「怎么连」,不负责「连到哪」。节点只能从两处来:
- 自己搭。 租一台境外服务器,装上 Xray 一类的服务端,再把连接参数填进客户端。好处是独享,麻烦在服务器、域名、被封后换地址都要自己操心,自建还是买栏目把这笔账拆开算了。
- 买一份订阅。 向机场付费,拿到一条订阅链接,客户端定期从这条链接拉取最新的节点列表。机场换了服务器,你这边刷新一下就跟上了。
客户端本身不收费,花钱的始终是节点那一头。这也是 v2rayN 这类软件和应用商店里那些一体式 App 的不同:后者把客户端和节点打包在一起卖,前者只给你一个空壳,节点从哪来由你决定。
v2rayN、v2rayNG 读的是通用格式的订阅:一串节点链接经 Base64 编码后的合集,里面可以同时有 VMess、VLESS、Trojan、Shadowsocks 等协议的节点。在 v2rayN 里,一份订阅对应一个分组;更新订阅时,这个分组里的节点整体换成机场最新的列表,你手动另加的节点不受影响。导入以后,节点列表里的「类型」一栏写的就是协议名,「传输层安全」一类的栏目会显示 TLS 或 Reality,和前面几讲的认法对得上。
34 家里官网写明用 VLESS、Trojan、SS 等协议的分别是哪几家,各家协议那页按协议分了组,每家还注了哪类客户端能导入。
跨界云官网点名 v2rayN 能导入它的订阅,格式是标准的,付款后面板里就能复制;协议是 VLESS,跃云 Leap ¥40/月给 330GB,用码 kuajie 打 8 折。一翻云写明的协议同样是 VLESS,v2rayN 默认的 Xray 内核就认,出境用的是 IEPL 专线。它的订阅不会自动出现在面板里,付款后找客服领;用量不大的可以看年付小包,¥98/年、每月 60GB。
文中提到的机场
课后自查
用 v2rayN 接示范课一翻云的订阅,第一步先做什么?
先找客服要订阅。一翻云的订阅链接不会自动出现在面板里,付款后才给;协议是 VLESS,v2rayN 认得,拿到后粘贴进去一次导入。新注册账号结账填 1FLYYUN 打 9 折。
网上说的「V2Ray 节点」,指的是哪一种协议?
这是个笼统的叫法,多半指 VMess 或 VLESS 节点,因为这两种协议出自 V2Ray 一系。也有人把 v2rayN 能读的节点统统叫 V2Ray 节点,里面其实还混着 Trojan、Shadowsocks。要知道确切的协议,看节点链接的开头或客户端里类型那一栏。
v2rayN 和 v2rayNG 能共用同一份订阅吗?
能。两者出自同一位作者,读的是同一种通用格式:一串节点链接经 Base64 编码后的合集。机场给的通用订阅,电脑上的 v2rayN 和安卓上的 v2rayNG 都能读,用的是同一份流量。