先判断:超时发生在节点、规则还是本机接管
ChatGPT 在 Clash 中反复出现连接超时、页面一直转圈或登录页面加载不完整,不能直接等同于“节点失效”。一次访问通常要经过域名解析、规则匹配、本地代理端口、远端节点连接、TLS 握手以及网页接口请求等多个环节。任何一层出现问题,都可能在浏览器里表现为相同的超时提示。
先把问题缩小到一个明确场景:是 chatgpt.com 页面打不开,还是页面能打开但登录失败;是所有节点都超时,还是某个策略组超时;是浏览器和桌面客户端都失败,还是只有 TUN 模式开启后失败。不同现象对应的排查顺序并不相同。
| 现象 | 优先怀疑对象 | 第一步操作 |
|---|---|---|
| 所有代理网站都打不开 | 本地端口、节点连接或系统代理 | 检查 Clash 是否运行,以及代理端口是否监听 |
| 普通网站正常,ChatGPT 超时 | 规则组、域名覆盖范围、DNS 或线路质量 | 查看 ChatGPT 请求命中的规则与实际策略 |
| 首页能开,登录或对话超时 | 相关 OpenAI 域名未走同一代理、Cookie 或 TLS 链路异常 | 清理站点数据并检查失败请求对应的域名 |
| 系统代理正常,开启 TUN 后失败 | DNS 劫持、路由冲突、MTU 或虚拟网卡 | 关闭 TUN 做对照测试 |
| 只有一个节点超时 | 节点出口、线路拥塞或远端握手失败 | 固定选择另一个节点重新测试 |
检查节点:不要只看测速延迟
Clash 客户端显示的延迟通常来自对测试地址的一次探测,并不代表 ChatGPT 实际连接一定成功。节点可能能够访问测速地址,却在连接目标站点时出现 TLS 握手超时、连接被重置或出口地区不适配等问题。因此,看到“延迟 80ms”并不能证明这个节点适合长期访问 ChatGPT。
进入客户端的「代理」或「策略组」页面,先找到负责外网流量的主策略组,例如 PROXY、Proxy 或配置文件中定义的其他名称。不要只切换最底层节点,还要确认 ChatGPT 请求最终经过的是哪个组。若主组当前选择的是另一个自动组,手动点击节点可能只改变了子组,实际出口仍由上层策略决定。
- 选择两个或三个不同线路的节点,分别打开 ChatGPT,不要在同一个页面里连续切换后立即下结论。
- 优先比较连接稳定性、页面完整加载时间和连续发送消息的成功率,而不是只比较一次测速结果。
- 若
url-test频繁切换节点,可暂时改为select手动选择,避免测试抖动影响登录会话。 - 若所有节点都在同一时间超时,问题更可能位于规则、DNS、本地端口或当前网络,而不是单个节点。
proxy-groups:
- name: ChatGPT
type: select
proxies:
- 香港-01
- 新加坡-01
- 日本-01
- DIRECT
上面的示例只是用于定位问题。将 ChatGPT 单独放入测试组,可以观察它是否确实使用预期节点;排查完成后,再决定是否合并回主代理组。不要把 DIRECT 当成修复方案:如果当前网络无法直连目标站点,选择直连只会让超时更加稳定地重现。
核对系统代理:浏览器是否真的进入 Clash
系统代理模式要求应用主动读取操作系统的代理设置。Clash 内核常见的入口是 mixed-port: 7890,也有配置使用 port 或 socks-port。端口号不是固定值,必须以当前配置和客户端设置页面显示的值为准。最常见的错误是客户端监听在 7890,但系统代理仍指向旧的 7897,或者客户端只开启了 SOCKS 端口,系统代理却按照 HTTP 代理使用。
在 Clash 客户端中先确认配置已经启动,再检查「设置」→「系统代理」是否处于开启状态。Windows 11 可进入「设置」→「网络和 Internet」→「代理」查看手动代理;macOS 可进入「系统设置」→「网络」→当前网络→「详细信息」→「代理」。如果系统代理开关自动关闭,通常需要检查客户端权限、配置是否加载成功,或者是否有其他代理软件反复覆盖系统设置。
也可以从终端测试本地端口是否可用。以下命令只用于验证代理入口,端口请替换成客户端实际值:
curl -I -x http://127.0.0.1:7890 https://chatgpt.com
curl -I -x http://127.0.0.1:7890 https://openai.com
- 如果提示无法连接到
127.0.0.1:7890,问题在本地监听端口或客户端运行状态,还没有到节点排查阶段。 - 如果能够建立连接但返回 403、重定向或其他 HTTP 状态码,至少说明请求已经进入代理链路,不能再单纯判断为端口未生效。
- 如果命令长时间没有返回,继续查看 Clash 日志,重点关注 DNS、连接超时、TLS 和策略组名称。
浏览器还可能受到扩展、独立代理设置或安全软件影响。排查时建议暂时停用代理扩展,使用无痕窗口,并确认浏览器没有配置与系统代理不同的手动代理。一个浏览器能访问而另一个浏览器超时,通常应先比较两者的代理设置和扩展,而不是立即更换节点。
动手操作:用日志确认 ChatGPT 请求走了哪里
这是整个排查过程中最有价值的一步。打开 Clash 的「日志」页面,必要时在「设置」→「Clash 设置」中将日志等级临时调整为 debug。清空旧日志后,只打开一个 ChatGPT 页面并等待一次失败,记录失败发生的时间、当前策略组和节点名称。调试结束后应恢复为 info,避免日志持续增长。
- 关闭其他持续联网的下载、同步和视频程序,减少无关连接。
- 固定一个节点和一个策略组,不要在复现过程中频繁切换。
- 清理 ChatGPT 站点数据,使用无痕窗口重新访问。
- 在日志中搜索
chatgpt、openai、auth或失败时间附近的连接记录。 - 观察每条记录的规则、策略组和最终节点,确认是否出现
DIRECT或REJECT。
time="2026-08-22T15:20:11.204+08:00" level=info msg="[TCP] 127.0.0.1:53218 --> chatgpt.com:443 match DomainSuffix(chatgpt.com) using ChatGPT[SG-01]"
如果日志显示 using DIRECT,说明规则把请求判定为直连;如果显示 using REJECT,说明配置主动拒绝了请求。若日志里完全没有对应域名,可能是浏览器没有使用 Clash,或者请求没有进入当前内核。若出现 dial tcp: i/o timeout,重点检查节点和远端线路;若出现 DNS 查询失败,则先处理 DNS,而不是反复更换策略组。
补齐相关域名规则
ChatGPT 页面不一定只请求一个域名。页面、登录、静态资源、接口和安全验证可能涉及不同的主机名。仅把 chatgpt.com 写入代理规则,不能保证所有相关请求都使用同一出口。排查时应以浏览器开发者工具的失败请求和 Clash 日志为准,记录实际出现的域名,再决定规则范围。
rules:
- DOMAIN-SUFFIX,chatgpt.com,ChatGPT
- DOMAIN-SUFFIX,openai.com,ChatGPT
- MATCH,PROXY
示例中的 DOMAIN-SUFFIX 只表示按域名后缀匹配,策略组名称必须与配置中真实存在的组一致。规则顺序也很重要:如果更早的 GEOIP,CN,DIRECT、某个拒绝规则或其他规则集已经命中,后面的代理规则不会再次接管。修改后必须重新加载配置,并在日志中确认新规则确实生效。
处理 DNS、TLS 与连接超时
DNS 异常是 ChatGPT 超时中很容易被忽略的一类原因。浏览器可能先通过系统 DNS 解析到一个不可达地址,随后 Clash 虽然选择了正确策略组,却在建立连接前就失败。使用 Fake-IP、增强模式或 TUN 时,DNS 配置还会与系统解析、浏览器安全 DNS 和其他网络软件共同影响结果。
先查看日志中是否出现 dns、no such host、server misbehaving 或解析耗时异常。可以暂时关闭浏览器的“安全 DNS”进行对照,也可以暂时关闭 Fake-IP,使用更容易观察的 Redir-Host 模式测试。不要在多个配置项中同时更换十几个 DNS 地址,否则很难判断究竟是哪项修改产生了影响。
dns:
enable: true
enhanced-mode: fake-ip
nameserver:
- https://1.1.1.1/dns-query
- https://dns.google/dns-query
fallback:
- https://1.0.0.1/dns-query
这段配置仅作为结构示例,实际可用性取决于当前网络、内核版本和配置来源。若使用远程 DNS over HTTPS,DNS 请求本身也需要能够建立连接;在受限网络中,直接填写一个无法访问的 DoH 地址会让解析阶段变慢。修改 DNS 后应重新加载配置,并清理已有 DNS 缓存,再观察是否仍然超时。
如果日志显示 TCP 已连接但 TLS 握手迟迟没有完成,可能与节点出口、系统时间、证书拦截或线路 MTU 有关。先确认系统日期和时区正确,暂时关闭会检查 HTTPS 流量的安全软件,并用另一个节点测试。不要随意关闭证书校验;类似 skip-cert-verify: true 会降低安全性,不能作为常规修复手段。
TUN 模式:确认路由、虚拟网卡与 MTU
如果系统代理模式可以访问 ChatGPT,而开启 TUN 后反复超时,优先怀疑 TUN 的路由和 DNS 接管。TUN 会在 IP 层处理更多应用流量,覆盖范围更广,但也更容易与企业 VPN、虚拟机网卡、Docker、WireGuard 或其他代理软件发生冲突。
- 先关闭其他 VPN、代理客户端和虚拟网卡,只保留一个 Clash TUN 实例。
- 以管理员权限或系统要求的授权方式启动 TUN,确认虚拟网卡已经创建。
- 检查 TUN 的 DNS 劫持设置是否与系统 DNS、浏览器安全 DNS 重复接管。
- 如果网页能打开但登录、验证码或长连接经常中断,再测试较低的 MTU。
- 关闭 TUN 后重新测试;若问题消失,说明节点本身未必有故障。
MTU 不宜盲目修改。部分网络使用默认的 1500 没有问题,经过隧道、PPPoE 或多层封装后可能需要 1400、1380 甚至更低的值。可以一次只调整一个参数,从 1400 附近做对照测试;如果没有改善,应恢复原值。长期使用前还要检查其他网站、视频和下载是否受到影响,因为过低的 MTU 可能增加分片或降低传输效率。
修复后按顺序恢复,避免问题再次出现
完成测试后,不建议一次性恢复所有复杂功能。先固定一个确认可用的节点,使用系统代理访问 ChatGPT;确认页面、登录和发送消息都正常后,再恢复自动策略组。随后恢复规则集、DNS 增强模式和 TUN,每恢复一项就进行一次短测试。这样即使问题再次出现,也能准确知道是哪个改动引起的。
| 恢复顺序 | 建议状态 | 观察重点 |
|---|---|---|
| 第一步 | 固定可用节点 + 系统代理 | 页面、登录和对话是否正常 |
| 第二步 | 恢复主策略组和规则 | 日志中的命中规则与实际出口 |
| 第三步 | 恢复 DNS 增强模式 | 解析速度、域名结果和新连接稳定性 |
| 第四步 | 开启 TUN | 虚拟网卡、路由、UDP 和长连接 |
如果最终只能通过某个节点访问,说明线路质量或出口兼容性仍然是主要因素;如果所有节点都正常但自动组偶尔超时,应降低策略组切换频率,或改用手动选择。若只有 TUN 模式异常,则保留系统代理作为日常方案,除非确实需要接管不读取系统代理的应用。
遇到类似问题时,最有效的信息不是一句“ChatGPT 不能用”,而是完整记录:操作系统、客户端名称、内核名称与版本、是否开启 TUN、使用的本地端口、策略组名称、节点地区、失败时间以及对应日志。按照“本地端口 → 系统代理 → 规则命中 → 节点连接 → DNS/TLS → TUN 路由”的顺序排查,通常比盲目更新订阅或反复切换节点更快找到原因。