VLESS+Reality 配置细节:clients 参数与指纹伪装对照
2024年12月5日
约13分钟
VLESS 配置
VLESS+Reality 是当前抗封锁与稳定性平衡最好的方案之一,但参数比老协议多, 配错一个就握手失败。这篇把服务端 clients 段每个字段的含义、客户端指纹伪装 的取值差异,以及常见配置错误逐一讲清。
服务端 clients 字段详解
| 字段 | 作用 | 说明 |
|---|---|---|
| id | 客户端身份标识(UUID) | 服务端与客户端必须一致 |
| flow | 流控方式 | 通常 xtls-rprx-vision |
| spiderX | 爬虫路径参数 | 默认 / 可自定义 |
| publicKey | Reality 公钥 | 与私钥配对,填错必失败 |
| shortId | 短标识 | 可留空,两边保持一致即可 |
flow 参数:xtls-rprx-vision
vision 流控把 TLS 握手与数据传输优化过,对延迟和吞吐都有帮助,是当前唯一推荐给 常规使用的 flow。老教程里的 xtls-rprx-direct 已不再建议,部分客户端会直接拒绝。 注意:flow 只在服务端配置了的情况下才需要填,纯 VLESS(不带 Reality)不需要 flow。
指纹伪装 client-fingerprint 对照
客户端侧用 client-fingerprint 指定 TLS 指纹,让握手看起来像真实浏览器/系统。 取值不能乱选:要与你访问的目标站点常用环境一致,伪装才自然。
| 取值 | 对应环境 | 建议场景 |
|---|---|---|
| chrome | Chrome / Edge | 通用首选 |
| firefox | Firefox | 与目标站访问群体匹配时 |
| ios | iOS Safari | 移动端客户端使用 |
| random | 随机选择 | 不建议,行为不稳定 |
常见配置错误
- 服务端填了公钥、客户端却用了自己的公钥 → 握手必失败
- dest 指向的站点不支持 TLS 1.3 → Reality 无法工作,选知名大站
- shortId 十六进制带 0x 前缀 → 有些客户端不识别,写纯 hex
- flow 不匹配:服务端开了 vision,客户端没填 → 连接被拒
- 服务器时区/时间偏差过大 → 证书校验异常,同步 NTP
验证配置
# 服务端检查监听与握手日志
journalctl -u xray --no-pager | tail -50
# 客户端侧查看内核连接日志是否出现 "REALITY" 握手成功记录