Cursor 企业网络代理配置:从 HTTP_PROXY 到证书导入的完整方案
"Cursor 官方企业网络配置文档,详细说明了环境变量、settings.json 和启动参数三种代理配置路径"
"Cursor 论坛用户反馈 HTTP/2 请求不走代理设置的问题及解决方案"
点击 Send,Cursor 的 Agent 面板弹出 Network error。明明全局代理开着,为什么还是连不上?
答案藏在 Electron v25+ 的网络栈里——Cursor 和 VS Code、操作系统各用一套代理配置,互不相通。这篇把企业网络代理配置从头捋一遍:HTTP_PROXY 环境变量、settings.json 代理配置、HTTP/2 协议兼容问题、SSL 证书导入,以及 Anygress 透明代理。Windows、Mac、WSL2 三种环境都覆盖。
为什么 Cursor 不继承系统代理?
Cursor 基于 Electron v25+ 构建。Electron 的网络栈和 Chrome 一样,不自动继承操作系统或父进程的代理设置。这和 VS Code 不同——VS Code 能读到系统代理,Cursor 却要用自己的一套配置。
更麻烦的是环境变量。你在终端里 export HTTP_PROXY=...,然后从 Dock 或桌面图标启动 Cursor,那个变量根本不会传过去。只有从同一个终端窗口启动 cursor 命令,变量才生效。
所以企业网络下最靠谱的方法是:直接改 Cursor 的 settings.json。
官方文档怎么说?
根据 Cursor 的 Network Configuration 文档,企业部署时有三种代理配置路径:
- 环境变量:
HTTP_PROXY、HTTPS_PROXY、NO_PROXY(仅终端启动有效) - settings.json:
http.proxy、http.proxySupport、http.proxyStrictSSL - 启动参数:
--proxy-server、--proxy-auto-detect、--disable-http2
三种方法各有适用场景,后面逐个展开。
HTTP_PROXY 环境变量配置
环境变量是最轻量的方法,但有个前提:Cursor 必须从配置过的终端启动。
Windows PowerShell
# 设置代理(带认证)
$env:HTTP_PROXY = "http://username:[email protected]:8080"
$env:HTTPS_PROXY = "http://username:[email protected]:8080"
# 本地地址不走代理
$env:NO_PROXY = "localhost,127.0.0.1,.internal.corp"
# 从同一个终端启动 Cursor
cursor
macOS / Linux
# Bash/Zsh
export HTTP_PROXY="http://username:[email protected]:8080"
export HTTPS_PROXY="http://username:[email protected]:8080"
export NO_PROXY="localhost,127.0.0.1,.internal.corp"
# 启动 Cursor
cursor
WSL2 特殊处理
WSL2 有独立的虚拟网卡,和 Windows 主机不在同一子网。Windows 的代理设置不会自动同步到 WSL2 内部。
一种办法是用 graftcp 工具做透明 TCP 代理:
# 安装 graftcp
sudo apt install graftcp
# 配置代理地址(graftcp.conf)
proxy_addr = "192.168.1.100:7890" # Windows 主机的代理地址
# 用 graftcp 启动 Cursor
graftcp cursor
几个坑:
- 从 Dock/桌面图标启动 → 环境变量不生效
- 只设
HTTP_PROXY不设HTTPS_PROXY→ Cursor API 请求(全是 HTTPS)走不了代理 NO_PROXY漏掉.internal.corp→ 内网服务也被代理,反而变慢
如果不想每次都从终端启动,settings.json 配置更省心。
settings.json 代理配置(推荐方法)
打开 Cursor,按 Cmd+Shift+P(Mac)或 Ctrl+Shift+P(Windows),输入 Preferences: Open User Settings (JSON)。
在 settings.json 里加上这几项:
{
"http.proxy": "http://username:[email protected]:8080",
"http.proxySupport": "override",
"http.proxyStrictSSL": false,
"http.noProxy": ["localhost", "127.0.0.1", "*.internal.corp"],
"cursor.general.disableHttp2": true,
"cursor.general.disableHttp1SSE": true
}
逐项解释:
| 字段 | 作用 |
|---|---|
http.proxy | 代理服务器地址,支持 http:// 和 socks5:// |
http.proxySupport | "override" 强制使用代理;"on" 仅在无直连时走代理 |
http.proxyStrictSSL | 企业代理经常有自签证书,设为 false 避免证书校验失败 |
http.noProxy | 本地地址绕过代理,避免内网服务变慢 |
cursor.general.disableHttp2 | 企业代理不支持 HTTP/2 时必设 |
cursor.general.disableHttp1SSE | 某些代理不支持 SSE 长连接,禁用后用短轮询 |
重启生效。
改完 settings.json 后必须完全关闭 Cursor 再重新打开。只刷新窗口(Cmd+R)不会重新加载网络配置。
Windows 快捷方式启动参数:
如果不想改 settings.json,可以在快捷方式里加参数:
cursor.exe --proxy-server="http://proxy.company.com:8080" --proxy-auto-detect --disable-http2
这种方法和 settings.json 等效,但每次启动都生效,不用重启。
HTTP/2 协议不兼容与解决方案
Cursor 的 Agent 功能依赖 HTTP/2 双向流式传输。实时聊天、代码补全、多轮对话,全靠 HTTP/2 的长连接和流式推送。
问题来了:很多企业代理不支持 HTTP/2。
Zscaler、Netskope 这类 SSL 检查代理,只处理 HTTP/1.1。Cursor 发出的 HTTP/2 请求到了代理那里,要么被截断,要么返回乱码,要么直接超时。
症状:
- Agent 面板卡在 “Thinking…” 不动
- 代码补全偶尔能用、偶尔报错
- Chat 模式正常,Agent 模式全红
解决方法:禁用 HTTP/2,让 Cursor 降级到 HTTP/1.1 SSE。
{
"cursor.general.disableHttp2": true
}
或者启动参数:
cursor --disable-http2
禁用后,Cursor 会用 HTTP/1.1 的 Server-Sent Events(SSE)做流式传输。SSE 是单向的,不如 HTTP/2 双向流高效,但兼容性更好。
一个细节:--disable-http2 和 settings.json 的 disableHttp2 同时存在时,启动参数优先。如果想确保 HTTP/2 禁用,两个都设。
从 Cursor Forum 的反馈看,这个方法解决了大多数企业用户的 Agent 问题。有用户在 Cursor http/2 requests don’t go through proxy setting 里反馈,禁用 HTTP/2 后 Agent 恢复正常。
SSL 证书导入(企业中间人检查)
企业代理做 SSL 解密时,会把原始证书换成代理自己的证书。Netskope、Zscaper 都有这个功能。
Cursor 去连接 cursor.com 或 api2.cursor.sh,结果拿到的证书是企业代理签的,不是 Let’s Encrypt 或 DigiCert 签的。校验失败,连接断开。
症状:
TLS handshake timeoutcertificate signature failure- Agent 面板显示
CERT_AUTHORITY_INVALID
方法一:导入企业根证书到系统证书库(Windows)
- 按
Win+R,输入certmgr.msc - 展开 Trusted Root Certification Authorities → Certificates
- 右键 → All Tasks → Import
- 选择企业的根证书文件(
.cer或.pem) - 完成后重启 Cursor
这个方法让系统信任企业证书,Cursor 也就信任了。
方法二:环境变量指定证书(推荐)
Cursor 支持 SSL_CERT_FILE 和 SSL_CERT_DIR 环境变量:
# 单个证书
export SSL_CERT_FILE=/path/to/company-root-ca.pem
cursor
# 证书目录
export SSL_CERT_DIR=/etc/ssl/certs
cursor
这种方法更灵活,不改系统证书库,只对 Cursor 有效。
方法三:关闭 SSL 严格校验(不推荐)
{
"http.proxyStrictSSL": false
}
这能绕过证书校验,但安全性下降。只在测试环境用,生产环境不建议。
Mac / Linux 证书导入:
# Debian/Ubuntu
sudo cp company-root-ca.pem /usr/local/share/ca-certificates/
sudo update-ca-certificates
# macOS
sudo security add-trusted-cert -d -r trustRoot -k /Library/Keychains/System.keychain company-root-ca.pem
导入后重启 Cursor。
Anygress 与 cursor-api-proxy(进阶配置)
企业网络、远程服务器、私有网络这些场景,标准代理配置不够用。有个开源项目 cursor-api-proxy(GitHub: anyrobert/cursor-api-proxy)专门处理这种情况。
核心原理:
cursor-api-proxy 在本地起一个代理服务,把 Cursor 的 API 请求转发到真实服务器。中间可以做 TLS 证书替换、Tailscale 网络穿透、API 密钥注入等操作。
配置示例:
# 克隆项目
git clone https://github.com/anyrobert/cursor-api-proxy
cd cursor-api-proxy
# 配置环境变量
export CURSOR_BRIDGE_TLS_CERT=./macbook.tail4048eb.ts.net.crt
export CURSOR_BRIDGE_TLS_KEY=./macbook.tail4048eb.ts.net.key
export CURSOR_BRIDGE_API_KEY=your-secret-key
export CURSOR_PROXY_URL=http://127.0.0.1:8765
# 启动(带 Tailscale TLS)
npm start -- --tailscale
然后在 Cursor 里把代理指向这个服务:
{
"http.proxy": "http://127.0.0.1:8765"
}
适用场景:
- 公司网络禁止直连
cursor.com - 远程服务器没有公网出口,要通过 Tailscale 中转
- 需要在请求里注入统一 API Key(多用户共享)
- 私有部署,API 请求要走内部网关
这个方法比标准代理复杂,但灵活度高。适合有一定运维能力的团队。
结论
企业网络下配置 Cursor 代理,按这个顺序排查:
- 先设 settings.json —
http.proxy+http.proxySupport: "override" - 禁用 HTTP/2 — 企业代理不支持的,加
disableHttp2: true - 检查证书 —
TLS handshake timeout或CERT_AUTHORITY_INVALID,导入企业根证书 - 复杂场景用 cursor-api-proxy — 远程服务器、私有网络、Tailscale 穿透
常见错误对照:
| 错误信息 | 原因 | 解决方法 |
|---|---|---|
Network error | 代理未配置或未生效 | 检查 settings.json + 重启 Cursor |
Connection refused | 代理地址错误或代理服务未启动 | 确认 http.proxy 地址 |
TLS handshake timeout | SSL 证书不匹配 | 导入企业根证书或设 proxyStrictSSL: false |
Agent 卡住不动 | HTTP/2 不兼容 | 设 disableHttp2: true |
配置完记得完全重启 Cursor,不是刷新窗口。
Cursor 企业网络代理配置流程
从环境变量到证书导入的完整配置步骤
⏱️ 预计耗时: 15 分钟
- 1
步骤1: 配置 settings.json 代理
打开 Cursor,按 Cmd+Shift+P(Mac)或 Ctrl+Shift+P(Windows),输入 Preferences: Open User Settings (JSON),添加 http.proxy、http.proxySupport: "override"、http.proxyStrictSSL: false 等配置项 - 2
步骤2: 禁用 HTTP/2 协议
在 settings.json 中添加 cursor.general.disableHttp2: true,或在启动参数中添加 --disable-http2,解决企业代理不支持 HTTP/2 导致的 Agent 卡死问题 - 3
步骤3: 处理 SSL 证书问题
遇到 TLS handshake timeout 或 CERT_AUTHORITY_INVALID 错误时,导入企业根证书到系统证书库(Windows 用 certmgr.msc,Mac/Linux 用 security 或 update-ca-certificates 命令),或临时设置 proxyStrictSSL: false - 4
步骤4: 重启 Cursor 验证连接
完全关闭 Cursor 并重新打开(不是刷新窗口),测试 Agent 功能是否正常。如果仍有问题,检查代理地址和端口是否正确
常见问题
为什么 Cursor 不继承系统代理?
HTTP_PROXY 环境变量为什么不生效?
Agent 卡在 Thinking 不动怎么办?
如何判断是证书问题还是代理问题?
cursor-api-proxy 适用于什么场景?
6 分钟阅读 · 发布于: 2026年5月29日 · 修改于: 2026年5月31日
相关文章
Cursor Agent 模式完全指南:3步开启自动化编程(2026最新)
Cursor Agent 模式完全指南:3步开启自动化编程(2026最新)
Cursor @Codebase、@Docs、@Files 到底用哪个?实战场景决策指南
Cursor @Codebase、@Docs、@Files 到底用哪个?实战场景决策指南
Cursor 大型项目索引治理:从诊断到重建的完整方案
评论
使用 GitHub 账号登录后即可评论