连接排障 · Clash 技术博客

Clash 连不上 ChatGPT 或 Claude?登录与超时排查

登录循环、Access Denied、超时与长回复中断要从对应请求找原因。固定节点并查看实际出口,分别核对浏览器会话、服务限制与持续连接;应用没有 Connections 记录时检查代理接管。

  • Claude
  • ChatGPT
  • Access Denied
本文目录

ChatGPT 或 Claude 的首页能打开,登录或发消息却失败时,重试首页不能回答问题。要把失败动作的状态码与 Clash 记录对上,区分没进入代理、走错出口和已到服务却被拒绝。测试期间固定节点,再分别检查登录会话与持续回复,别让出口变化干扰判断。

超时、403 和回复中断分别代表什么?

记录错误原文、出现时间和刚才的操作,分别确认是登录失败、页面组件空白,还是回复中断。不要把几个现象记成同一个“连不上”,它们可能来自不同请求。

错误提示与排查方向

看到的现象优先判断
页面框架出现,图标、按钮或登录组件空白静态资源域名可能走了不同规则或出口
ERR_CONNECTION_TIMED_OUT / 请求超时网络路径、节点或长连接失败
401 / Unauthorized登录状态、令牌或 API 凭据
403 / Access Denied服务策略、账号状态或请求被拒绝
429 / Too Many Requests频率或额度限制,不是节点延迟
500 / 502 / 503服务端或上游临时异常,先看官方状态
回复写到一半停止流式连接、节点切换或网络抖动

页面框架出现、内容却没加载时,查看脚本、图片和登录组件的请求;这些资源可能来自不同的静态资源域名。登录跳转、文件上传和模型流式回复也会另发请求。在 Connections 中逐项核对资源与模型请求是否使用同一稳定出口,不要拿另一个网页代替测试。

固定节点,观察失败请求的出口

建立可复现的测试

  1. 在 Proxies 固定一条节点

    暂时不要使用 url-test 或 fallback,避免测试过程中出口变化。

  2. 保持 Rule 模式

    打开 Connections,准备观察失败动作对应的域名与规则。

  3. 只重复一个动作

    例如点击登录、发送同一句短消息,或上传同一个小文件。

  4. 保存页面状态和 Clash 结果

    记下 HTTP 状态、连接出口、耗时与日志错误。

如果失败动作在 Connections 中完全找不到,浏览器或桌面应用可能没有经过当前 Clash。若记录出现但命中 DIRECT,检查规则;已经走到固定节点却 timeout,才值得换节点或网络做对照。

登录循环:检查浏览器会话与认证请求

登录循环常表现为输入账号后又回到登录页,或者验证码完成却没有进入对话。此时先在同一浏览器的无痕窗口重试,排除过期会话和扩展干扰;不要一上来清掉所有网站数据,那会同时退出其他账号。

观察点击登录后的请求:认证跳转若没有进入 Clash,处理浏览器代理;请求进入后返回 401 或 403,则网络已经到达服务,继续检查账号、登录方式和服务提示。频繁换地区或出口还可能让一次登录跨越多个会话环境,测试期间应保持固定节点。

403 Access Denied:账号、地区与服务限制

明确的 403 或 Access Denied 通常说明请求已到达网站,但被拒绝。检查页面原因、账号状态、地区限制、服务支持范围,以及当前出口是否符合服务条款。这类拒绝与 DNS 超时、端口未开放的原因不同。

Global 模式最多用于判断某条规则是否把请求送错了出口,不能把服务端拒绝变成网络成功。若 Rule 和 Global 都在同一固定节点上返回同一个 403,应停止调整 Clash,转而处理账号或服务政策。

长回复中断时,比较节点与接入网络

模型回复会持续返回数据,节点完成一次延迟探测,不代表它能稳定维持几十秒的连接。测试时将策略组改为 select(手动选择),固定一条节点,用可重复的长提问观察中断时 Connections 的结束原因。

同一固定节点在家庭网络和手机热点上各试一次。若只在其中一个网络中断,重点检查这个网络和 DNS;若两个网络都在相近位置中断,换另一条协议或节点对照。不要用一次成功就下结论,至少重复两三次相同请求。

网页正常但桌面应用或 API 无法访问

浏览器通常遵循 Windows 或 macOS 系统代理,终端里的 curl、SDK 和部分桌面应用可能使用自己的网络设置。同一 API 请求在 Connections 中没有新记录时,先确认应用是否使用当前代理,而不是立刻换节点。

命令行工具可以按自身文档配置 HTTP_PROXY、HTTPS_PROXY;需要统一接管多个不读取系统代理的应用时,再考虑 TUN。API 返回 401 代表请求已经到服务端,应该核对 API key 和请求格式,而不是继续扩大代理范围。

macOS / Linux 临时对照,先把 7890 换成客户端实际端口
CLASH_PORT=7890
export HTTP_PROXY="http://127.0.0.1:${CLASH_PORT}"
export HTTPS_PROXY="http://127.0.0.1:${CLASH_PORT}"
export NO_PROXY="localhost,127.0.0.1,::1"
curl -I https://example.com
Windows PowerShell 临时对照,7890 同样是端口占位值
$CLASH_PORT = 7890
$env:HTTP_PROXY = "http://127.0.0.1:$CLASH_PORT"
$env:HTTPS_PROXY = "http://127.0.0.1:$CLASH_PORT"
$env:NO_PROXY = "localhost,127.0.0.1,::1"
curl.exe -I https://example.com

消息完整返回后,恢复自动节点选择

回到固定节点和 Rule 模式,完成一次登录并发送一条短消息;原问题是长回复中断时,也要重复同一长请求。Connections 应能看到相关请求,页面不再返回原来的错误,回复也能完整结束。

短消息与原来失败的请求都能完整返回后,再恢复 url-test 或 fallback。若自动组恢复后问题重现,就有明确的对照:账号和规则没有变化,变化的是出口选择。

参考资料