AI/Claude

Claude Code 오류가 랜덤하게 발생한다면?VPN 지역부터 네트워크 문제까지 완전 정리

반응형
Claude Code 오류가 랜덤하게 발생한다면? VPN 지역부터 네트워크 문제까지 완전 정리
Claude Code를 쓰다 보면 코드도, 설정도, 계정도 전혀 바꾸지 않았는데 갑자기 오류가 발생하는 경험을 하게 됩니다. 특히 VPN 사용자라면 이런 현상이 더 자주 발생합니다. 이 글에서는 VPN 지역 전환 문제를 시작으로, 개발자들이 실제로 겪는 다양한 네트워크 관련 오류 사례와 해결법을 정리했습니다.

🔴 가장 흔한 증상들

아래 증상 중 하나라도 해당된다면, 문제는 코드가 아닌 네트워크 환경일 가능성이 높습니다.

529 Overloaded 오류아무것도 바꾼 게 없는데 갑자기 API 요청 실패
웹 앱 로딩 스피너 멈춤때로는 즉시 로딩, 때로는 무한 대기
Service Unavailable첫 번째 요청에서만 발생, 재시도하면 성공
Connection error인터넷은 정상인데 API만 연결 불가
403 Request not allowed브라우저는 되는데 터미널에서만 오류
TLS handshake 실패기업망 또는 프록시 환경에서 주로 발생

🧭 사례 1. VPN 자동 지역 전환 (원본 Reddit 제보)

가장 먼저 소개할 사례는 실제 Reddit r/ClaudeCode에 올라온 경험담입니다. 몇 주 동안 Claude Code 탓을 했지만, 알고 보니 VPN 자동 지역 전환이 원인이었습니다.

VPN 지역Claude Code 동작상태
US West (고정)정상 작동, 오류 없음✓ 정상
랜덤 EU 노드529 / 로딩 실패 빈발✗ 오류
자동 전환 (Auto)1~2세션 내 오류 재발✗ 오류

VPN 출구 노드가 자동으로 바뀌면, 서버 입장에서는 매 세션마다 요청의 "출처(origin)"가 달라지는 것처럼 인식됩니다. 특정 지역은 다른 라우팅 경로, 컴플라이언스 게이트, 또는 rate limit 정책을 통과하게 되어 간헐적인 오류로 이어질 수 있습니다.

테스트 순서

  1. 1
    VPN 완전 비활성화 → 정상 작동 확인
  2. 2
    VPN 켜되 특정 지역 수동 고정 → 정상 작동 확인
  3. 3
    자동 지역 전환 다시 활성화 → 1~2세션 내 오류 재발
  4. 4
    스플릿 터널링으로 Claude 트래픽만 고정 노드 경유 → 안정적

해결 체크리스트

  • VPN 없이 먼저 접속해보기 (오류 사라지면 VPN이 원인)
  • VPN 자동 지역 전환 비활성화 → 안정적인 단일 지역으로 고정
  • 스플릿 터널링: Claude 관련 트래픽만 고정 노드로 경유
  • 오류 발생 시각과 VPN 지역 변경 시점 상관관계 확인

⚠️ 사례 2. 기업망 / 프록시 환경에서의 403 오류

증상
403 Request not allowed — 브라우저는 정상, 터미널만 오류

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
Claude Desktop 앱은 launchctl setenv로 별도 환경 변수를 설정해야 합니다. 터미널과 GUI 앱의 환경 변수는 분리되어 있습니다.

⚠️ 사례 3. 기업 방화벽 / TLS 검사 간섭

증상
TLS ErrorSSL Handshake Failed

기업 네트워크에서 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 연동 오류

증상
IDE Error "No available IDEs detected" — JetBrains + WSL2 조합

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 overloaded_error — 모든 사용자에게 동시 발생

529 오류는 Anthropic 서버가 과도한 트래픽을 일시적으로 처리하지 못할 때 발생합니다. 특히 미국 동부 시간 오전 10시~오후 2시(한국 시간 자정~새벽 3시) 피크 시간대에 집중됩니다.

이 경우 VPN이나 네트워크 설정을 바꿔도 해결되지 않으며, 기다리거나 요청 방식을 바꾸는 것이 유일한 방법입니다.

대응 방법설명
잠시 대기 후 재시도일반적으로 1~5분 후 자동 해소
요청 크기 줄이기"전체 프로젝트 리팩토링" → "특정 파일 함수만 수정"으로 분할
모델 전환Sonnet 대신 Haiku로 임시 전환해 부하 분산
상태 페이지 확인status.anthropic.com 에서 실제 서비스 장애 여부 확인
서버 529 vs VPN 529 구분법: status.anthropic.com에서 인시던트가 없고, VPN을 끄거나 지역을 바꾸면 오류가 사라진다면 → VPN 문제. 인시던트가 있거나 VPN 변경으로도 해결 안 된다면 → 서버 과부하.

⚠️ 사례 6. ANTHROPIC_API_KEY 환경 변수 충돌로 인한 403

증상
403 "This organization has been disabled" — 구독은 정상인데 오류 발생

이전 직장이나 프로젝트에서 설정한 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)

증상
Network Conflict Cowork VM 시작 실패, 인터넷 연결까지 끊김

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"
VPN을 사용 중이라면 VPN이 사용하는 서브넷과 겹치지 않는 대역(예: 10.200.0.0/24)을 선택해야 합니다. VPN 클라이언트 설정에서 현재 사용 중인 서브넷을 확인하세요.

🔧 전체 트러블슈팅 흐름도

어떤 오류든 아래 순서로 진단하면 대부분의 원인을 찾을 수 있습니다.

  1. 1
    status.anthropic.com 확인 — 서비스 장애 인시던트가 있으면 기다리는 게 답
  2. 2
    VPN 끄고 재시도 — 해결되면 VPN 지역 고정 또는 스플릿 터널링 적용
  3. 3
    다른 네트워크에서 테스트 — 모바일 핫스팟으로 전환해 재시도 (기업망 방화벽 확인)
  4. 4
    환경 변수 확인echo $ANTHROPIC_API_KEY로 오래된 키가 잡히는지 확인
  5. 5
    프록시 환경 변수 설정 — 기업망이라면 HTTPS_PROXY를 셸 설정에 추가
  6. 6
    최신 버전 재설치curl -fsSL https://claude.ai/install.sh | bash

📋 빠른 참조 — 오류별 원인과 해결법

오류 코드주요 원인첫 번째 해결 시도
529서버 과부하 또는 VPN 지역VPN 끄거나 지역 고정, 잠시 대기
403API 키 충돌 또는 지역 제한unset ANTHROPIC_API_KEY, 프록시 설정
TLS Error기업 방화벽 DPINODE_EXTRA_CA_CERTS 설정
503Anthropic 서버 일시 장애3~5분 대기, 상태 페이지 확인
Connection Error네트워크 경로 문제다른 네트워크에서 재시도
IDE Not FoundWSL2 NAT 방화벽방화벽 규칙 추가 또는 mirrored 모드

핵심 요약
Claude Code의 오류 대부분은 코드 문제가 아닌 네트워크 환경 문제입니다. VPN 자동 전환, 기업 방화벽, 환경 변수 충돌, WSL2 NAT 충돌 등 다양한 원인이 있으며, 진단 순서만 지키면 대부분 10분 내에 원인을 찾을 수 있습니다. 진짜 서버 장애인지 확인하는 가장 빠른 방법은 status.anthropic.com 확인과 VPN 비활성화 테스트입니다.
참고: Reddit r/ClaudeCode, GitHub anthropics/claude-code Issues, Anthropic 공식 Claude Code 문서 (code.claude.com/docs), Anthropic Support
반응형

Categories