Reality的SNI填什么?别再用apple,偷邻居+在线检测
不翻车编辑部 · 更新于

Reality 的目标网站(3x-ui 里的「目标」和「SNI」)最好选和你服务器在同一个机房网络(同一个 ASN)里的网站,也就是大家说的“偷邻居”。2026 年 10 月 8 日我们在测试服务器(3x-ui v3.9.0、Xray v26.9.30)上把目标从 www.apple.com 换掉:用 Xray 官方的扫描器 RealiTLScanner 在本机扫服务器所在的 /24 网段,55 秒找到 4 个支持 TLS 1.3 和 H2 的邻居,用不翻车 REALITY 目标网站检测逐个检查,只有 2 个能用,其中 1 个和服务器同在 AS26666。
这篇有视频版:YouTube 上看《3x-ui 查找目标为什么有 2 个别用》。
为什么要换:Xray v26.9.30 起,目标网站含 apple、icloud、microsoft,或者以 .cn、.ru、.ir 结尾,启动日志会警告“这样选更容易被墙”。我们面板配置那篇推荐过 www.apple.com,这篇是更正。

Reality 的目标网站是干什么的?
Reality 让你的服务器装成另一个网站。没有你密钥的人连过来,服务器会把他原样转给目标网站,他看到的是那个网站的真证书。所以目标网站本身得“正常”。
REALITY 项目说明(README)写的最低标准:国外网站,支持 TLSv1.3 与 H2,域名非跳转用(主域名可能被用于跳转到 www)。加分项:IP 相近(更像,且延迟低)、Server Hello 后的握手消息一起加密、有 OCSP Stapling。Xray 的 REALITY 文档还写了:最佳实践是“偷”同一个 ASN 的证书。
3x-ui 的「查找目标」能直接用吗?
3x-ui v3.9.0 在「目标」旁边加了「扫描」和「查找目标」两个按钮:

点「查找目标」再点「扫描」,面板从服务器测一组网站,我们这台 10 个全部显示“可用”:

这 10 个是写在 3x-ui 源码里的默认列表(internal/web/service/reality_scan.go 的 defaultRealityScanCandidates,可以在面板设置里改),面板判断“可用”的条件是 TLS 1.3、H2、X25519 和证书有效。它不检查目标在不在 Cloudflare 上,也不管 Xray 的新警告。用REALITY 目标网站检测复查:


| 面板默认候选 | 我们的工具 |
|---|---|
| www.cloudflare.com | 不建议用:在 Cloudflare 上 |
| www.microsoft.com | 有提醒:触发 Xray 被墙警告 |
| dl.google.com | 有提醒:根路径跳到 www.google.com(下载域名,可以用) |
| 其余 7 个 | 合格,但没有一个和我们的服务器在同一个网络 |
更大的问题是:用 3x-ui 的人点开,默认都是这 10 个。
我们原来用的 www.apple.com 也查一下,最低标准全部合格,但有一项黄色提醒:

怎么找邻居网站:RealiTLScanner
Xray 官方的扫描器 RealiTLScanner 会连一段 IP 的 443 端口,把支持 TLS 1.3 和 H2 的网站和它们的证书域名列出来。说明里专门写了:建议在自己电脑上运行,在云服务器上扫可能让服务器被标记。

Windows 在 Releases 下载 RealiTLScanner-windows-64.exe(v0.2.3):

在下载目录打开命令行,运行(把 IP 换成你服务器 IP 的前三段):
RealiTLScanner-windows-64.exe -addr 你的IP前三段.0/24 -thread 20 -timeout 5
-addr x.x.x.0/24:扫和你服务器同一段的 256 个地址-thread 20:同时扫 20 个-timeout 5:每个最多等 5 秒
结果会同时存到同目录的 out.csv。我们在 Mac 上扫测试服务器所在网段,55 秒找到 4 个(邻居域名中间打了码,原因见下文):
./RealiTLScanner -addr 147.125.241.0/24 -thread 20 -timeout 5
feasible=true ip=147.125.241.10 tls="TLS 1.3" alpn=h2 cert-domain=gem************.com
feasible=true ip=147.125.241.15 tls="TLS 1.3" alpn=h2 cert-domain=m.an**.fun
feasible=true ip=147.125.241.12 tls="TLS 1.3" alpn=h2 cert-domain=mail.yu**.pu******.com
feasible=true ip=147.125.241.21 tls="TLS 1.3" alpn=h2 cert-domain=meet.hi******.online
msg="Scanning completed" elapsed=55.0347695s
(只保留了关键字段,原始输出每行还有曲线、证书长度、签发机构等。)
扫出来的邻居,逐个检查
扫描器是直接连 IP 扫到证书的,这个域名平时解析到哪、能不能直接用,还得一个个查。在检测工具里填域名,再填你的服务器 IP:
| 邻居 | 检测结果 |
|---|---|
| 1 | 不建议用:扫描器连的是 IP,但它的域名解析到 Cloudflare |
| 2 | 不建议用:域名连不上 |
| 3 | 可以用,而且和我们的服务器同在 AS26666,IP 就在隔壁 |
| 4 | 可以用;看名字是一台邮件服务器 |



我们选了第 3 个。邻居的域名我们打了码:你服务器的邻居和我们的不一样,照抄我们的没用(ASN 对不上),用的人一多,这个小网站反而显眼。
改进 3x-ui
入站 → 编辑 → 安全选项卡:
- 目标改成
域名:443。 - SNI 把 www.apple.com 删掉,填同一个域名(要在证书包含的域名里)。

- 点目标旁边的「扫描」,面板从服务器再测一次。我们这次显示可用:TLS 1.3、h2、X25519,证书就是这个域名。

- 保存。
改完:客户端一定要更新订阅
我们先用没更新的旧配置试了一下(SNI 还是 www.apple.com),连不上:
~ % curl -x socks5h://127.0.0.1:10808 -o /dev/null -w "%{http_code}\n" https://www.google.com
000
curl: (35) Recv failure: Connection reset by peer
客户端日志:
… [x509: "meet.hi******.online","YE2","Root YE","ISRG Root X2" certificates do not meet pinning requirements]
服务器把旧 SNI 当成了外人,转给了邻居网站,客户端收到的是邻居的真证书。更新订阅以后,Google 返回 200。
面板首页「日志」里,改之前每次 Xray 启动都有那条被墙警告,改之后只剩一行 core: Xray 26.9.30 started:

两点提醒
- 用的人越多越显眼。 网上流传的推荐列表、面板的默认列表都别直接照抄,自己扫邻居。
- 邻居网站会变。 它哪天关了、换了证书,你的节点也会突然连不上。遇到这种情况,先用检测工具再查一次目标网站。想在服务器上复核,用 Xray 自带的
xray tls ping(3x-ui 装的 Xray 在/usr/local/x-ui/bin/下):
root@vps:~# /usr/local/x-ui/bin/xray-linux-amd64 tls ping meet.hi******.online
TLS Version: TLS 1.3
TLS Post-Quantum key exchange: false (X25519)
Certificate chain's total length: 3401 (certs count: 4)
Cert's allowed domains: [meet.hi******.online]
改完连不上,按节点超时排查一项项查。
常见问题
Reality 的 SNI 填什么好?
填和你服务器同一个机房网络(同 ASN)里、支持 TLS 1.3 和 H2、不跳转的国外网站。用 RealiTLScanner 在自己电脑上扫服务器所在的 /24 网段找候选,再用REALITY 目标网站检测逐个检查。
Reality 目标能用 www.apple.com、www.microsoft.com 吗?
能连,但 Xray v26.9.30 起会在日志里警告“更容易被墙”,规则写在 Xray-core 源码 infra/conf/transport_security.go 里,含 apple、icloud、microsoft 或以 .cn、.ru、.ir 结尾的都会触发。
3x-ui 查找目标显示可用,就能用吗?
不一定。面板只查 TLS 1.3、H2、X25519 和证书有效。我们实测它的默认候选里,www.cloudflare.com 在 Cloudflare 上,www.microsoft.com 会触发 Xray 的警告,而且所有人默认都是同一组 10 个。
RealiTLScanner 可以在 VPS 上跑吗?
官方说明建议在自己电脑上运行,在云服务器上扫可能让服务器被标记。
换了目标网站以后连不上?
客户端要更新订阅。没更新的话,SNI 还是旧的,客户端会报 x509 证书错误。
资料来源
- REALITY README:目标网站最低标准和加分项(github.com/XTLS/REALITY,2026-10-08 查阅)
- Xray 文档 REALITY:最佳实践是偷同 ASN 的证书;目标用 Cloudflare 这类 CDN 可能被偷跑流量(XTLS/Xray-docs-next)
- Xray-core v26.9.30 源码
infra/conf/transport_security.go:目标网站警告的触发条件 - 3x-ui 源码
internal/web/service/reality_scan.go:查找目标的默认候选和“可用”判断条件(MHSanaei/3x-ui,2026-10-08) - RealiTLScanner v0.2.3 README 和 Releases(github.com/XTLS/RealiTLScanner)
- 扫描、检测、面板和日志:2026-10-08 测试服务器(3x-ui v3.9.0、Xray v26.9.30)和 Mac 上的 RealiTLScanner v0.2.3、Xray v26.9.30 实测;服务器 IP 末段和邻居域名已打码
