跳到正文
不翻车专注 VPN 软件评测

Xray 一升级 sing-box 就断网:REALITY 之争前因后果

不翻车编辑部 · 更新于

RPRX 在 Xray-core

服务器上的 Xray 升到 26.9.8 或更新的版本以后,用 sing-box 内核的客户端连 REALITY 节点全部失败,报错是 reality verification failed。这不是 bug:Xray 作者 RPRX 在 2026 年 9 月 8 日改代码的当天就写明了“对于 sing-box 不能连”。到 2026 年 10 月 7 日,sing-box 还没有修,作者也没有公开回应。

这篇有视频版:YouTube 上看《Xray 和 sing-box 为什么吵翻了》。

先说结论:用 sing-box 内核的客户端,现在连不上 Xray 26.9.8 以后的 REALITY 服务端;服务器停在 v26.7.28 或更早,或者换客户端。Mihomo 内核要把指纹设成 Chrome,再打开 support-x25519mlkem768。下面是这件事的前因后果,每条都附了原帖链接。

RPRX 在 Xray-core #6714 的评论:这项改动后对于 Xray 只有前三个指纹能连,对于 Mihomo 只能 Chrome,对于 sing-box 不能连

到底改了什么

REALITY 的服务端会看客户端打招呼的信息(TLS 的 Client Hello)像不像真浏览器。Chrome 从 131 版(2024 年 11 月)起默认带一种后量子密钥交换,叫 X25519MLKEM768;Go 语言 1.24(2025 年 2 月)也默认带上了。

2026 年 9 月 8 日,REALITY 的提交 8cdf7bf 加了一条规则:Client Hello 里没有 X25519MLKEM768,或者 X25519 排在它前面,一律回落。没有配置开关。当天发布的 Xray v26.9.8 带上了这条规则,之后的 v26.9.9、v26.9.30 都一样。

问题出在客户端这边:

  • sing-box:2025 年 5 月 3 日的提交 dbdcce20 在 REALITY 客户端里把 X25519MLKEM768 过滤掉了,提交说明没写原因。10 月 7 日的最新代码里,这几行还在。
  • Mihomo:更早,2025 年 4 月 2 日就删了(577f64a),代码注释写的是“旧版 REALITY 服务端处理不好它”。5 月 15 日加了 support-x25519mlkem768 开关,默认关闭。

sing-box reality_client.go 第 151 和 156 行:把 X25519MLKEM768 从支持列表和 key share 里过滤掉

Mihomo reality.go 第 58 行注释:X25519MLKEM768 does not work properly with the old reality server

sing-box 的问题帖 #4520 是 9 月 11 日开的,9 月 19 日有人复测 v1.14.1 和 v1.15.0-alpha.6 仍然失败,到 10 月 7 日还是 Open,没有维护者回复。

sing-box issue #4520:reality verification failed against Xray-core v26.9.8+ servers,状态 Open

两边怎么吵起来的

Xray 自己人先唱了反调。核心维护者 Fangliding 在 9 月 8 日的内部讨论 #6737 里写:“reality又死了一片 是不是有点过火了”。RPRX 回复,三大浏览器带上这一项已经很久,不带的指纹“都已经属于过时/奇怪/小众”,长远看“相对一劳永逸”。

Fangliding 在 Xray-core #6737 的评论:reality又死了一片 是不是有点过火了

9 月 9 日,安卓客户端 Exclave 的作者 dyhkwong 发了英文声明 Exclave #480,要求 Xray “cease discriminatory practices”(停止歧视性做法),并号召服务端用户 “boycott Xray”(抵制 Xray)。7 月 Xray 26.7.11 按版本号拦截旧客户端时,他已经在 Exclave #449 里用英文粗口骂过一次。

Exclave #480 声明:cease discriminatory practices,服务端用户应抵制 Xray

RPRX 在 Xray #6477 连回三条。9 月 10 日那条说:“这根本不是 REALITY 搞了多大的破坏性更新,而是 sing-box 故意迟迟不更新 REALITY 服务端代码的人祸”。9 月 11 日那条的结尾是“都是这个世界的错”。sing-box 作者的网名就叫“世界”。

RPRX 在 Xray-core #6477 的评论,结尾:都是这个世界的错

dyhkwong 反驳:sing-box 在 2025 年 7 月就给服务端做了适配;而且 Mihomo 删 X25519MLKEM768 比 sing-box 还早。这两边关于 sing-box 服务端什么时候适配的说法,我们都没能独立核实。Mihomo 维护者 wwqgtxx 在 mihomo #3193 表态:“we will not consider compatibility with xray versions v26.7.11 and later”(不考虑兼容 v26.7.11 以后的 Xray)。

9 月底,dyhkwong 指责 Xray 修了一个漏洞却不告诉用户,这是他的单方说法,那条回复里脏话很多;RPRX 也在自己的 Telegram 频道里爆粗口回骂。

陈年旧账:2020 到 2023

  • 2020 年 11 月,分家。 RPRX 的 XTLS 10 月进了 v2ray 正式版,随后因许可证吵翻(XTLS/Go #9)。11 月 18 日 XTLS 改为 MPL-2.0,11 月 20 日 v2fly 照样把它删了(v2fly PR #431),11 月 25 日 Xray 1.0.0 发布,版本标题“New Beginning”。
  • 2021 年 6 月到 2023 年 1 月,空白。 RPRX 在 Xray 仓库约 18 个月没有署名提交,原因没有公开说法。这段时间里,世界维护过 Xray 的安卓客户端,给 Xray 贡献了 Shadowsocks 2022(PR #1061),2022 年 6 月底开始做 sing-box。
  • 2023 年,结梁子。 REALITY 2 月发布,sing-box 约两周后跟进。世界给 Xray 提的 ShadowTLS(PR #1687)和 smux(PR #1986)都被拒,后者评论里 RPRX 回了一句“我觉得你大可不必阴阳怪气”。5 月 RPRX 发布 Trojan-killer,说明里写“为了 狠 狠 打 脸”某些人;9 月世界在博客发了《VLESS 协议中的设计问题》,其中一句是“简单一个 version 字段说明即可看到作者的语文功力”。

“被 GFW 收买”是怎么回事

这句话说的是 3x-ui,不是 sing-box,而且是伊朗的 GFW。

2024 年 10 月,RPRX 在 Xray PR #3884 要求网页面板禁止公网明文 HTTP 访问,只支持 HTTPS 或 SSH 端口转发,不照做的从 Xray 推荐名单里拿掉。3x-ui 作者 MHSanaei 回复,在面板里放警告就够了,不能强迫用户。RPRX 10 月 24 日写道:“反正不支持的会被我视为已被 GFW 收买”。

RPRX 在 Xray PR #3884 的评论:反正不支持的会被我视为已被 GFW 收买

同一天,Xray 的 README 加了英文警告,说 3X-UI 这类明文 HTTP 面板 “are believed to be bought by Iran GFW”。

Xray README(提交 94338c9):Please DO NOT use plain HTTP panels like 3X-UI, as they are believed to be bought by Iran GFW

2025 年 1 月,RPRX 在同一个 PR 里说注意到 MHSanaei 的 USDT 捐款地址进账三万美元,问“没有一点可能来自 Iran gov 吗?”。MHSanaei 用波斯语回复,大意是那是他自己的钱转进自己的账户;x-ui 作者 alireza0 回复说不干了。2026 年 1 月,3x-ui 照要求改完,Xray 把 3X-UI 加回了推荐名单(提交 b38a41249f)。

谁有理

各占一半。

  • Xray 这边:浏览器早就默认带 X25519MLKEM768,REALITY 本来就要装成浏览器,不带的反而显眼;后果在改代码前一天公开说了。
  • 另一边:服务端更新没有开关;v26.9.8、v26.9.9、v26.9.30 的发布说明一个字没提这条改动;第三方客户端说断就断。

还有一个细节:这三个版本在 GitHub 上都标的是 Pre-release(预发布),页面上的 Latest(最新正式版)到 10 月 7 日还是 v26.3.27。

Xray-core v26.9.30 发布页标着 Pre-release

你该怎么办

  1. 先看客户端用的是什么内核。 sing-box 内核的客户端,连不上 v26.9.8 以后的 Xray REALITY 服务端。服务器停在 v26.7.28 或更早,或者换客户端。安卓的 v2rayNG 内核就是 Xray,没有这个问题。
  2. Mihomo 内核(比如 Clash Mi): 指纹选 Chrome,再打开 support-x25519mlkem768。有的客户端导入订阅时已经替你打开了。
  3. 自己搭服务器的: 别急着追预发布版。3x-ui 从 3.8.0 起自带新内核,升级前先确认家里每台设备的客户端都跟得上。
  4. 小火箭: 原因和回退办法见小火箭连不上 3x-ui 新版 Reality 节点。

连上以后,可以用分流检测看国内外出口是不是都对。

常见问题

sing-box 连 Xray 报 reality verification failed 怎么办?

Xray 26.9.8 起要求 Client Hello 带 X25519MLKEM768,sing-box 的 REALITY 客户端会把它删掉。截至 2026 年 10 月 7 日 sing-box 没有修复,也没有开关。服务器停在 Xray v26.7.28 或更早,或者换用 Xray 内核、Mihomo 内核的客户端。

Mihomo / Clash Meta 能连 Xray 26.9 吗?

能。client-fingerprint 设为 chrome,reality-opts 里加 support-x25519mlkem768: true。Firefox、Safari 指纹仍然连不上。

Xray 26.9.8 是正式版吗?

不是。v26.9.8、v26.9.9、v26.9.30 在 GitHub 上都标为 Pre-release,Latest 是 v26.3.27。3x-ui 3.8.0 以后会自带新内核,所以很多人是升级面板时被动升上去的。

“被 GFW 收买”说的是谁?

说的是 3x-ui 等支持公网明文 HTTP 的面板,原文是 “Iran GFW”(伊朗)。出处是 Xray PR #3884 和 2024 年 10 月 24 日的 README 提交;2026 年 1 月 3X-UI 已被加回推荐名单。