Cursor 엔터프라이즈 네트워크 프록시 설정: HTTP_PROXY부터 인증서 가져오기까지

"Cursor 공식 엔터프라이즈 네트워크 설정 문서는 환경 변수, settings.json, 시작 인자라는 세 가지 프록시 설정 경로를 자세히 설명합니다"
"Cursor 포럼에는 HTTP/2 요청이 프록시 설정을 거치지 않는 문제와 해결 방법에 대한 사용자 피드백이 올라와 있습니다"
Send를 눌렀는데 Cursor의 Agent 패널에 Network error가 뜹니다. 전역 프록시는 분명 켜져 있는데 왜 여전히 연결되지 않을까요?
답은 Electron v25+의 네트워크 스택에 있습니다. Cursor, VS Code, 운영체제는 각각 별도의 프록시 설정을 사용하며 서로 자동으로 이어지지 않습니다. 이 글에서는 엔터프라이즈 네트워크에서 Cursor 프록시를 설정하는 과정을 처음부터 정리합니다. 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와 Zscaler 모두 이런 기능을 제공합니다.
Cursor가 cursor.com 또는 api2.cursor.sh에 연결하려 할 때 실제로 받은 인증서는 Let’s Encrypt나 DigiCert가 서명한 인증서가 아니라 기업 프록시가 서명한 인증서일 수 있습니다. 그러면 검증이 실패하고 연결이 끊깁니다.
증상:
TLS handshake timeoutcertificate signature failure- Agent 패널에
CERT_AUTHORITY_INVALID표시
방법 1: 기업 루트 인증서를 시스템 인증서 저장소로 가져오기(Windows)
Win+R을 누르고certmgr.msc를 입력합니다- Trusted Root Certification Authorities → Certificates를 펼칩니다
- 오른쪽 클릭 → All Tasks → Import를 선택합니다
- 기업 루트 인증서 파일(
.cer또는.pem)을 선택합니다 - 완료 후 Cursor를 재시작합니다
이 방법은 시스템이 기업 인증서를 신뢰하도록 만듭니다. 그러면 Cursor도 해당 인증서를 신뢰합니다.
방법 2: 환경 변수로 인증서 지정(권장)
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에만 적용할 수 있습니다.
방법 3: 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 엔터프라이즈 네트워크 프록시 설정 절차
환경 변수부터 인증서 가져오기까지의 전체 설정 단계
⏱️ Estimated time: 15 min
- 1
Step 1: settings.json 프록시 설정
Cursor를 열고 Mac에서는 Cmd+Shift+P, Windows에서는 Ctrl+Shift+P를 누른 뒤 Preferences: Open User Settings (JSON)을 입력하고 http.proxy, http.proxySupport: "override", http.proxyStrictSSL: false 같은 설정 항목을 추가합니다 - 2
Step 2: HTTP/2 프로토콜 비활성화
settings.json에 cursor.general.disableHttp2: true를 추가하거나 시작 인자에 --disable-http2를 추가해, 엔터프라이즈 프록시가 HTTP/2를 지원하지 않아 Agent가 멈추는 문제를 해결합니다 - 3
Step 3: SSL 인증서 문제 처리
TLS handshake timeout 또는 CERT_AUTHORITY_INVALID 오류가 나오면 기업 루트 인증서를 시스템 인증서 저장소에 가져옵니다. Windows는 certmgr.msc를, Mac/Linux는 security 또는 update-ca-certificates 명령을 사용합니다. 임시로 proxyStrictSSL: false를 설정할 수도 있습니다 - 4
Step 4: Cursor 재시작 후 연결 검증
Cursor를 완전히 종료한 뒤 다시 엽니다. 창 새로고침이 아니라 완전 종료가 필요합니다. Agent 기능이 정상인지 테스트하고, 문제가 계속되면 프록시 주소와 포트가 맞는지 확인합니다
FAQ
Cursor는 왜 시스템 프록시를 상속하지 않나요?
HTTP_PROXY 환경 변수는 왜 적용되지 않나요?
Agent가 Thinking 상태에서 멈추면 어떻게 해야 하나요?
인증서 문제인지 프록시 문제인지 어떻게 구분하나요?
cursor-api-proxy는 어떤 상황에 적합한가요?
2분 읽기 · 게시일: 2026년 5월 29일 · 수정일: 2026년 10월 21일
Cursor 완전 가이드
검색으로 들어왔다면 같은 시리즈의 이전 글이나 다음 글로 이동하는 것이 가장 빠릅니다.
이전
Cursor에 DeepSeek API 연결 완전 가이드: 설정, 커스텀 모델, 비용 검토
2026년 Cursor DeepSeek 설정 가이드입니다. Cursor 구독, DeepSeek API Base URL, deepseek-chat/deepseek-reasoner 모델, 비용 추정, 흔한 실패 원인을 점검합니다.
25편 중 17편
다음
Cursor Proxy 네트워크 문제 해결: 프록시 설정, 진단 및 HTTP/2 오류 수정
Cursor proxy를 설정했는데도 프록시를 사용하지 않나요? http.proxySupport의 기본값인 override가 원인일 가능성이 큽니다. 이 2026년 문제 해결 가이드에서는 프록시 설정, Run Diagnostics, HTTP/2 호환 모드, 기업 인증서를 다룹니다.
25편 중 19편



댓글
GitHub로 로그인하여 댓글을 남기세요