· 플랫폼 가이드 · 약 10분

v2rayN Windows 설치 및 설정 가이드: 데스크톱판과 WPF판 비교, 설치 오류 해결

v2rayN 데스크톱판과 WPF판의 차이와 선택 기준을 알아봅니다. 압축 해제 경로, 런타임, 구독 가져오기, 시스템 프록시와 TUN 설정, Windows 오류 해결 방법도 안내합니다.

이 글 핵심 요약

Windows에서 처음 v2rayN을 설정하거나 UI 버전을 바꾼 뒤 실행되지 않는 경우에 적합한 안내입니다. 먼저 CPU 아키텍처, UI 프레임워크, 런타임 의존성을 확인해 설치 파일을 고르고, 압축을 완전히 푼 뒤 구독을 가져옵니다. 시스템 프록시로 브라우저 연결을 확인한 다음, 시스템 프록시를 사용하지 않는 앱에 한해 TUN을 별도로 테스트하세요. 본문에 나오는 포트는 설정 예시이며 모든 버전의 기본값은 아닙니다.

데스크톱판과 WPF판: UI 프레임워크와 아키텍처 구분하기

v2rayN은 구독을 관리하고 설정을 생성하며 프록시를 제어하는 데스크톱 클라이언트입니다. 실제 연결은 함께 제공되는 코어가 처리합니다. 다운로드 페이지에서 ‘데스크톱판’과 ‘WPF판’을 구분한다면, 일반적으로 데스크톱판은 Avalonia 기반 UI 빌드이고 WPF판은 Windows WPF UI 프레임워크를 사용합니다. 이름만 보고 내부 구성 요소를 단정하지 말고 선택한 설치 파일의 안내를 확인하세요.

UI 프레임워크는 노드 프로토콜이나 속도를 결정하지 않습니다. 두 빌드에서 VLESS 또는 VMess 설정을 사용할 수 있는지는 포함된 코어와 버전, 설정 매개변수에 따라 달라집니다. UI 버전을 바꿔도 잘못된 서버 주소, UUID, 전송 경로, REALITY 매개변수가 자동으로 수정되지는 않습니다.

Windows 설치 파일 선택

데스크톱판
  • 다운로드 안내에 Avalonia 데스크톱 빌드라고 표시되어 있다면 해당 빌드의 의존성 요구 사항에 맞춰 설치하세요.
  • Windows용 파일인지 확인하고 다른 운영체제용 파일과 혼용하지 마세요.
  • 처음 사용한다면 다운로드 센터에서 현재 권장하는 Windows 빌드부터 시작할 수 있습니다.
WPF판
  • Windows UI 프레임워크를 사용하며 익숙한 WPF 인터페이스를 계속 사용하려는 경우에 적합합니다.
  • 프레임워크 종속형 패키지는 버전과 아키텍처에 맞는 .NET Desktop Runtime이 필요합니다.
  • 특정 UI 동작에 문제가 있다면 별도 폴더에 다른 빌드를 설치해 테스트하세요. 기존 파일을 덮어쓰거나 두 빌드를 섞지 않는 것이 좋습니다.

먼저 Windows 버전과 CPU 아키텍처 요구 사항을 충족한 뒤 UI 취향에 따라 선택하세요. 어느 빌드든 정상적인 구독 설정을 대신해 주지는 않습니다.

Windows ‘설정’ → ‘시스템’ → ‘정보’에서 ‘시스템 종류’를 확인하세요. x64 시스템에는 x64 패키지를, ARM64 기기에는 명시적으로 제공되는 ARM64 패키지를 우선 선택합니다. 아키텍처는 설치 조건이고 데스크톱판과 WPF판은 별도의 선택 기준이므로 혼동하지 마세요.

압축 해제와 런타임 준비: 실행 전 문제 해결

압축 파일은 완전히 풀고 나서 실행해야 합니다. 압축 프로그램 안에서 실행 파일을 바로 열면 일부 파일만 임시로 풀려 코어나 리소스 폴더, 설정 데이터베이스를 찾지 못할 수 있습니다. D:\Tools\v2rayN처럼 쓰기 권한이 있는 일반 폴더를 사용하세요. D 드라이브가 없다면 현재 사용자 폴더 아래에 도구용 폴더를 만들어도 됩니다.

  1. 아키텍처 확인

    ‘설정’ → ‘시스템’ → ‘정보’에서 x64 또는 ARM64인지 확인한 뒤 다운로드 센터에서 해당 Windows 패키지를 선택하세요. 데스크톱판과 WPF판 중 무엇을 골랐는지도 기록해 둡니다.

  2. 압축 파일 완전히 풀기

    압축 파일에 들어 있는 모든 파일을 별도의 폴더에 풀고, 폴더 안의 v2rayN.exe를 실행하세요. 패키지의 폴더 구조를 유지하고 실행 파일 하나만 따로 복사하지 마세요.

  3. 필요한 런타임 설치

    .NET 설치 안내가 표시되면 프레임워크 이름과 버전, 아키텍처를 확인하세요. WPF 프레임워크 종속형 패키지는 요구 사항에 맞는 Desktop Runtime을 설치해야 합니다. SDK나 다른 런타임을 같은 의존성으로 간주하지 마세요.

  4. 실행 확인

    일반 실행 후 기본 창과 로그 영역이 정상적으로 표시되는지 확인하세요. 먼저 TUN과 시작 프로그램 등록은 사용하지 말고, 폴더 권한이나 프로그램 파일 누락 여부부터 점검합니다.

구독 가져오기와 업데이트: 노드 목록에 설정 추가하기

v2rayN 설치를 마쳤다고 바로 사용할 수 있는 노드가 생기는 것은 아닙니다. 구독 링크는 보통 설정 목록을 반환하는 주소이며 접속 정보가 포함될 수 있습니다. 사용 권한이 있고 출처가 명확한 링크만 사용하고, 전체 링크를 공개 스크린샷이나 문의 글에 올리지 마세요.

아래 경로는 일반적인 중국어 UI를 기준으로 안내합니다. 빌드에 따라 같은 메뉴가 메뉴 표시줄이나 도구 모음에 있을 수 있고 버튼 이름도 조금 다를 수 있습니다. 이 경우 ‘구독 그룹’과 ‘구독 업데이트’ 기능을 찾아 사용하세요. 구독 URL 전체를 개별 서버의 주소 입력란에 넣으면 안 됩니다.

  1. 구독 그룹 만들기

    ‘구독 그룹’ → ‘구독 그룹 설정’ → ‘추가’를 열고 알아보기 쉬운 메모를 입력한 다음, URL 입력란에 구독 주소 전체를 붙여 넣고 저장하세요.

  2. 첫 구독 업데이트

    ‘구독 그룹’ 메뉴에서 ‘모든 구독 업데이트(프록시 사용 안 함)’를 선택하세요. 아직 사용할 프록시가 없다면 현재 네트워크에서 구독 서비스에 직접 접속할 수 있는지 먼저 확인합니다.

  3. 목록 확인

    업데이트 후 대상 그룹에 서버 항목이 표시되는지 확인하세요. 성공 메시지는 뜨는데 항목이 없다면 그룹 필터, 구독 콘텐츠 형식, 서버가 로그인 페이지나 오류 페이지를 반환하는지 확인합니다.

  4. 활성 서버로 설정

    서버 목록에서 대상 항목을 마우스 오른쪽 버튼으로 클릭하고 ‘활성 서버로 설정’을 선택한 다음 코어 로그를 확인하세요. 목록을 가져오는 것과 설정을 활성화하는 것은 별개입니다. 구독 업데이트 성공만으로 연결이 정상이라고 판단할 수 없습니다.

이미 작동 여부를 확인한 로컬 설정이 있고 구독 주소에 프록시로만 접속할 수 있다면 ‘모든 구독 업데이트(프록시 사용)’를 선택하세요. 사용할 연결이 없는 상태에서 이 옵션을 반복해서 바꿔도 구독 주소 만료, 접속 토큰 만료, 서버 오류는 해결되지 않습니다. VLESS, VMess 및 전송 보안 항목은 구독에서 받은 값을 우선 사용하고, ‘호환성’을 이유로 프로토콜을 임의로 바꾸지 마세요.

시스템 프록시: 브라우저 연결부터 확인하기

처음 설정할 때는 시스템 프록시만 활성화하는 것이 좋습니다. Windows 프록시 설정을 따르는 프로그램의 요청을 로컬 수신 포트로 보내지만 모든 앱의 트래픽을 가로채지는 않습니다. 시스템 트레이 메뉴의 ‘시스템 프록시’ → ‘시스템 프록시 자동 설정’은 Windows 프록시 설정을 적용합니다. ‘자동 설정’이라고 해서 모든 사이트가 원격 노드를 통과하는 것은 아니며, 실제 경로는 클라이언트 라우팅 규칙에 따라 결정됩니다.

로컬 수신 설정 예시

수신 주소
127.0.0.1
HTTP 포트
10809, 예시일 뿐입니다
SOCKS 포트
10808, 예시일 뿐입니다
설정 위치 확인
‘설정’ → ‘매개변수 설정’의 로컬 수신 설정

일부 빌드에서는 혼합 포트를 사용합니다. 실제 UI와 로그를 확인하고 별도의 HTTP 포트가 제공되지 않는다면 예시 값을 억지로 적용하지 마세요.

Windows 프록시 설정 확인

설정 위치
‘설정’ → ‘네트워크 및 인터넷’ → ‘프록시’
프록시 주소
로컬 수신 주소와 일치해야 합니다
프록시 포트
HTTP 또는 혼합 수신 포트와 일치해야 합니다
종료 전 처리
시스템 프록시를 먼저 해제한 다음 클라이언트를 종료하세요

클라이언트를 종료해도 로컬 프록시 주소가 남아 있으면 브라우저가 더 이상 수신하지 않는 포트에 연결을 시도할 수 있습니다.

아래 세 숫자는 로컬 문제 해결 대상을 기억하기 위한 예시입니다. 현재 버전의 기본 설정이나 원격 서버 포트가 아닙니다. 실제 설정에서 이 값을 사용하는 경우에만 아래 명령을 그대로 실행할 수 있습니다.

10808
SOCKS 로컬 포트 예시
10809
HTTP 로컬 포트 예시
127.0.0.1
로컬에서만 접속하는 루프백 주소

Windows 프록시 페이지에 올바른 값이 표시되어도 코어가 실행 중이라는 뜻은 아닙니다. ‘활성 설정이 유효함’, ‘코어가 실행 중임’, ‘로컬 포트가 수신 중임’을 모두 확인해야 합니다. 브라우저 확장 프로그램이 별도의 프록시를 지정할 수도 있습니다. 문제를 찾는 동안에는 브라우저가 시스템 프록시를 사용하도록 설정해 두 구성이 서로 다른 포트를 가리키지 않게 하세요.

TUN과 라우팅 분기: 필요한 경우 트래픽 처리 범위 확장

TUN은 가상 네트워크 인터페이스를 통해 트래픽을 받아 시스템 프록시를 사용하지 않는 프로그램에 적용할 수 있습니다. 다만 라우팅, DNS, 앱 동작, 권한의 영향을 받으므로 모든 네트워크 문제를 해결하는 기능은 아닙니다. 먼저 같은 노드가 시스템 프록시에서 작동하는지 확인한 뒤 TUN을 테스트해야 노드 문제와 로컬 트래픽 처리 문제를 구분할 수 있습니다.

Windows에서 자주 발생하는 오류: 포트와 로그로 원인 찾기

문제를 확인할 때는 먼저 기본 창의 로그 영역을 열어 오류가 발생한 시각과 첫 번째 구체적인 오류를 기록하세요. ‘시작 실패’나 ‘연결 실패’라는 마지막 문구만 잘라내면 실제 원인이 빠지는 경우가 많습니다. 로그를 공유하기 전에는 구독 토큰, UUID, 서버 주소 등 민감한 정보를 삭제하세요. 설정 파일 전체를 일반 첨부 파일처럼 공개하지 마세요.

아래 명령은 PowerShell에서 실행합니다. 실제 HTTP 수신 포트가 10809라고 가정하고 먼저 수신 상태를 확인한 다음 명시적으로 프록시를 지정해 요청을 보냅니다. example.com은 대상 주소 예시일 뿐입니다. 테스트할 때는 접속 권한이 있고 상태를 알고 있는 주소를 선택하고, 해당 요청이 프록시 아웃바운드 규칙에 적용되는지 확인하세요.

# 예시 포트와 해당 프로세스 PID 확인
netstat -ano | findstr :10809

# 로컬 HTTP 프록시를 명시해 앱이 시스템 프록시를 사용하는지 여부와 분리
curl.exe --proxy http://127.0.0.1:10809 --connect-timeout 10 --max-time 20 -I https://example.com

# 클라이언트를 종료한 뒤 일반 직접 연결이 여전히 가능한지 확인
curl.exe --noproxy "*" --connect-timeout 10 --max-time 20 -I https://example.com

LISTENING은 어떤 프로세스가 포트를 수신 중이라는 뜻일 뿐, 해당 프로세스가 현재 v2rayN 코어라는 뜻은 아닙니다. 출력된 PID를 작업 관리자 ‘세부 정보’ 탭에서 확인하세요. HTTP 응답이 왔다는 것은 요청 경로에서 응답을 받았다는 의미이지, 원격 프록시를 거쳤다는 증거는 아닙니다. 라우팅 로그도 함께 확인하세요. 연결이 거부되면 우선 로컬 수신 상태를 확인하고, 핸드셰이크 오류가 발생하면 프로토콜 매개변수와 시스템 시간을 추가로 점검합니다.

더블클릭해도 창이 뜨지 않는데, 설치 파일을 잘못 받았나요?

먼저 시스템 트레이에서 프로그램이 이미 실행 중인지 확인하고, 압축 파일 내부에서 실행한 것은 아닌지 점검하세요. 쓰기 가능한 폴더에 압축을 다시 완전히 푸세요. .NET 안내가 표시되면 명시된 프레임워크, 버전, 아키텍처에 맞는 런타임을 설치합니다. Windows 보안 기능이 파일을 차단했다면 보호 기록과 파일 출처를 먼저 확인하고 모든 보호 기능을 바로 끄지 마세요.

로그에 address already in use가 표시되면 어떻게 하나요?

포트 확인 명령을 실행해 PID를 확인하고 클라이언트가 두 개 실행 중인지 살펴보세요. 중복 인스턴스를 종료하거나 ‘설정’ → ‘매개변수 설정’에서 로컬 수신 포트를 변경합니다. 변경 후에는 Windows 시스템 프록시와 앱의 수동 프록시도 함께 확인해 이전 포트를 계속 가리키지 않도록 하세요.

노드는 표시되는데 브라우저에서 사이트가 열리지 않는 이유는 무엇인가요?

활성 서버로 설정했는지 확인하고 코어가 실행 중인지 살펴본 다음, 트레이의 ‘시스템 프록시’가 자동 설정 상태인지 확인하세요. 위의 명시적 프록시 명령으로 비교할 수 있습니다. 명령은 되지만 브라우저에서 연결되지 않으면 브라우저 확장 프로그램과 시스템 프록시를 먼저 확인하세요. 둘 다 실패한다면 노드, DNS, 라우팅을 점검합니다.

종료한 뒤 일반 웹사이트도 열리지 않으면 어떻게 복구하나요?

v2rayN을 다시 열고 TUN을 끈 다음 트레이에서 ‘시스템 프록시’ → ‘시스템 프록시 해제’를 선택하세요. 프로그램을 실행할 수 없다면 Windows ‘설정’ → ‘네트워크 및 인터넷’ → ‘프록시’에서 이번에 적용된 수동 프록시를 제거합니다. 회사 네트워크에서 원래 사용하던 프록시나 스크립트 설정은 먼저 기록하고 함께 삭제하지 마세요.

업그레이드와 데이터 이전: 설정을 보존하고 폴더 혼용 방지하기

업그레이드 전에 현재 환경이 정상 작동하는지 확인하고 설정을 백업하세요. 데스크톱판과 WPF판 사이를 전환할 때는 기존 파일을 덮어쓰기보다 별도 폴더를 사용하는 편이 되돌리기 쉽습니다. 빌드에 따라 설정 형식, 데이터베이스 위치, 가져오기 방법이 달라질 수 있습니다. 새 버전에서 데이터를 기록한 뒤 이전 버전이 같은 데이터를 계속 사용하게 하지 않는 것이 좋습니다.

  1. 현재 상태 기록: 앱에 표시된 버전, 패키지 종류, 로컬 수신 포트, 활성 라우팅, TUN 상태를 기록하세요. ‘최신 버전이면 같을 것’이라고 가정하지 말고 실제 상태를 남깁니다.
  2. 종료 후 백업: 먼저 시스템 프록시를 해제하고 TUN을 끈 다음 프로그램을 정상 종료하세요. 포터블 패키지는 압축을 푼 폴더 전체를 백업할 수 있습니다. 별도의 사용자 데이터 폴더를 사용한다면 해당 빌드의 안내에 따라 그 위치도 백업하세요.
  3. 새 폴더에서 확인: 새 패키지의 압축을 완전히 풀고 버전별 가져오기 또는 이전 안내에 따라 설정을 복원하세요. 작동 여부를 확인한 노드 하나로 먼저 테스트한 뒤 구독 업데이트, 시스템 프록시, TUN을 확인합니다.
  4. 마지막으로 시작 프로그램 등록: 안정적으로 작동하는 것을 확인한 뒤 필요한 경우에만 Windows 시작 시 실행 기능을 켜세요. 자동 시작 후 창은 정상적으로 열리지만 TUN이 실패한다면 권한과 시작 로그를 확인하고 시작 항목을 중복 등록하지 마세요.

설치의 목표는 ‘프로그램이 열린다’에서 끝나지 않습니다. 현재 패키지의 의존성, 사용하는 설정, 트래픽이 들어오는 포트, 종료할 때 시스템 설정을 복구하는 방법까지 파악해야 합니다. 이 순서대로 확인해 두면 이후 구독 업데이트 실패, 코어 오류, 라우팅 문제도 원인 범위를 좁혀 해결할 수 있습니다.

v2rayN 다운로드