"Cursor 代理超时怎么排查:从 Network 诊断到 HTTP/1.1"
"Cursor 代理超时、连接失败或 ERR_HTTP2,先跑 Settings 里的 Network 诊断,再查 http.proxy、proxySupport 与 HTTP 兼容模式,按 DNS/证书/重启顺序逐项排除。"

cursor 代理超时怎么排查,最短路径是:打开 Settings → Network → Run Diagnostics,看哪几项 FAILED,再对照下面四块改配置——显式代理、HTTP/2 兼容、DNS/证书、完全退出重启。多数国内场景是 Clash/VPN 端口没写进 Cursor,或 3.9 之后客户端不再走系统代理导致「浏览器能上、Cursor 超时」。
第一步:Run Diagnostics 看失败项
Network 诊断会逐项测 DNS、SSL、API、Chat、Agent、Cursor Tab 等。社区里常见两类结果:
| 诊断模式 | 典型 FAILED 项 | 更可能的原因 |
|---|---|---|
| 大面积 ENOTFOUND / ERR_NAME_NOT_RESOLVED | DNS、API、Chat、Agent | DNS 解析不到 *.cursor.sh,或公司内网 DNS 截断 CNAME |
| SSL/API 偶发失败,Chat 超时 | SSL、Agent Endpoint | 代理未生效、HTTP/2 与中间盒不兼容 |
官方论坛维护人员指出:若 SSL、API、Chat、Agent 已是 Success,剩下 DNS / Cursor Tab 等仍显示 FAILED,在「仅代理出网、DNS 由代理侧解析」的网络里可能是诊断探针的误报,不必为 cosmetic 项反复改系统 DNS。但若 Chat/Agent 也失败,就必须往下查。
诊断前建议记录:失败项名称、报错片段(如 ERR_HTTP2_PROTOCOL_ERROR、ConnectError: [unavailable])、当前 Cursor 版本。后续和 账号掉线自查清单 里的网络步骤可以串起来用——掉线有时是代理断了,有时是账号/额度,别混为一谈。
http.proxySupport 默认 override:系统代理常被忽略
从 Cursor 3.9 起,AI 相关流量走新的传输层,不再自动继承 macOS/Windows 系统代理或 PAC/WPAD。浏览器走系统代理所以网页正常,Cursor 直连却被墙或公司防火墙拦住,表现就是代理超时、Chat 一直转圈。
官方在论坛回复里给出的可靠写法是在 settings.json 里显式指定代理,并把 http.proxySupport 设为 override(默认值就是 override,含义是:用你写的 http.proxy,不要指望系统代理):
{
"http.proxy": "http://127.0.0.1:7890",
"http.proxySupport": "override",
"cursor.general.disableHttp2": true
}
端口换成你 Clash、Surge、V2RayN 等本地监听端口。若用环境变量,可在启动前设置 HTTP_PROXY / HTTPS_PROXY 为同一地址;但从快捷方式启动时,环境变量有时传不进进程,写进 settings.json 更稳。
proxySupport 其他取值(如 on / off)在不同版本文档里表述不一;排障时以「显式 http.proxy + override」为准,改完必须完全退出 Cursor 进程再开,Reload Window 不够。
Clash / VPN:把端口写对,比换节点更重要
国内开发者多数用 Clash 系:7890(HTTP)、7891(SOCKS)是常见默认值,但以你面板「端口设置」为准。Cursor 的 http.proxy 填 HTTP 代理地址,格式 http://127.0.0.1:端口,不要填成 SOCKS 除非文档明确支持。
排查清单:
- 代理软件已开启且规则里
cursor.sh、cursor.com走代理节点(或全局模式)。 - 终端执行
curl -x http://127.0.0.1:7890 -I https://api2.cursor.sh(端口替换)能返回头信息。 - 公司 VPN 与 Clash 叠用时,确认 Cursor 指向实际出网的那一层代理。
- TUN 模式有时和 Electron 应用抢路由;若 TUN 开着仍超时,试关闭 TUN、仅保留 HTTP 端口给 Cursor。
Agent 长时间卡在 planning、却不报错,也可能是代理半通;可对照 planning next moves 卡住 里的网络分流步骤。
ERR_HTTP2 与 HTTP/1.1 兼容模式
报错里出现 ERR_HTTP2、HTTP2_PROTOCOL_ERROR,或 SSL 握手后立刻断连,常见于中间代理、企业 SSL inspection、部分机场节点对 HTTP/2 支持不完整。
处理顺序:
- Settings → Network → HTTP Compatibility Mode → HTTP/1.1(界面开关)。
- 或在
settings.json加"cursor.general.disableHttp2": true(与论坛推荐配置一致)。 - 两项等效目都是强制 HTTP/1.1,改一项即可,不必重复叠加强制。
社区反馈:3.8 正常、3.9+ 超时,回退旧版有时能暂时恢复,根因仍多是代理/DNS;长期应把显式 http.proxy 和 HTTP/1.1 配齐,而不是一直钉死在旧版本。
DNS 与证书:ENOTFOUND 与 SSL 报错分开治
DNS(ENOTFOUND / ERR_NAME_NOT_RESOLVED)
- 把系统 DNS 改为公共解析(如 Cloudflare
1.1.1.1、Quad9149.112.112.112)。论坛维护人员提到 Google8.8.8.8在个别环境下可能解析到 SSL 不匹配的端点,可优先试前两者。 - 公司内网 DNS 若解析不了
api2.cursor.sh、agent.api5.cursor.sh等长 CNAME 链,需要网管放行*.cursor.sh或改用可解析的外网 DNS。 - 关闭 iCloud Private Relay、部分「安全 DNS」插件后再测。
证书(SSL / 证书无效)
- 企业 HTTPS 解密代理会替换证书,需在系统钥匙串信任公司根证书,否则 Cursor 报 SSL 错误。
- 不要用自签 MITM 工具拦截 Cursor 流量却不装根证书。
- 日期时间错误会导致证书校验失败,先确认系统时钟正确。
若 DNS 在浏览器里能解析、诊断里仍 ENOTFOUND,且 Chat 已成功,按上一节说明可能是代理网络的诊断误报;若 Chat 也失败,优先 DNS + 显式代理。
改完配置后:完全退出再 Run Diagnostics
配置变更后按这个顺序验证:
- 完全退出 Cursor(macOS:Cmd+Q;Windows:托盘图标退出,不要只关窗口)。
- 确认代理进程仍在监听目标端口。
- 重新打开 Cursor,再跑 Run Diagnostics。
- 开一条 Chat 与一次 Agent,确认不只诊断通过、实际业务也通。
仍超时则导出 Network 诊断全文、在日志目录搜 ECONNREFUSED / ETIMEDOUT / 401,并对比 payment failed 是卡还是平台——支付通道正常不代表 AI API 路由正常,两类问题要分开查。
版本回退只作临时验证:若 3.8 正常、3.9+ 超时,说明与传输层/代理行为变更有关,长期仍应把 http.proxy 与 HTTP/1.1 配到位。企业环境还可对照官方 Network Configuration 域名放行列表,让网管一次性放通 *.cursor.sh 与相关 CDN,比逐个域名试错省时间。
常见问题
Clash 全局模式开了,Cursor 还是代理超时?
全局只保证流量进 Clash,不保证 Cursor 用了 Clash 端口。3.9 之后必须在 settings.json 写 http.proxy,并 http.proxySupport: "override",然后完全退出重启。
Run Diagnostics 里 DNS 失败但 Chat 能用,要管吗?
在「DNS 由代理侧解析、本机不做直连解析」的网络里,维护人员认为部分 FAILED 项可以是 cosmetic。以 Chat/Agent 真实可用为准;若业务也失败,再动 DNS 和 http.proxy。
网络修好了,仍然提示额度用尽或要付费怎么办?
那是订阅/用量层的问题,不是代理层。官方额度耗尽后会硬阻断高级模型;若你需要国内支付宝直付、且希望双池用尽后仍有 Auto 保底(约 5 分钟/次,相对官方硬阻断),可对照 按量额度与支付方案说明页 看当前是否上架套餐——以页面当前套餐为准,维护期间可能没有可购档位。
ERR_HTTP2 和 disableHttp2 要同时开 HTTP/1.1 模式吗?
目的相同,开一种即可。界面 HTTP Compatibility Mode 与 cursor.general.disableHttp2 任选其一,改完重启再测。
Windows 环境变量设了代理,诊断仍失败?
从快捷方式或开始菜单启动的 Cursor,有时读不到你在终端里 export 的 HTTP_PROXY。把同一地址写进 settings.json 的 http.proxy 后完全退出再开;或在启动脚本里显式带环境变量启动,二选一即可。