本文目录
先确认是不是同一种 REALITY 兼容问题
本文只处理一类明确组合:服务端使用 Xray-core v26.7.11 或更高版本,VLESS 入站启用 REALITY,realitySettings 没有显式填写 minClientVer;客户端使用 Mihomo 内核,例如 Clash Verge Rev、FlClash 或其他 Mihomo 前端。
常见表现是配置可以加载、服务端端口也在监听,但客户端提示 REALITY authentication failed,或者服务端记录 authentication failed or validation criteria not met,真实流量始终为 0。
若报错是 x509、certificate、invalid short id、invalid public key、SNI 错误或普通节点 timeout,应先按对应字段排查,不属于本文的直接范围。
Mihomo issue #2967 记录了 1.8.2 会话版本与默认门槛的冲突。Xray issue #6477 则记录了同一配置从 v26.6.27 升至 v26.7.11 后连接失败,并在回退服务端版本后恢复。
3x-ui issue #5922 交叉记录了显式设置兼容 minClientVer 后恢复的面板场景。
近期 issue #3132 又请求把这条已知边界写入 Mihomo 文档,但维护者没有宣布客户端侧正式修复。
四个条件都符合再进入本文
| 检查项 | 符合本文 | 不符合时 |
|---|---|---|
| 协议 | VLESS + REALITY | 先按实际协议、TLS 或传输层排查 |
| 服务端 | Xray-core v26.7.11+ | 不要套用本文的版本结论 |
| 服务端字段 | minClientVer 为空或未写 | 核对显式值与客户端版本 |
| 客户端 | Mihomo 内核并出现认证失败 | 先确认实际内核与第一条错误 |
保存配置并记录两端真实版本
修改服务端前,先导出或复制当前生效的 Xray 配置,记录管理面板版本、Xray-core 版本、客户端显示的 Mihomo 版本,以及第一次失败的时间。不要只写“都是最新版”,版本号才可以建立可重复的对照。
同时保存受影响入站的 protocol、network、security、flow、serverNames、shortIds 和 minClientVer 是否为空。备份中可能含 UUID、privateKey、订阅标识和服务器地址,只保存在受控位置;公开 issue 或截图必须脱敏。
xray version修改前的可回退基线
- 当前 Xray 配置已在受控位置备份
- 服务端 Xray-core 与客户端 Mihomo 版本已记录
- 第一条客户端和服务端错误已保存
- UUID、public key、private key、short-id 与 SNI 未被改动
- 已有一条相同网络下的失败测试结果
理解 Xray 为什么会拒绝 Mihomo
Xray REALITY 官方文档把 minClientVer 定义为服务端允许的最低客户端版本,并说明当前默认值是 26.3.27。结合 Xray issue #6477 的同配置复现,v26.7.11 起服务端在该字段为空时也会应用这个默认门槛,而不是继续把空值解释为不限制。
Mihomo issue #2967 给出的当前实现证据显示,其 REALITY ClientHello 会话版本为 1.8.2。服务端把 1.8.2 与默认最低版本 26.3.27 比较时会拒绝该握手,因此同一个节点在 Xray 客户端可用、在 Mihomo 客户端失败。
这不是普通的证书校验,也不是客户端 YAML 少了一个可分享字段。minClientVer 属于 Xray REALITY 服务端入站配置,不会随着 Clash 或 Mihomo 订阅下发给普通用户。没有服务端控制权时,应把版本与错误交给服务提供方处理,不能在客户端凭空添加这个字段。
Xray 客户端可用,Mihomo 报 REALITY authentication failed
优先核对服务端 minClientVer 与两端版本。
所有客户端都失败
检查入站监听、UUID、short-id、SNI、密钥和防火墙,不只看版本。
只有一个节点失败且服务端未升级
先核对该节点的完整 REALITY 参数和服务状态。
客户端只有 x509 或 certificate 错误
转到证书、时间与 SNI 排查,不降低 minClientVer。
只改变版本或门槛做一次对照
最有价值的对照,是保持同一条入站、同一个节点和同一网络,只比较客户端内核或服务端版本。若 Xray 客户端可以通过该入站完成真实 HTTPS 请求,而 Mihomo 客户端稳定失败,说明端口、密钥和目标站并没有一起失效。
若你在升级前保留了官方 Xray v26.6.27,并且相同配置回到该版本后立刻恢复,也能支持版本兼容判断。回退只用于短时确认,不要在没有备份和官方二进制来源时替换生产服务端。
对照结果怎么解释
| 对照结果 | 下一步 |
|---|---|
| Xray 客户端成功、Mihomo 失败 | 检查 minClientVer 与 Mihomo 会话版本 |
| 两类客户端都失败 | 回到端口、入站和 REALITY 参数检查 |
| v26.6.27 成功、v26.7.11+ 失败 | 建立版本边界后再评估显式兼容门槛 |
| 更换网络才恢复 | 检查网络路径或封锁,不把结果归因于 minClientVer |
先决定是否接受降低最低版本
Xray 官方文档明确提醒:降低 minClientVer 会允许旧客户端连接,但旧客户端的 TLS 指纹与真实浏览器差异更明显,可能更容易被 DPI 识别。它是兼容性与可识别风险之间的取舍,不是无成本修复。
能升级到满足服务端门槛、且已经在同一节点验证的兼容客户端时,优先保留 Xray 默认值。确实必须继续使用当前 Mihomo 客户端时,可把最低值显式设为与它报告的 1.8.2 对齐;不要为了省事直接写 0、0.0.0 或关闭所有限制。
如果这是多人共用的服务端,先确认哪些客户端仍需要旧门槛,并记录修改原因、时间和恢复条件。只有受影响入站需要处理,不应批量放宽所有 REALITY 入站。
在服务端做最小兼容调整
在 3x-ui 等面板中,编辑受影响的 VLESS 入站,打开 Security 或 REALITY 设置,把 Min Client Ver 从空值改为 1.8.2。
使用原生 JSON 配置时,只在该入站的 realitySettings 中增加 minClientVer,不修改 UUID、privateKey、serverNames 或 shortIds。
保存后先使用当前 Xray 二进制测试实际配置文件。官方命令文档说明,run 子命令的 -test 只校验配置而不启动服务。配置路径、二进制名和服务重启入口以你的安装方式为准;面板托管的服务应优先使用面板自己的测试与重启流程。
"streamSettings": {
"security": "reality",
"realitySettings": {
"minClientVer": "1.8.2"
}
}xray run -test -config /path/to/config.json最小变更顺序
备份当前生效配置
保留原始空值状态和回退文件,不公开 privateKey、UUID 或服务器地址。
只修改一个入站
把 minClientVer 显式设为 1.8.2,其他 REALITY 参数保持不变。
运行配置测试
测试失败就立即恢复备份,不让有语法错误的配置进入重启。
通过原管理方式重启
使用面板或现有服务管理入口,不并行启动第二份 Xray。
用同一节点验证握手与真实流量
服务重启后不要只看延迟数字。保持原来的 Mihomo 节点、SNI、short-id、public key 和客户端指纹不变,先重试一次原来必定失败的 HTTPS 请求,再查看客户端连接记录与服务端日志。
修复成立时,REALITY authentication failed 不再出现,服务端能看到入站进入 VLESS 处理,客户端产生真实上下行流量,并能连续完成至少两次 HTTPS 请求。通常不需要重新导入订阅,因为改变的是服务端接受门槛。
验证清单
- Xray 配置测试成功且只运行一份服务
- 同一 Mihomo 节点不再提示 REALITY authentication failed
- 服务端日志不再把该连接送入认证失败分支
- 真实 HTTPS 请求返回内容,不只显示延迟
- 连续复测两次,切换网络后结果仍可解释
- 未修改 UUID、密钥、SNI、short-id 或 skip-cert-verify
不接受风险时恢复默认并回退版本
如果无法接受降低最低版本带来的指纹风险,恢复修改前的 realitySettings 并重新运行配置测试,再通过原管理入口重启。此时旧 Mihomo 客户端再次失败属于预期,应换成满足门槛且已经验证的客户端。
短期业务必须恢复、又没有可用兼容客户端时,可在备份完整、来源可核对的前提下,考虑临时回到升级前已验证的官方 Xray v26.6.27。它是兼容性回退,不代表旧版更安全,也不应覆盖后续修复;保留当前版本安装文件和恢复计划。
若显式 1.8.2 后仍失败,立即恢复备份,停止继续降低数值。转而核对服务端实际加载的配置、入站端口、UUID、short-id、SNI、密钥和客户端首条错误。
这些操作不会解决版本门槛
不要开启 skip-cert-verify,不要盲目更换 SNI 或 client-fingerprint,不要重生 UUID、REALITY 密钥和 short-id,也不要反复转换订阅。这些动作都没有改变服务端比较的客户端版本。
同样不要把所有节点切到 Global、关闭规则或删除本地配置。认证在规则分流之后建立,REALITY 服务端已经拒绝握手时,客户端代理模式不会让它通过。
| 操作 | 为什么无效或有风险 |
|---|---|
| 开启 skip-cert-verify | minClientVer 不是普通证书校验 |
| 重建 UUID 与 REALITY 密钥 | 会破坏原对照,仍不改变版本门槛 |
| 把 minClientVer 设为 0 | 扩大兼容与指纹风险,不是最小修复 |
| 只看延迟恢复 | 延迟不等于真实 HTTPS 流量已经通过 |
当前证据边界与后续维护
截至 2026-09-02,Xray REALITY 官方文档仍把 26.3.27 列为 minClientVer 默认值,并明确记录降低该值的指纹风险。Mihomo issue #2967 被标为 wontfix,后续文档请求 #3132 也已关闭,因此不能把等待某个 Mihomo 正式版写成已经确定的修复路径。
现有证据足以支持本文限定的版本兼容判断,但不能把所有 REALITY authentication failed 都归因于 minClientVer。无效 short-id、public key、SNI、时间、流控、端口或服务端未加载新配置,都可能产生相近表现。
后续只有 Xray 或 Mihomo 的正式 Release、官方文档或合并代码明确改变这个边界,并且同一节点完成真实请求复测,才应撤销本文的临时兼容设置。维护记录应保留服务端版本、显式门槛、需要兼容的客户端和最后一次验证日期。
