划重点
VLESS 是 2020 年由 V2Ray 社区提出、后来由 Xray 项目主力维护的代理协议,只管验证身份和转发,设计上不自带加密,把这件事交给外层的 TLS 或 Reality。和前辈 VMess 相比,它省掉了一层重复的加密,也不再要求设备时钟准确。Reality 是给它配的伪装:握手看起来像在访问某个真实的大网站,节点因此用不着自己的域名和证书。
这一讲围绕一对常一起出现的词展开:VLESS 和 Reality。先看 VLESS 是什么:它是一种代理协议,2020 年由 V2Ray 社区提出,后来主要由 Xray 项目维护。它做的事很少:用一串 UUID 核对你的身份,记下你要访问的地址,然后转发数据。加密它不管,设计上交给外层的 TLS 或 Reality。少做一层,开销就小一些,近两年机场介绍页上写 VLESS 的越来越多。
搜 vless 的人,多半在订阅或客户端里见到了它,或者见到了「vless reality」这个组合。下面依次讲它和 VMess 差在哪、Reality 解决了什么、订阅里怎么认出 Reality 节点、机场为什么偏向它,最后讲用 VLESS 订阅时你需要准备什么。
vless协议和 VMess 比,少的是自带的加密
VMess 是 V2Ray 早年的主力协议。它自带加密,也用 UUID 认证,还把时间戳算进认证里,设备时钟和服务器相差太多就连不上。后来用的人发现,VMess 往往再套一层 TLS 才放心,数据等于加密了两遍;VLESS 干脆把自带的加密拿掉,只保留认证和转发,加密全交给外层。
| 比较的地方 | VMess | VLESS |
|---|---|---|
| 身份验证 | UUID,同时校验时间 | UUID,不看时间 |
| 协议自带加密 | 有 | 设计上没有,靠外层 TLS 或 Reality |
| 设备时钟偏差大 | 会连不上 | 不受影响 |
| 订阅链接的开头 | vmess://,后面是一整段 Base64 | vless://,参数直接写在链接里 |
| 原版 Clash 能不能读 | 能 | 不能,要 mihomo 这类新内核 |
| 常见的搭配 | WebSocket 加 TLS,或者干脆不加 | TLS 或 Reality,常配 Vision 流控 |
表里最后一行的 Vision,是 Xray 给 VLESS 配的一种流控方式。它对付的是「TLS 套 TLS」留下的痕迹:浏览器和网站之间那次握手被包在代理通道里,外面虽然读不到内容,却数得出那几个包各有多长。Vision 在握手阶段把这些包的长度补齐打乱,之后再把内层的加密数据直接放过去,省掉重复加密的开销。同一个问题,Trojan 是什么那一讲也提到过。
两种协议都用 UUID 认人。UUID 是一串由短横线分成五段的十六进制编号,机场给每个账号分一个,订阅里的所有节点共用它,相当于账号和密码合在一起。订阅链接外泄,别人拿到的就是这串编号;在机场面板里重置订阅时,UUID 往往也跟着换掉,旧的立即作废。
从 V2Ray 到 Xray,VLESS 能配哪几种传输方式
VLESS 的身世有点绕。它最早出现在 V2Ray 的社区版里;2020 年底,VLESS 的作者和一批开发者另起炉灶,开了 Xray 项目,此后 XTLS、Vision、Reality 这些改进都先在 Xray 里落地。V2Ray 那边仍保留着 VLESS,新特性跟得少。所以今天说到 VLESS,多半默认指 Xray 这一支;mihomo、sing-box 两个内核也各自实现了它,节点参数和 Xray 互通。
VLESS 本身只规定怎么认人、怎么转发,数据在路上用什么方式传,是另外选的。节点链接里 type 那一项写的就是它:
- tcp:直接走 TCP,Reality 和 Vision 基本都配它,开销小。
- ws:WebSocket,可以放在 CDN 后面,节点 IP 出了问题还能借 CDN 绕过去,代价是延迟高一些。
- grpc:另一种能过 CDN 的方式,多条请求共用连接的表现更好。
- xhttp:Xray 在 2024 年加入的方式,把数据拆进普通的 HTTP 请求里来回送,要较新的客户端才认,也不是每个内核都支持。
同样写着 VLESS,传输方式不同,对客户端的要求也不同,这是导入后个别节点连不上的常见原因之一。
vless reality 是什么:借一个真网站的握手
走 TLS 的协议有个绕不开的前提:节点要有域名和证书。域名一旦被盯上,同一域名下的节点会一起受影响;证书是不是新签的、域名是不是刚注册的小站,也都可能成为线索。
Reality 是 Xray 在 2023 年推出的方案,思路是节点不用自己的证书,转而借用别人的。具体是这样:
- 机场挑一个真实存在、支持新版 TLS 的大网站作为伪装目标,节点握手时报出的域名就是它。
- 客户端事先拿到节点的公钥和一个短 ID,握手时把暗号藏进报文里。
- 节点核对暗号,对得上就转入代理;对不上,就把这条连接原样转给那个大网站,探测的一方拿回的是真网站的真证书。
再配上模仿常见浏览器的握手指纹,外人看到的就是「有人在访问某个大网站」。好处是节点不需要自己的证书,换 IP 时也不用重新申请;代价是伪装目标要挑得合适,和节点所在的机房、地区对不上,反而显眼,另外对客户端版本有要求。
还有一点:Reality 节点没法放在 CDN 后面。握手要直接和节点完成,中间隔着 CDN,暗号就递不过去。所以 Reality 节点的地址一般直接写 IP,或者是一个只用来解析出 IP 的域名,不会指向 CDN。
订阅里怎么认出 Reality 节点
VLESS 节点的链接以 vless:// 开头。下面是一个 Reality 节点的示意,所有值都是占位:
vless://UUID占位@203.0.113.10:443?encryption=none&flow=xtls-rprx-vision&security=reality&sni=www.example.com&fp=chrome&pbk=公钥占位&sid=短ID占位&type=tcp#日本01
认 Reality,看三处:
- security=reality。普通的 TLS 节点在这一项写的是 tls。
- 带着 pbk 和 sid。前者是节点的公钥,后者是短 ID,普通 TLS 节点没有这两项。
- sni 是一个和机场无关的大网站。普通 TLS 节点的 sni 多半是机场自己的域名。
type 一项除了 tcp,还可能是 ws、grpc 之类,那是前面讲的传输方式,和是不是 Reality 是两回事。另外,flow=xtls-rprx-vision 说明用了 Vision 流控;encryption=none 指协议这一层不另行加密。换成 YAML 写法时,节点类型那一行是 type: vless,是 Reality 的话下面会多出一段 reality-opts,里面装着公钥和短 ID。客户端的节点列表通常只写 VLESS,看不出是不是 Reality,要点开节点详情看传输安全那一栏。
一份订阅里同时有 vless:// 和 vmess:// 节点,导入后却只出现了 VMess 那几个,多半不是订阅坏了,而是客户端内核太旧,把读不懂的 VLESS 节点跳过了。
机场为什么近两年多写 VLESS
几个原因叠在一起:
- 开销小。 不重复加密,同一条线路上能多跑出一点带宽,服务器的负担也轻。
- Reality 省了证书。 节点换 IP、加地区时,不用跟着配域名和证书,上新节点更快。
- Xray 的新改进长在它身上。 Vision、Reality 是 Xray 社区针对近几年识别手段做的改进,VLESS 是承载它们的协议。
- 客户端跟上来了。 mihomo、sing-box、Xray 这几个内核都支持 VLESS 和 Reality,主流客户端更新后都能读。
也别把 Reality 当成隐身衣。节点的 IP 地址照样摆在明处,大量国内用户长期连着同一个境外地址,本身就是线索;Reality 管的是「握手露馅」,管不了「地址被盯上」。所以同样是 VLESS 加 Reality,各家用起来仍有差别,差在线路怎么走、出了问题换地址快不快,这些协议名替不了。
划重点:VLESS 自己只管认人和转发,加密交给外层;Reality 管得了握手露馅,管不了地址被盯上。
官网写明用 VLESS 的是 34 家中的哪几家?各家协议目录把它们归到同一组,旁边注着哪类客户端能导入。
订阅写着 VLESS,你只需要准备好客户端
协议是机场定的,你这边要做的事不多:
- 确认内核够新。 Clash 系客户端选用 mihomo 内核的版本,原版 Clash 早就停止更新,读不了 VLESS;v2rayN、sing-box 一系的客户端本身就支持。内核之间的关系,mihomo 是什么那一讲说得更细。
- 节点连不上,先查客户端版本。 Reality 和 Vision 的参数这几年有过调整,太旧的客户端可能认得 vless:// 却连不上 Reality 节点。
- 别手动改参数。 pbk、sid、sni 三项错一个字符都连不上,原样使用机场给的订阅就好。
- 拿对格式的链接。 有的机场会同时给两条订阅,一条供 Clash 系读取,一条是通用的节点链接合集,VLESS 节点两边都有;客户端是 Clash 系就用前一条,v2rayN 这类就用后一条,拿错了容易导入失败。
一翻云介绍页上的协议一栏是 VLESS,跨境走 IEPL,订阅要在付款后联系客服领取;用量大的看舒享版,¥35/月给 350GB,季付 ¥98。微风的节点也是 VLESS,订阅登录后在面板复制;只卖年付的清风 Breeze ¥137/年、每月 100GB,适合用量小又想一次买齐的人。跨界云也写 VLESS,官网点名 v2rayN 和 Clash 都能读它的标准订阅,起步的轻云 Lite 每月 ¥20、120GB。
文中提到的机场
课后自查
示范课一翻云写着 VLESS,它的数据靠哪一层加密?
靠外层 TLS。VLESS 是 Xray / V2Ray 一系的轻量协议,自身不加密,所以客户端要用新一点的内核,Clash 选 Meta(mihomo)版。一翻云用的就是它,出境段另走 IEPL 专线。
VLESS 不自带加密,路上会不会被看到内容?
机场给的 VLESS 节点几乎都配了 TLS 或 Reality,内容由这一层加密,路上看不到。节点链接里 security 一项写着 tls 或 reality,就说明有这层保护;要是写着 none,又没有别的加密,这个节点的内容就没有加密,遇到了可以问机场为什么这样配。
Reality 节点借用的那个大网站,会不会因此被影响?
不会。节点只是在握手时摆出那个网站的样子,没通过验证的探测会被转给那个网站本身,它照常应答;你自己直接访问那个网站也不受影响。被借用的网站和机场没有任何合作关系。