Reality目标填了这31个网站,节点每条连接都失败(padding -4)
不翻车编辑部 · 更新于

Reality 的目标网站要是握手时什么都不回(不确认域名、不选 H2),从 Xray v26.10.21 起拿它当目标,节点的每一条连接都会失败,服务端日志是 padding: -4。2026 年 11 月 3 日我们在测试服务器(美国)上把全球访问量前 3000 的网站逐个查了一遍,有 31 个是这样;大家常用的 59 个目标(3x-ui 查找目标的 10 个默认候选、苹果、亚马逊、AMD 等)里一个都没有。踩坑的多是不带 www 的主域名:agoda.com 当目标 3 次全失败,www.agoda.com 3 次全通。Xray 维护者已表态暂时不修。
测试服务器(Xray v26.10.31,开 show: true)的日志,客户端 IP 遮了后两段:
REALITY remoteAddr: 136.52.***.***:60869 len(s2cSaved): 5515 Server Hello: 127
REALITY remoteAddr: 136.52.***.***:60869 hs.handshake() err: payload[0]: 8, padding: -4
padding -4 是怎么回事?
Reality 让你的服务器装成目标网站:没有密钥的人连过来,会被原样转给目标网站,看到的是真证书;你自己的客户端连过来,服务器照着目标网站的回应来演,连每一段回应的长度都要对上。
目标网站握手时会回一段加密的说明(TLS 1.3 的 EncryptedExtensions),一般写两件事:确认你要访问的域名(SNI),和选定网页协议(ALPN,比如 h2)。这 31 个网站这段是空的,只有 6 个字节。
Xray v26.10.21 用的 REALITY 库同步了 Go 1.27 的上游代码,服务器自己的这段说明里固定多了一项“确认域名”,比空的长 4 个字节。服务器要把自己的回应补齐到和目标一样长,补出来是 -4,握手失败。报告人 yx64 在 Xray issue #7243 里把原因和复现步骤都写清楚了。
难查的地方:
- 没有密钥的探测走的是“原样转给目标网站”那条路,一切正常,面板测试、别人帮你测都看不出来。
- 客户端只报
EOF(我们测的约 4 秒)。 - 服务端要开
"show": true才打印padding: -4;Info 级日志只有一句REALITY: processed invalid connection ... handshake did not complete successfully;3x-ui 默认日志级别 warning,连这句都没有。
官方修不修?
不修。issue 10 月 23 日提出,维护者 10 月 27 日回复“有必要再说吧,而且不支持 ALPN 的 target 本身也是不鼓励使用的”,关闭为 not planned。v26.10.31 也没改,我们 11 月 2 日实测 v26.10.31 和 v26.10.21 都失败、v26.7.28 正常(同一台测试服务器,节点一夜全断,不一定是被墙 一文有完整对照)。

维护者说的有道理。REALITY 项目说明写的目标网站最低标准是“国外网站,支持 TLSv1.3 与 H2,域名非跳转用”。这 31 个网站握手时不选 H2,按这个标准本来就不合格。照标准选目标的人,一直碰不上这个问题。

是哪 31 个网站?
Tranco 榜单 11 月 2 日版的前 3000 个域名,在测试服务器上用 openssl s_client -tls1_3 -alpn h2,http/1.1 逐个握手(11 月 2 日扫一次,11 月 3 日复查一次,两次都是这 31 个)。和 issue 里报告人的抽样结果一致(前 3000 名 31 个,约 1%;3000 名以后随机 6000 个里 35 个,约 0.6%)。

| 类别 | 网站 |
|---|---|
| 俄罗斯(4) | dzen.ru、ok.ru、gosuslugi.ru、vtb.ru |
| 政府和国际机构(11) | europa.eu、www.gov.br、acesso.gov.br、admin.ch、egramswaraj.gov.in、administracionelectronica.gob.es、dot.gov、si.edu、itu.int、iana.org、icann.org |
| 大学和研究机构(4) | purdue.edu、pitt.edu、mpg.de、ieee.org |
| 公司(12) | agoda.com、wix.com、dailymotion.com、orange.fr、strato.de、onedrive.com、schwab.com、constantcontact.com、wasabisys.com、kinnser.net、inven.co.kr、dssott.com |
.ru 结尾的本来就会触发 Xray v26.9.30 起的“更容易被墙”警告(这篇讲过警告规则)。
onedrive.com 还有第二个问题:它握手用 secp384r1,不支持 X25519。REALITY 靠 X25519 藏客户端的密钥,这种目标在任何版本上都用不了(同 Xray #6861,维护者答复“伪装网站不使用 x25519 它那么本来就用不了”)。我们实连 onedrive.com,客户端 3 次都是 REALITY: received real certificate。
常用的目标有没有问题?
没有。我们测了 59 个常见目标:
- 3x-ui 查找目标的 10 个默认候选:www.cloudflare.com、www.microsoft.com、www.amazon.com、aws.amazon.com、www.samsung.com、www.nvidia.com、www.amd.com、www.intel.com、www.sony.com、dl.google.com
- 社区常见的:www.apple.com、swdist.apple.com、gateway.icloud.com、itunes.apple.com、www.icloud.com、www.lovelive-anime.jp、addons.mozilla.org、www.yahoo.com、www.tesla.com、www.bing.com、learn.microsoft.com、go.microsoft.com、www.speedtest.net
- 另外 36 个大公司官网
57 个回应正常(56 个协商到 h2,go.microsoft.com 只给 http/1.1 但回应不为空)。剩下 2 个:www.onedrive.com 回应为空;www.playstation.com 握手没完成。
能用不等于该用:上面的苹果、微软域名会触发 Xray 警告,www.cloudflare.com 在 Cloudflare 上,理由见Reality 的 SNI 填什么。
为什么加 www 就好了?
主域名很多只是用来跳转到 www 的,服务器配置得很简单。31 个里去掉本来就带 www 的那个,剩 30 个加上 www 再测:
- 11 个正常:www.agoda.com、www.wix.com、www.dailymotion.com、www.ieee.org、www.iana.org、www.icann.org、www.si.edu、www.schwab.com、www.constantcontact.com、www.dot.gov、www.admin.ch
- 17 个仍为空
- 2 个握手没完成(www.dssott.com、www.pitt.edu)
实连对照(服务端、客户端都是 Xray v26.10.31,客户端 chrome 指纹,各 3 次):
| 目标 | 结果 |
|---|---|
| agoda.com | 0/3,客户端约 4 秒 EOF,服务端 padding: -4 |
| www.agoda.com | 3/3,返回 204 |
目标 agoda.com #1 000 4.14s #2 000 4.06s #3 000 4.04s
服务端:hs.handshake() err: payload[0]: 8, padding: -4
目标 www.agoda.com #1 204 0.09s #2 204 0.08s #3 204 0.20s
REALITY 说明里那句“域名非跳转用(主域名可能被用于跳转到 www)“说的就是这个。
怎么自己查?xray tls ping 查不出来
很多教程(包括我们以前的)让你在服务器上跑 xray tls ping 域名。拿它测 agoda.com:TLS 1.3、证书、证书链长度全部正常,输出里没有 ALPN 一栏,看不出回应是空的。
root@vps:~# ./xray tls ping agoda.com
Pinging with SNI
Handshake succeeded
TLS Version: TLS 1.3
TLS Post-Quantum key exchange: false (X25519)
Certificate chain's total length: 4949 (certs count: 3)
Cert's signature algorithm: SHA256-RSA
Cert's allowed domains: [*.agoda.com agoda.com ...]
TLS ping finished
能查出来的三个办法:
-
3x-ui 的扫描:入站 → Reality 设置 → 目标旁边的「扫描」或「查找目标」。3x-ui 源码(
internal/web/service/reality_scan.go)判断可用的条件是 TLS 1.3、H2、X25519、证书有效同时满足,不协商 h2 会写server does not negotiate HTTP/2 (h2),回应为空的网站过不了这一关。
-
openssl 一行命令(在服务器上跑,把域名换成你的):
openssl s_client -connect 域名:443 -servername 域名 -tls1_3 -alpn h2,http/1.1 </dev/null 2>/dev/null | grep ALPN输出
ALPN protocol: h2合格;输出No ALPN negotiated就换一个。我们测 agoda.com 是后者,www.agoda.com 是前者。 -
REALITY 目标网站检测:名单里的网站,「支持 H2」「握手回应不是空的」两项都是绿的就行。这 31 个网站和它们带 www 的版本已经收进每周检测名单,名单外的用前两个办法。

节点已经断了、怀疑是这个原因:3x-ui「Xray 设置」把日志级别改成 info,再连一次,日志里出现 handshake did not complete successfully,先去查目标网站。和被墙怎么区分,见节点一夜全断,不一定是被墙;其他原因按节点超时排查一项项查。
Reality 目标该选什么样的?
- 满足官方最低标准:国外网站、TLS 1.3、能选到 H2、填不跳转的那个域名(多数时候是带 www 的)。
- 避开 Xray 会警告的:含 apple、icloud、microsoft,或 .cn、.ru、.ir 结尾。
- 不选在 Cloudflare 上的:Xray 文档说目标用这类 CDN,你的服务器可能被扫到后拿去偷跑流量。
- 最好选和服务器同一个机房网络(同 ASN)的:Xray 文档写的最佳做法。网上流传的列表别照抄,用的人越多越显眼。找邻居的办法见这篇。
改完目标,客户端要更新订阅(SNI 跟着改成同一个域名),不然会报证书错误。
不建议降级 Xray 来救:退回 7 月版能连上,但会退回默认开着 MPTCP、没有 10 月证书保护的旧版本,换个目标就能解决的事不值得。
这次测试的局限
- 一台美国服务器、一次扫描。个别网站对不同地区返回的握手不一样,你的服务器测出来可能不同,以你自己服务器上跑出来的为准。
- 31 个里实连只测了 agoda.com 和 onedrive.com,其余是按握手回应长度判断(原理见上,issue 报告人另外实连了 4 个真实网站,结果相同)。
- 3x-ui 扫描的判断条件是看源码得出的,没在面板上逐个点。
常见问题
Xray 日志 padding: -4 是什么意思?
目标网站握手时的回应(EncryptedExtensions)是空的,Xray v26.10.21 起服务器自己的回应比它长 4 个字节,补不齐长度,握手失败。换一个回应不为空的目标网站就好,比如把主域名改成带 www 的。
Reality 目标 agoda.com 能用吗?
不能,v26.10.21 起每条连接都失败。改成 www.agoda.com 就正常(2026-11-03 实测 3/3 连通)。
xray tls ping 显示正常,为什么还连不上?
tls ping 不显示 ALPN,也看不出握手回应是不是空的。用 openssl s_client ... -alpn h2,http/1.1 | grep ALPN 或 3x-ui 的扫描再查一次。
降级 Xray 能解决 padding -4 吗?
能连上,但不建议。降级会退回有已知问题的旧版本,换目标网站就能解决。
3x-ui 默认的目标候选会不会有这个问题?
不会。10 个默认候选 2026-11-03 实测回应都正常,都协商到 h2。
Reality 的目标网站怎么选?
国外、TLS 1.3、H2、不跳转;避开 apple、microsoft 和 .cn/.ru/.ir;不选 Cloudflare 上的;最好和服务器同一个 ASN。
资料来源
- Xray-core issue #7243(yx64,2026-10-23;维护者 Fangliding 2026-10-27 回复后关闭为 not planned)
- Xray-core issue #6861:目标不使用 X25519 时 REALITY 无法工作(2026-09-30 关闭)
- XTLS/REALITY README:目标网站最低标准(2026-11-03 查阅)
- 3x-ui 源码
internal/web/service/reality_scan.go:扫描默认候选和“可用”条件(2026-11-03 查阅) - 扫描和实连:2026-11-02、11-03 测试服务器(美国)实测,Xray v26.10.31,OpenSSL 3.0.2,Tranco 榜单 2026-11-02 版
