🔴 가장 흔한 증상들
아래 증상 중 하나라도 해당된다면, 문제는 코드가 아닌 네트워크 환경일 가능성이 높습니다.
🧭 사례 1. VPN 자동 지역 전환 (원본 Reddit 제보)
가장 먼저 소개할 사례는 실제 Reddit r/ClaudeCode에 올라온 경험담입니다. 몇 주 동안 Claude Code 탓을 했지만, 알고 보니 VPN 자동 지역 전환이 원인이었습니다.
| VPN 지역 | Claude Code 동작 | 상태 |
|---|---|---|
| US West (고정) | 정상 작동, 오류 없음 | ✓ 정상 |
| 랜덤 EU 노드 | 529 / 로딩 실패 빈발 | ✗ 오류 |
| 자동 전환 (Auto) | 1~2세션 내 오류 재발 | ✗ 오류 |
VPN 출구 노드가 자동으로 바뀌면, 서버 입장에서는 매 세션마다 요청의 "출처(origin)"가 달라지는 것처럼 인식됩니다. 특정 지역은 다른 라우팅 경로, 컴플라이언스 게이트, 또는 rate limit 정책을 통과하게 되어 간헐적인 오류로 이어질 수 있습니다.
테스트 순서
- 1VPN 완전 비활성화 → 정상 작동 확인
- 2VPN 켜되 특정 지역 수동 고정 → 정상 작동 확인
- 3자동 지역 전환 다시 활성화 → 1~2세션 내 오류 재발
- 4스플릿 터널링으로 Claude 트래픽만 고정 노드 경유 → 안정적
해결 체크리스트
- VPN 없이 먼저 접속해보기 (오류 사라지면 VPN이 원인)
- VPN 자동 지역 전환 비활성화 → 안정적인 단일 지역으로 고정
- 스플릿 터널링: Claude 관련 트래픽만 고정 노드로 경유
- 오류 발생 시각과 VPN 지역 변경 시점 상관관계 확인
⚠️ 사례 2. 기업망 / 프록시 환경에서의 403 오류
macOS에서 Clash, V2Ray, Surge 같은 프록시 클라이언트의 "시스템 프록시로 설정" 옵션을 켜도, 터미널과 Electron 앱(Claude Desktop)은 시스템 프록시 설정을 자동으로 상속받지 않습니다. 이 때문에 브라우저의 Claude 웹은 정상 작동하는데 CLI에서는 403이 발생하는 이상한 상황이 연출됩니다.
실제로 지역 제한 환경에서 많은 개발자들이 이 문제를 보고했으며, GitHub 이슈로도 다수 등록되어 있습니다.
해결 방법 — 셸 설정에 프록시 환경 변수 추가
# ~/.zshrc 또는 ~/.bashrc에 추가 (Clash 기본 포트 7890 기준)
export https_proxy=http://127.0.0.1:7890
export http_proxy=http://127.0.0.1:7890
export all_proxy=socks5://127.0.0.1:7890
# 반영
source ~/.zshrc
launchctl setenv로 별도 환경 변수를 설정해야 합니다. 터미널과 GUI 앱의 환경 변수는 분리되어 있습니다.⚠️ 사례 3. 기업 방화벽 / TLS 검사 간섭
기업 네트워크에서 TLS 패킷 검사(Deep Packet Inspection)를 수행하는 프록시는 Claude Code의 HTTPS 연결을 중간에서 차단하거나 변형할 수 있습니다. 이때 curl: (35) TLS connect error 또는 unable to get local issuer certificate 같은 오류가 발생합니다.
공식 Claude Code 문서도 이 케이스를 별도로 다루고 있으며, 기업 CA 인증서를 시스템에 등록하거나 환경 변수로 지정하는 방법을 권장합니다.
# 기업 CA 인증서를 Node.js에 등록
export NODE_EXTRA_CA_CERTS=/path/to/corporate-ca-bundle.pem
# 프록시 설정 후 설치
export HTTP_PROXY=http://proxy.company.com:8080
export HTTPS_PROXY=http://proxy.company.com:8080
curl -fsSL https://claude.ai/install.sh | bash
⚠️ 사례 4. WSL2 환경에서의 IDE 연동 오류
WSL2는 기본적으로 NAT 네트워킹을 사용합니다. 이 때문에 JetBrains IDE와 Claude Code가 서로를 감지하지 못하는 경우가 발생합니다. Windows Firewall이 WSL2 내부 트래픽을 차단할 때 특히 자주 나타납니다.
Option 1 — Windows 방화벽 규칙 추가 (권장)
# PowerShell (관리자)
$wsl2_subnet = (wsl hostname -I).Trim().Split(" ")[0] -replace '\.\d+$', '.0'
New-NetFirewallRule -DisplayName "Allow WSL2 Internal Traffic" `
-Direction Inbound -Protocol TCP -Action Allow `
-RemoteAddress "$wsl2_subnet/16" -LocalAddress "$wsl2_subnet/16"
Option 2 — WSL2 Mirrored 네트워크 모드
# %USERPROFILE%\.wslconfig 파일에 추가
[wsl2]
networkingMode=mirrored
wsl --shutdown으로 WSL2를 재시작하고, IDE와 Claude Code를 모두 재실행해야 반영됩니다.⚠️ 사례 5. 서버 과부하로 인한 진짜 529 오류
VPN이나 네트워크 설정이 정상인데도 529가 발생한다면? Anthropic 서버 자체 과부하일 수 있습니다.
529 오류는 Anthropic 서버가 과도한 트래픽을 일시적으로 처리하지 못할 때 발생합니다. 특히 미국 동부 시간 오전 10시~오후 2시(한국 시간 자정~새벽 3시) 피크 시간대에 집중됩니다.
이 경우 VPN이나 네트워크 설정을 바꿔도 해결되지 않으며, 기다리거나 요청 방식을 바꾸는 것이 유일한 방법입니다.
| 대응 방법 | 설명 |
|---|---|
| 잠시 대기 후 재시도 | 일반적으로 1~5분 후 자동 해소 |
| 요청 크기 줄이기 | "전체 프로젝트 리팩토링" → "특정 파일 함수만 수정"으로 분할 |
| 모델 전환 | Sonnet 대신 Haiku로 임시 전환해 부하 분산 |
| 상태 페이지 확인 | status.anthropic.com 에서 실제 서비스 장애 여부 확인 |
status.anthropic.com에서 인시던트가 없고, VPN을 끄거나 지역을 바꾸면 오류가 사라진다면 → VPN 문제. 인시던트가 있거나 VPN 변경으로도 해결 안 된다면 → 서버 과부하.
⚠️ 사례 6. ANTHROPIC_API_KEY 환경 변수 충돌로 인한 403
이전 직장이나 프로젝트에서 설정한 ANTHROPIC_API_KEY 환경 변수가 셸 프로파일에 남아 있으면, Claude Code가 구독 인증 대신 해당 API 키를 우선 사용합니다. 만료되거나 비활성화된 키를 사용하게 되면 403 오류가 발생합니다.
# 환경 변수 확인
echo $ANTHROPIC_API_KEY
# 현재 세션에서 제거
unset ANTHROPIC_API_KEY
# 영구 제거 — ~/.zshrc 또는 ~/.bashrc에서 해당 줄 삭제
# export ANTHROPIC_API_KEY=sk-ant-... ← 이 줄 제거
⚠️ 사례 7. Claude Cowork + VPN 네트워크 충돌 (Windows)
Claude Cowork는 내부적으로 172.16.0.0/24 대역을 사용하는 NAT 네트워크를 생성합니다. 기업 VPN이나 홈 네트워크 라우터가 동일한 서브넷을 사용하고 있다면 라우팅 충돌이 발생합니다. 심한 경우 호스트 머신의 인터넷 연결 자체가 끊기는 증상이 나타납니다.
# PowerShell (관리자) — 충돌 네트워크 제거 후 새 서브넷으로 재생성
Stop-Process -Name "cowork-svc" -Force -ErrorAction SilentlyContinue
$net = Get-HnsNetwork | Where-Object {$_.Name -eq "cowork-vm-nat"}
Remove-HnsNetwork -InputObjects $net
# 충돌하지 않는 서브넷으로 새로 생성
Import-Module HNS -Prefix "Admin"
New-AdminHnsNetwork -Type NAT -AddressPrefix "172.24.0.0/24" -Gateway "172.24.0.1"
10.200.0.0/24)을 선택해야 합니다. VPN 클라이언트 설정에서 현재 사용 중인 서브넷을 확인하세요.
🔧 전체 트러블슈팅 흐름도
어떤 오류든 아래 순서로 진단하면 대부분의 원인을 찾을 수 있습니다.
- 1status.anthropic.com 확인 — 서비스 장애 인시던트가 있으면 기다리는 게 답
- 2VPN 끄고 재시도 — 해결되면 VPN 지역 고정 또는 스플릿 터널링 적용
- 3다른 네트워크에서 테스트 — 모바일 핫스팟으로 전환해 재시도 (기업망 방화벽 확인)
- 4환경 변수 확인 —
echo $ANTHROPIC_API_KEY로 오래된 키가 잡히는지 확인 - 5프록시 환경 변수 설정 — 기업망이라면
HTTPS_PROXY를 셸 설정에 추가 - 6최신 버전 재설치 —
curl -fsSL https://claude.ai/install.sh | bash
📋 빠른 참조 — 오류별 원인과 해결법
| 오류 코드 | 주요 원인 | 첫 번째 해결 시도 |
|---|---|---|
| 529 | 서버 과부하 또는 VPN 지역 | VPN 끄거나 지역 고정, 잠시 대기 |
| 403 | API 키 충돌 또는 지역 제한 | unset ANTHROPIC_API_KEY, 프록시 설정 |
| TLS Error | 기업 방화벽 DPI | NODE_EXTRA_CA_CERTS 설정 |
| 503 | Anthropic 서버 일시 장애 | 3~5분 대기, 상태 페이지 확인 |
| Connection Error | 네트워크 경로 문제 | 다른 네트워크에서 재시도 |
| IDE Not Found | WSL2 NAT 방화벽 | 방화벽 규칙 추가 또는 mirrored 모드 |
Claude Code의 오류 대부분은 코드 문제가 아닌 네트워크 환경 문제입니다. VPN 자동 전환, 기업 방화벽, 환경 변수 충돌, WSL2 NAT 충돌 등 다양한 원인이 있으며, 진단 순서만 지키면 대부분 10분 내에 원인을 찾을 수 있습니다. 진짜 서버 장애인지 확인하는 가장 빠른 방법은
status.anthropic.com 확인과 VPN 비활성화 테스트입니다.
'AI > Claude' 카테고리의 다른 글
| Claude Code Agent Teams vs Subagent 차이점 (1) | 2026.03.23 |
|---|---|
| Claude 컨텍스트 윈도우 완벽 가이드 - 토큰 아끼고 딱 필요한 일만 시키는 법 (0) | 2026.03.23 |
| Claude Pixel Agents Plugin: AI 에이전트를 픽셀 아트로 본다면? (0) | 2026.03.23 |
| Claude Cowork for Windows 실사용기 — 파일 327개 자동 정리, 이 정도면 쓸 만하다 🤔 (0) | 2026.03.19 |
| 나만의 Claude Skills 만들기— 설계부터 배포까지 완전 정복 (0) | 2026.03.19 |
