【踩坑实录】3x-ui 的 Reality 节点突然全部 timeout,最后发现是 Microsoft 伪装站的 TLS 握手出了问题

zmxj123 2026-07-12 20:16 1

最近遇到一个挺离谱的问题,记录一下排查过程,给以后踩坑的人参考。


我的环境大概是:



  • RackNerd VPS

  • 3x-ui

  • VLESS + TCP + REALITY

  • Flow:xtls-rprx-vision

  • Clash Verge

  • Cloudflare 只做 DNS 解析,没有开橙云

  • REALITY 的目标地址原来是 www.microsoft.com:443


这个节点之前一直正常,后来没有主动修改配置,突然就在 Clash Verge 里测速全部显示 timeout


一开始以为是域名、Cloudflare、防火墙或者 RackNerd 的端口被封了,但逐项检查后发现都正常:



  • x-ui 服务是 active

  • Xray 正常监听节点端口

  • 域名解析到了正确的 VPS IP

  • Windows 上测试 TCP 端口可以正常连接

  • 关闭 Clash TUN 后,域名也能正常解析到真实 IP


后来在服务器上抓包:


sudo tcpdump -ni any -nn 'tcp port 节点端口'

发现客户端确实连到了服务器,TCP 三次握手也成功了。客户端发送了五六百字节的数据后,服务器马上主动发 FIN 断开连接。


简单说就是:



网络是通的,但 Xray 收到 REALITY 握手后,主动把连接拒绝了。



这时基本可以排除 DNS、Cloudflare、防火墙和端口问题,重点转向 REALITY 握手。


我临时把 Xray 日志等级改成 debug,并给 REALITY 开启 show: true,最后看到关键日志:


Certificate: 8273
isHandshakeComplete.Load(): false
REALITY: processed invalid connection
handshake did not complete successfully

而且日志里显示的客户端 Short ID 和服务端配置是匹配的,所以不是 Short ID 写错。


最后定位到,问题出在 REALITY 的伪装目标 www.microsoft.com:443


Microsoft 返回的 TLS Certificate 握手记录达到了 8273 字节,REALITY 在处理这类较大的证书记录时握手无法完成。普通的:


xray tls ping www.microsoft.com:443

可能仍然显示握手成功,因为普通 TLS 测试和 REALITY 服务端实际走的处理路径不完全一样,所以这个测试不能完全排除问题。


我的处理方式是把 REALITY 目标换掉。


在 3x-ui 入站设置里,将:


Target / Dest:
www.microsoft.com:443

Server Names:
www.microsoft.com

改为:


Target / Dest:
www.bing.com:443

Server Names:
www.bing.com

UUID、公钥、私钥、Short ID、端口和 xtls-rprx-vision 都不用改。


改之前可以先测试一下:


/usr/local/x-ui/bin/xray-linux-amd64 tls ping www.bing.com:443

我的测试结果是带 SNI 时握手成功。无 SNI 握手失败没有关系,因为 REALITY 客户端本来就会发送 www.bing.com 作为 SNI。


这里还有第二个坑。


我在 3x-ui 面板里保存了很多次,数据库里已经变成了 Bing,但 Xray 实际运行的配置文件仍然是 Microsoft。


检查数据库后看到:


数据库 target/dest = www.bing.com:443
数据库 serverNames = ['www.bing.com']

但检查实际配置:


/usr/local/x-ui/bin/config.json

里面还是原来的:


www.microsoft.com:443

说明面板确实保存进数据库了,但 Xray 没有重新生成配置或者重新加载。


最后手动重启:


sudo systemctl restart x-ui

重启后 Xray PID 发生变化,实际配置也终于变成:


target = www.bing.com:443
serverNames = ['www.bing.com']

节点端口也正常监听。


最后还需要在 Clash Verge 里更新一次订阅,并确认节点配置中的:


servername: www.bing.com

或者:


sni: www.bing.com

已经同步更新,不能还保留 www.microsoft.com


总结一下,这次实际上有两个问题:



  1. www.microsoft.com 返回的 TLS Certificate 记录过大,导致 REALITY 握手无法完成。

  2. 3x-ui 面板虽然保存了新配置,但运行中的 Xray 没有自动重新加载,必须手动重启 x-ui

最新回复 (4)
  • JackRiver19 07-12 20:17
    1


    • RackNerd VPS




    • RackNerd VPS也可以做节点嘛 不是他们家的ip很差 线路也一般嘛 但是价格确实便宜

  • Magentic 07-12 20:21
    2


    1. TLS Certificate 记录过大



    是的,月中的时候发现了,微软的TLS Certificate头过大导致的,好像是微软换证书了

  • zmxj123 楼主 07-12 21:00
    3

    这个ip已经被谷歌送中了,谷歌全家桶都访问不了,发工单客服说没办法,被封了不是我们的锅。现在纯纯用来反代ChatGPT了

  • AI 打工人 07-12 21:01
    4

    之前也遇到过,AI排查了半天,最后发现把www.microsoft.com换成其他的就能用了

* 帖子来源Linux.do
返回