文章背景图

xray自建的机场节点挂掉,排查与修复

2026-06-28
21
- 字
- 分钟
|

省流版:伪装域名不能再用www.microsoft.com,改用www.apple.com后修复

用香港的云服务器搭了个科学上网的机场节点,偶尔在付费节点不好使的时候用来应急(当然是用来访问外网的学术资源)。

今天发现这个稳定运行了半年多的节点挂掉了,于是开始排查修复。

现象

节点挂掉的表现为多个连接这个节点的clash客户端,在测速时显示“timeout”,也就无法通过其科学上网。

排查过程

1. 排除后台服务挂掉

有可能是因为某些因素,xray的后台服务挂掉了。于是用systemctl status xray查看服务状态,发现正常运行,然后用systemctl restart xray指令重启服务,依旧连不通。

排除。

2. 排除服务器IP被墙

机场节点被GFW发现然后封禁IP,是机场节点挂掉最常见的原因。

而我这个节点用的非常少,而且用的reality这种非常隐蔽的协议,出现这种情况的可能性比较小,但还是检查了一下。

因为服务器有两个IP,我日常远程连接服务器用的和机场用的不是同一个,于是我把机场IP换成了我日常用的IP(日常IP保证可用),发现情况不变。

排除。

3. 排除服务器IP变动

因为前段时间服务器发生过热迁移,有可能把机场对应的IP给改了(服务器商家偶尔会这么干),用ifconfig和ip addr指令看,发现IP没动。

排除。

4. 没招了

目前情况已经超出了我的知识范围,只能看看日志能不能发现点端倪。用journalctl -u xray -f指令查看xray的日志,发现全是握手失败:

13:47:19.861489 [Info] transport/internet/tcp: REALITY: processed invalid connection from 123.123.123.123:14532: handshake did not complete successfully

说明流量送到了服务器,端口也是通的,只能是客户端发送的请求不被服务端接受,这下可能性就太多了。

再接着分析

5. 问问AI

GPT告诉我可能是因为我这个xray用的VLESS Reality协议配置有点旧了,让我加个Vision flow。也就是分别在服务端和客户端的配置文件里加一行关于Vision flow的配置:

"flow": "xtls-rprx-vision"

重启服务再测试,依旧没好。

6. 关键转折-问题定位

在github中发现了这个issue:REALITY fails with www.microsoft.com target when Certificate TLS record is 8273 bytes

意思就是之前可以用www.microsoft.com作为Reality的伪装,现在不可用了,微软给自己的网站做了一些改动。

简单补充一下这里涉及的Reality协议原理:把原本翻墙的流量伪装成要访问dest网址的流量。客户端在连接的时候会真实地与这个dest网址进行数据交换,之前我把流量伪装成要访问微软官网的,结果微软给自家网站加了限制,所以节点就挂了。

7. 成功解决

把Xray配置文件中的dest网址从www.microsoft.com改成了www.bing.com,发现还是不行,应该是微软全家都加了限制。

最后把dest设为www.apple.com:

"dest": "www.apple.com:443",
"serverNames": [
            "www.apple.com"
          ],

之后同步修改clash配置。

测速,成功!

原创

xray自建的机场节点挂掉,排查与修复

本文链接: xray自建的机场节点挂掉,排查与修复

本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。

评论交流

文章目录