· 심화 지식 · 약 17분

Claude Code 연결 오류 해결: V2Ray로 터미널 프록시 설정하기

Claude Code를 터미널에서 실행할 때 로그인에 실패하거나 요청 시간이 초과되나요? v2rayN 같은 클라이언트로 로컬 프록시를 구성하고 셸의 프록시 환경 변수와 라우팅 규칙을 확인하는 방법을 안내합니다. 노드 선택부터 연결 오류 점검까지 살펴보고, 문제가 네트워크·계정·클라…

Claude Code가 터미널에서 로그인되지 않거나 요청 시간이 초과될 때는 노드부터 바꾸기보다, 터미널이 v2rayN의 로컬 프록시에 연결하는지 먼저 확인하는 편이 좋습니다. v2rayN에서 노드가 선택되어 있어도 터미널 프로그램이 자동으로 프록시를 사용하는 것은 아닙니다. 이 글은 Windows 터미널을 중심으로 로컬 포트, 셸 환경 변수, 라우팅과 로그인 문제를 단계별로 점검하는 방법을 설명합니다.

이 글 빠르게 보기

터미널 앱은 브라우저와 프록시 설정을 공유하지 않을 수 있습니다. v2rayN에서 실제 HTTP 프록시 포트를 확인하고, Claude Code를 실행하는 셸에 HTTPS_PROXY와 HTTP_PROXY를 지정한 뒤 요청 경로를 시험하세요. 오류가 계속되면 로컬 포트, 프록시 노드, 도메인 라우팅, 계정 인증 순서로 범위를 좁힙니다. 프록시를 설정했는데 로그인만 실패하거나 시간 초과가 반복되는 상황을 점검하려는 사용자에게 적합합니다.

터미널 프록시와 시스템 프록시 구분하기

v2rayN은 노드 설정을 관리하고 로컬 프록시를 제공하는 클라이언트입니다. Claude Code는 터미널에서 실행되는 별도의 프로그램이므로, Windows의 시스템 프록시를 켰다고 해서 항상 해당 로컬 프록시를 이용하는 것은 아닙니다. 특히 브라우저에서는 페이지가 열리지만 터미널 요청은 시간 초과되는 경우, 시스템 프록시와 터미널의 프록시 설정이 서로 다를 수 있습니다.

먼저 v2rayN에서 노드를 선택하고 코어가 실행 중인지 확인하세요. 이어서 설정 화면에서 로컬 프록시의 HTTP 수신 주소와 포트를 확인합니다. 일부 설치에서는 SOCKS 포트가 10808, HTTP 포트가 10809인 경우가 있지만, 이 값은 예시일 뿐입니다. 설정이 다르면 실제 화면에 표시된 값을 사용해야 합니다. SOCKS 포트에 HTTP 프록시 주소를 지정하면 연결이 거부되거나 프로토콜 오류가 날 수 있습니다.

127.0.0.1
보통 로컬 프록시가 수신하는 주소입니다. 실제 바인딩 주소를 확인하세요.
10809
HTTP 포트 예시이며, 사용 중인 v2rayN 설정과 다를 수 있습니다.
2개 변수
HTTP_PROXY와 HTTPS_PROXY를 우선 확인합니다.

셸에 HTTP 프록시 환경 변수 설정하기

아래 예시는 v2rayN의 HTTP 프록시가 127.0.0.1:10809에서 동작한다고 가정합니다. 먼저 v2rayN에서 이 주소와 포트를 확인하고, 값이 다르면 명령의 포트를 바꾸세요. 프록시 주소에는 로컬 HTTP 수신 포트를 넣어야 합니다. 노드의 서버 주소를 넣는 설정이 아닙니다.

PowerShell에서는 현재 창에서만 적용되는 환경 변수를 다음과 같이 지정할 수 있습니다. Claude Code도 같은 PowerShell 창에서 실행해야 합니다.

$env:HTTP_PROXY = "http://127.0.0.1:10809"
$env:HTTPS_PROXY = "http://127.0.0.1:10809"
claude

Windows 명령 프롬프트에서는 다음처럼 입력합니다. 이 값 역시 현재 명령 프롬프트 창에만 적용됩니다.

set HTTP_PROXY=http://127.0.0.1:10809
set HTTPS_PROXY=http://127.0.0.1:10809
claude

macOS나 Linux의 셸에서는 다음 형식을 사용할 수 있습니다. v2rayN이 아닌 다른 클라이언트를 사용한다면 그 클라이언트가 제공하는 로컬 HTTP 프록시 주소와 포트로 바꿔야 합니다.

export HTTP_PROXY="http://127.0.0.1:10809"
export HTTPS_PROXY="http://127.0.0.1:10809"
claude

현재 창에서만 설정

적용 범위
현재 셸과 그 셸에서 시작한 프로그램
변수
HTTP_PROXY, HTTPS_PROXY
장점
시험 후 창을 닫으면 설정이 사라짐

처음 연결을 확인하거나 오류 원인을 분리할 때 권장합니다.

셸 프로필에 저장

적용 범위
프로필을 불러오는 새 셸
변수
동일한 프록시 변수
주의
포트 변경 후 프로필도 수정해야 함

한 번의 시험에서 정상 동작을 확인한 뒤 필요할 때만 저장하세요.

환경 변수 이름의 대소문자 처리 방식은 프로그램과 라이브러리에 따라 다를 수 있습니다. 먼저 위와 같이 일반적으로 사용하는 대문자 이름을 설정하고, Claude Code의 현재 버전 안내와 셸에서 실제로 값이 설정됐는지 확인하세요. 인증 정보나 구독 주소를 변수에 추가할 필요는 없습니다. 프록시를 사용하지 않을 대상으로 NO_PROXY를 지정했다면, 대상 도메인이 예외 목록에 포함되어 프록시를 우회하지 않는지도 점검하세요.

Claude Code 실행 전 프록시 경로 시험하기

Claude Code를 재설치하거나 로그인 정보를 지우기 전에 로컬 프록시가 실제 요청을 전달하는지 확인하세요. PowerShell에서 curl이 별칭으로 동작할 수 있으므로, 아래 예시는 Windows에 포함된 실행 파일을 명시해 curl.exe를 사용합니다.

curl.exe -I --proxy http://127.0.0.1:10809 https://api.anthropic.com

주소나 포트가 다르면 명령의 프록시 주소를 수정하세요. 이 시험에서 응답 코드가 401, 404 또는 405로 표시될 수 있습니다. 이는 해당 요청 경로에서 서버 응답을 받았다는 뜻일 수 있으며, 계정 로그인이나 Claude Code 사용 권한까지 확인한 결과는 아닙니다. 반대로 연결 거부나 시간 초과가 발생하면 인증보다 먼저 로컬 프록시와 네트워크 경로를 확인해야 합니다.

  1. 노드 활성화

    v2rayN에서 사용할 노드를 활성화하고 코어가 실행 중인지 확인하세요. 코어 로그에 로컬 포트 바인딩 실패가 보이면 먼저 해당 오류를 해결합니다.

  2. 포트 확인

    설정 화면에서 HTTP 프록시 수신 주소와 포트를 확인하세요. SOCKS 포트와 HTTP 포트를 구분하고, 이 글의 예시 포트와 다르면 명령과 환경 변수를 모두 수정합니다.

  3. 요청 시험

    curl.exe 명령으로 프록시를 명시해 요청합니다. 응답을 받으면 터미널에서 프록시를 거쳐 대상 서버까지 도달하는 기본 경로가 확인된 것입니다.

  4. 같은 창에서 실행

    시험에 사용한 셸에서 환경 변수를 설정하고 Claude Code를 실행하세요. 다른 터미널 창이나 시작 메뉴에서 실행하면 해당 변수 없이 시작될 수 있습니다.

  5. 기본값 복구

    시험이 끝난 뒤 임시 설정을 해제하려면 PowerShell에서 Remove-Item Env:HTTP_PROXY와 Remove-Item Env:HTTPS_PROXY를 실행하세요. CMD에서는 각각 set HTTP_PROXY=, set HTTPS_PROXY=를 사용합니다.

시간 초과와 라우팅 문제 좁히기

프록시를 지정했는데 요청이 계속 멈춘다면, 실패가 발생한 위치를 나눠 보세요. 로컬 연결이 즉시 거부되는 경우는 대체로 주소나 포트가 틀렸거나 해당 포트에서 수신하지 않는 상황입니다. 요청이 오래 기다린 뒤 시간 초과되면 노드의 원격 연결, DNS, 라우팅 규칙 또는 네트워크 차단 등 여러 원인이 가능합니다. 오류 문구만 보고 원인을 하나로 단정하지 말고, v2rayN 로그와 터미널 결과를 같은 시각 기준으로 비교하세요.

오류: connect ECONNREFUSED 127.0.0.1:10809

원인과 해결: 로컬 주소와 포트에 연결할 수 없습니다. v2rayN이 실행 중인지, 실제 HTTP 포트가 10809인지, 포트가 다른 프로그램에 의해 점유되었는지 확인하세요. 포트를 바꾸었다면 환경 변수에도 같은 값을 사용해야 합니다.

오류: ETIMEDOUT 또는 요청 시간 초과

원인과 해결: 연결 과정에서 응답이 오지 않았다는 의미이며, 원격 서버나 라우팅 문제일 수 있습니다. 먼저 위의 명시적 프록시 요청을 시험하고, 실패하면 활성 노드와 v2rayN 로그를 확인하세요. 프록시 시험은 성공하지만 Claude Code만 실패하면 셸 변수와 프로그램 버전별 프록시 지원을 점검합니다.

오류: 인증 또는 로그인 페이지로 돌아감

원인과 해결: HTTPS 연결이 일부 된다고 해서 로그인 절차 전체가 완료된 것은 아닙니다. 브라우저와 터미널이 서로 다른 프록시를 사용할 수 있으므로, 브라우저에서 열린 인증 페이지와 Claude Code를 시작한 셸의 경로를 각각 확인하세요. 조직 네트워크의 로그인 정책이나 계정 상태도 점검 대상입니다.

로그인 오류는 네트워크와 계정을 따로 확인하기

Claude Code의 로그인은 터미널 요청뿐 아니라 브라우저 인증과 계정 상태에도 영향을 받을 수 있습니다. 브라우저가 열리지 않는 경우와 브라우저에서 인증을 마친 뒤 터미널이 완료 상태를 받지 못하는 경우는 점검 지점이 다릅니다. 먼저 화면에 표시된 오류와 실패 시각을 기록하고, 민감한 인증 코드나 토큰은 공유하지 마세요.

브라우저는 되는데 Claude Code만 실패해요. 왜 그런가요?

브라우저가 시스템 프록시를 쓰더라도 터미널은 별도 설정이 필요할 수 있습니다. v2rayN의 HTTP 포트를 확인하고, Claude Code를 실행하는 셸에 HTTP_PROXY와 HTTPS_PROXY를 설정한 뒤 같은 창에서 실행하세요.

SOCKS 포트인 10808을 변수에 넣어도 되나요?

이 글의 환경 변수 예시는 HTTP 프록시 주소를 사용합니다. 10808이 SOCKS 포트라면 HTTP 포트와 혼동하지 마세요. 클라이언트가 제공하는 HTTP 수신 포트를 사용하거나, 사용하는 프로그램의 문서에서 SOCKS 프록시 지원 방식을 확인하세요.

HTTP 요청이 401로 끝나면 프록시 설정이 틀린 건가요?

반드시 그렇지는 않습니다. 대상 서버에서 HTTP 응답을 받았다는 의미일 수 있지만, 로그인과 계정 접근까지 확인한 결과는 아닙니다. 요청 경로 확인과 Claude Code 인증 상태 확인을 별도로 진행하세요.

매번 환경 변수를 입력하지 않으려면 어떻게 하나요?

임시 설정으로 연결을 먼저 검증한 뒤 필요한 경우 사용하는 셸의 프로필에 값을 저장하세요. 로컬 포트를 변경하면 프로필의 변수도 수정하고, 공용 컴퓨터에서는 다른 사용자가 접근할 수 있는 전역 설정을 피하는 편이 안전합니다.

v2rayN 다운로드플랫폼에 맞는 클라이언트 선택