最近在 NodeSeek 上看到一位用户反馈:更新 x-ui 后,原本在 Clash Verge 上正常使用的节点突然连不上了,而老版本配置一直没问题。原帖下的回复很有代表性,集中反映了新版 x-ui 升级 Xray 内核后引发的客户端兼容性问题。我把讨论内容整理成一篇教程,方便遇到同样问题的朋友按步骤排查。
一、问题现象
- 老版本 x-ui 配置的节点,在 Clash Verge 上可以正常使用。
- 更新到新版 x-ui 后,同样的节点在 Clash Verge 上连不上了。
- 服务端面板看起来一切正常,但客户端就是握手失败。
二、原因:Xray 内核加了版本校验
问题的根源不在 x-ui 面板本身,而在它捆绑的 Xray 内核版本。
3x-ui 从 v3.5.0 开始,将内置的 Xray-core 升级到了较新的版本(后续版本捆绑了 v26.7.28 甚至更高)。新版 Xray 在 REALITY 入站配置中默认添加了“最小客户端版本”限制,要求连接客户端满足一定的版本要求。
而 Clash Verge 使用的代理核心是 Mihomo(原 Clash Meta 内核),Mihomo 目前并没有适配 Xray 的这个新限制。两者版本校验对不上,连接自然就被服务端拒绝了。
简单说:服务端要求客户端“报版本号”,Mihomo 报的版本号不满足要求,于是被拒。
LINUX DO 论坛上也有用户遇到完全相同的情况,讨论中明确指出:“最新版 xray 限制了最小客户端版本,mihomo 内核目前没有适配”。
三、四种解法
解法一:改 x-ui 入站设置(最推荐)
在 3x-ui 面板的入站编辑界面中,REALITY 配置里有一个“最小客户端版本”的设置项。新版 x-ui 在创建或升级入站时,可能默认填了一个较高的版本号(比如 26.x.x)。把它改成 1.0.0,等于告诉服务端“不限制客户端版本”,Mihomo 的连接就不会被拒绝。
操作步骤:
- 登录 3x-ui 面板,进入入站列表。
- 编辑对应的 REALITY 入站。
- 找到“最小客户端版本”设置项。
- 改为
1.0.0,保存并重启 Xray。
优点:面板点几下即可,不需要降级内核,也不需要改客户端配置。
缺点:每次新建入站时可能要重新设置。
解法二:Clash 配置加一行参数
如果不想动服务端,可以在客户端配置里解决。
新版 Xray 的 REALITY 增加了对后量子密钥交换算法 X25519MLKEM768 的支持。客户端如果不声明支持这个曲线,服务端可能在版本协商时判定不兼容。
在 Clash 配置文件的 reality-opts 字段下,添加一行:
reality-opts:
public-key: <你的公钥>
short-id: <你的 short-id>
support-x25519mlkem768: true
support-x25519mlkem768 是 Mihomo 的 REALITY 出站配置中的一个布尔字段,默认值为
false。手动添加这一行,相当于告诉服务端:“我虽然版本看起来不高,但我支持这个新的密钥交换方式”,从而绕过版本校验。
注意:这需要你能编辑 Clash 的配置文件(YAML)。纯订阅用户可能需要服务端下发订阅时包含这个参数,或者在本地覆写配置。
解法三:Shadowrocket 改指纹(iOS 用户)
如果用的是 iOS 上的 Shadowrocket(小火箭),可以通过改 TLS 指纹来解决。
操作步骤:
- 打开 Shadowrocket,进入 设置 → 隧道 → TCP。
- 找到 TLS → 指纹 这一项。
- 在指纹选择列表中,选择带有
supports X25519MLKEM768 标注的项,比如 Safari26_3、Chrome120、Chrome140、Firefox148 等。 - 保存后重新连接。

原理和解法二类似:通过选择一个“声明支持 X25519MLKEM768”的 TLS 指纹,让客户端在握手时带上服务端要求的特性,从而通过版本校验。
解法四:降级 Xray 内核(最稳妥)
如果上面几种方法都不想折腾,可以直接把 Xray 内核降回旧版本。
原帖回复中给出的版本边界是:Xray 不要超过 v26.7.28。3x-ui v3.6.0 捆绑的正是 v26.7.28,后续版本内核更激进,兼容性问题也随之出现。
操作思路:
- 在 3x-ui 面板中找到 Xray 版本管理。
- 切换/回退到 v26.7.28 或更早的版本。
- 重启 Xray。
优点:简单粗暴,立竿见影。
缺点:放弃了新内核的安全更新和功能改进,且每次 x-ui 更新后可能又要重新降级。
四、方案对比
| 方案 |
操作位置 |
适用客户端 |
推荐度 |
| 改入站最小客户端版本 |
x-ui 面板 |
所有客户端 |
★★★★★ |
配置加 support-x25519mlkem768 |
Clash 配置文件 |
Clash Verge / Mihomo |
★★★★ |
| 改 TLS 指纹 |
Shadowrocket 设置 |
iOS 小火箭 |
★★★★ |
| 降级 Xray 内核 |
x-ui 面板 |
所有客户端 |
★★★ |
五、补充:为什么会反复出现兼容问题?
原帖回复中还有人提到“换 sui 了”(指切换到 sing-box),以及有人说“其实升到最新版反而可以”。这涉及到更深层的生态分歧。
Xray 的作者 rprx 对部分第三方客户端(包括 Mihomo/Clash、sing-box 等)的 REALITY 实现方式有不同看法,认为它们“部分实现不规范”,因此 Xray 在较新版本中主动增加了版本限制。LINUX DO 的讨论中有人提到:“singbox, clash, surge 是第三方客户端,rprx 认为它们部分实现不规范……xray 不打算兼容”。
这意味着,如果你选择留在 Xray 生态里,用 Clash Verge 作为客户端,版本兼容问题可能会反复出现。每次 x-ui 更新捆绑的内核,都可能带来新的校验规则。
长期来看,要么每次手动调整配置,要么考虑切换到 Xray 自家的客户端,或者换用对 Mihomo 更友好的服务端方案。
六、总结
新版 x-ui 在 Clash Verge 上连不上,根源是 Xray 内核的版本校验,不是配置写错了。
建议排查顺序:
- 先试解法一(改入站最小客户端版本为
1.0.0),成本最低。 - 如果服务端不方便改,试解法二(Clash 配置加
support-x25519mlkem768: true)。 - iOS 小火箭用户试解法三(改 TLS 指纹)。
- 都不想折腾,用解法四(降级 Xray 内核到 v26.7.28 或更早)。
原帖的讨论虽然简短,但把问题定位和几种解法都覆盖到了。希望这篇整理能帮到遇到同样问题的朋友。
🔒
评论后可见
本条内容需要评论一次才能查看
去评论 ↓
🔒
评论后可见
本文需要评论一次才能查看完整内容。
请先发表一条评论,然后返回本页即可查看。
去评论 ↓
💬 评论区 0