Windows에서 처음 v2rayN을 설정하거나, 클라이언트는 실행되지만 인터넷에 연결되지 않는 경우에 참고하세요. 시스템 아키텍처 확인, 파일 전체 압축 해제, 코어 실행, 설정 가져오기, 사용할 서버 선택, 시스템 프록시 설정 및 연결 확인 순서로 진행합니다. 문제를 해결할 때는 화면 실행, 로컬 포트 수신, 원격 연결을 나눠 점검하세요. 시간 초과가 발생했다고 바로 재설치할 필요는 없습니다.
1. 다운로드 전 Windows 아키텍처와 패키지 종류 확인
v2rayN은 서버 설정과 구독, 라우팅, 코어 프로세스를 관리하는 데스크톱 클라이언트입니다. 원격 서버를 제공하지는 않으므로, 시작하기 전에 사용 권한이 있는 구독 주소나 완전한 단일 서버 설정을 준비해야 합니다. 프로그램만 설치하고 유효한 설정이 없으면 프록시 연결을 사용할 수 없습니다.
- Windows에서 ‘설정’ → ‘시스템’ → ‘정보’를 열고 ‘시스템 종류’를 확인하세요. 일부 버전에서는 해당 페이지가 ‘시스템 정보’ 등으로 표시될 수 있습니다. x64와 ARM64 시스템에 맞는 패키지를 선택해야 하며, 프로세서 브랜드만 보고 판단하면 안 됩니다.
- 다운로드 센터에서 Windows를 선택하세요. 데스크톱 버전은 크로스 플랫폼 인터페이스를 사용하고, WPF 버전은 Windows용입니다. 각 버전의 시스템 요구 사항과 의존성, 패키지 형식은 다운로드 항목의 안내를 확인하세요.
- 압축 파일과 설치 프로그램을 구분하세요. 이 글에서는 압축 파일을 풀어 실행하는 방법을 다룹니다. 설치 프로그램을 선택했다면 설치를 마친 뒤 바로 가기로 실행하세요. 압축 파일 버전의 폴더 관리 방법을 그대로 적용하면 안 됩니다.
- 패키지 설명에서 런타임과 코어가 포함되어 있는지 확인하세요. 자체 포함 패키지와 별도 런타임이 필요한 패키지는 첫 실행 조건이 다릅니다. 파일 크기만으로 패키지의 완전성을 판단하지 마세요.
2. 쓰기 가능한 폴더에 압축을 풀고 프로그램 실행
압축 파일 버전은 C:\Tools\v2rayN처럼 별도 폴더를 만들어 사용하는 것이 좋습니다. 경로가 짧으면 문제를 확인하기 편하지만, 한글 경로에서 반드시 오류가 발생한다는 뜻은 아닙니다. 현재 사용자에게 쓰기 권한이 있고 임시 파일 정리 대상이 아니며, 이전 버전 파일과 섞이지 않는 폴더를 선택하는 것이 중요합니다.
- 파일 탐색기에서 압축 파일을 마우스 오른쪽 버튼으로 클릭하고 ‘압축 풀기’를 선택한 다음, 전체 폴더를 원하는 위치에 풉니다. 압축 프로그램의 미리보기 창에서 실행 파일을 바로 더블 클릭하지 마세요.
- 실행 파일과 패키지에 포함된 나머지 파일 및 하위 폴더가 모두 풀렸는지 확인한 뒤
v2rayN.exe를 실행하세요. 실행 파일 하나만 복사하면 필요한 의존성이나 코어 경로가 누락될 수 있습니다. - Windows에서 보안 위험 경고가 표시되면 먼저 다운로드 출처와 경고 내용을 확인하세요. 시스템 보안 기능 전체를 꺼서 해결하지 마세요. 파일이 격리되었다면 Windows 보안의 ‘보호 기록’을 먼저 확인하세요.
- 일반적인 시스템 프록시 사용에는 보통 관리자 권한이 필요하지 않습니다. 먼저 일반 권한으로 실행해 보세요. 관리자 권한이 필요한 기능을 사용할 때만 클라이언트 안내에 따라 권한을 높이면 됩니다.
첫 실행 후 설정이 프로그램 폴더나 사용자 데이터 폴더에 저장될 수 있으며, 실제 위치는 버전과 실행 방식에 따라 다릅니다. 업그레이드 전에는 클라이언트의 백업 기능을 사용하거나 실제 데이터 폴더를 백업하세요. 프로그램 폴더가 유일한 설정 저장 위치라고 단정하지 마세요.
3. 런타임 환경과 로컬 수신 포트 확인
화면이 표시된다는 사실만으로 클라이언트 UI가 실행된 것이 확인될 뿐, 코어가 정상 작동한다는 뜻은 아닙니다. 먼저 하단 상태 표시와 로그, 현재 코어 상태를 확인한 뒤 ‘설정’ → ‘매개변수 설정’에서 로컬 수신 주소와 포트를 확인하세요. 버전에 따라 탭 이름은 다를 수 있으니 SOCKS, HTTP 또는 혼합 수신 항목을 찾으면 됩니다.
이 숫자는 문제 해결을 위한 참고값이지, 모든 버전의 설정을 동일하게 바꿔야 한다는 뜻은 아닙니다. 설정에 혼합 포트만 있다면 해당 포트에서 지원되는 HTTP 및 SOCKS 연결을 모두 받을 수 있습니다. 두 수신 포트를 따로 설정했다면 HTTP 프록시를 테스트할 때 HTTP 포트를 입력해야 합니다. 로컬에서만 사용할 경우 수신 주소는 보통 127.0.0.1로 유지하세요. 문제를 해결하려고 LAN에 포트를 공개하지 마세요.
확인 순서: 수신 포트를 먼저 확인하고 원격 연결 테스트
현재 수신 포트를 기록하고 코어 로그에 시작 실패가 없는지 확인하세요. 로컬 포트에도 연결할 수 없다면 원격 서버를 바꾸거나 구독을 반복해서 업데이트하기보다 프로세스와 포트부터 점검하세요.
.NET 설치를 요청하는 대화상자가 나타나면 표시된 프레임워크 이름, 주 버전, 아키텍처에 맞는 런타임을 설치하세요. WPF 패키지에서 Windows Desktop Runtime을 요구한다면 일반 .NET Runtime이나 다른 주 버전만 설치해서는 실행되지 않을 수 있습니다. 다운로드한 빌드의 안내를 확인하세요.
4. 구독 또는 공유 링크를 가져오고 사용할 서버 선택
구독 주소는 여러 서버 설정을 가져오는 데 사용하고, 단일 공유 링크에는 서버 하나의 정보만 담깁니다. 두 항목의 가져오기 메뉴를 혼동하지 마세요. 구독을 가져오는 데 성공해도 연결이 가능하다는 뜻은 아닙니다. 구독 유효성, 서버 설정의 완전성, 현재 코어의 프로토콜 및 전송 방식 지원 여부를 확인해야 합니다.
- 구독 추가: ‘구독 그룹’ → ‘구독 그룹 설정’을 열고 새 그룹을 만든 다음, 알아보기 쉬운 이름과 전체 구독 주소를 입력해 저장하세요. 새 그룹 추가 버튼이 표시된다면 같은 설정으로 이동하면 됩니다.
- 목록 업데이트: ‘구독 그룹’ 메뉴에서 ‘구독 업데이트’를 선택하세요. 사용할 수 있는 프록시가 없는 첫 실행 시에는 프록시를 거치지 않는 업데이트 방법을 먼저 사용하세요. 네트워크에서 구독 서버에 접속할 수 없다면 서비스 제공자의 안내를 따르거나, 연결이 확보된 뒤 프록시를 통한 업데이트를 시도하세요.
- 단일 설정 가져오기: 전체
vmess://또는vless://공유 링크를 복사한 뒤 ‘서버’ 메뉴에서 ‘클립보드에서 가져오기’와 같은 항목을 선택하세요. VMess와 VLESS는 서로 다른 프로토콜이므로 링크 접두사를 임의로 바꾸지 마세요. - 사용할 서버 선택: 목록에서 서버를 선택하고 마우스 오른쪽 버튼 메뉴의 ‘활성 서버로 설정’ 또는 이에 해당하는 기능을 실행하세요. 상태 영역에 표시된 서버가 선택한 항목과 일치하는지 확인합니다.
목록이 비어 있다면 구독 업데이트 오류 내용을 먼저 확인하세요. 주소를 빠짐없이 복사했는지, 구독이 만료되지 않았는지, 반환된 내용이 클라이언트에서 지원하는 형식인지 점검합니다. 웹사이트 로그인 주소를 구독 주소로 사용하면 노드 목록 대신 웹 페이지가 반환될 수 있습니다.
5. 시스템 프록시를 켜고 적용 범위와 라우팅 모드 구분
코어가 실행 중이고 사용할 서버가 선택된 것을 확인한 다음, 트레이 아이콘 메뉴에서 ‘시스템 프록시’ → ‘시스템 프록시 자동 설정’ 또는 이에 해당하는 항목을 선택하세요. Windows 수동 프록시 설정은 클라이언트의 로컬 수신 포트를 가리킵니다. Windows ‘설정’ → ‘네트워크 및 인터넷’ → ‘프록시’에서 주소와 포트가 일치하는지 확인할 수 있지만, 두 곳에서 설정을 반복해서 바꾸는 것은 권장하지 않습니다.
- 시스템 프록시: Windows 시스템 프록시 설정을 따르는 앱이 요청을 로컬 프록시로 보내도록 지정합니다. 모든 프로그램이 이 설정을 따르는 것은 아닙니다.
- 라우팅 규칙: 요청이 코어에 전달된 다음 직접 연결할지, 프록시를 사용할지, 차단할지 결정합니다. 시스템 프록시를 켜도 직접 연결 규칙에 해당하는 요청은 원격 서버를 거치지 않을 수 있습니다.
- TUN: 가상 네트워크 인터페이스와 권한, 라우팅, DNS가 관련된 별도의 트래픽 처리 방식입니다. 처음 설치할 때는 시스템 프록시부터 확인하고, 변수만 늘어날 수 있으니 여러 트래픽 처리 방식을 동시에 켜지 마세요.
테스트할 때는 브라우저에서 별도로 설정한 프록시 확장 프로그램이나 사용자 지정 프록시를 먼저 끄세요. 이런 설정이 시스템 프록시를 덮어쓸 수 있습니다. 브라우저는 연결되지만 특정 데스크톱 프로그램이 작동하지 않는다면, 다른 처리 방식을 검토하기 전에 해당 프로그램에 별도의 프록시 설정이 있는지 확인하세요.
포트를 지정해 명령줄에서 테스트
PowerShell에서 아래 명령을 실행하세요. 예시에서는 HTTP 또는 혼합 포트가 실제로 10808이라고 가정합니다. 일부 PowerShell 환경에서 curl이 다른 명령으로 해석되는 것을 피하기 위해 curl.exe를 사용합니다.
curl.exe --proxy http://127.0.0.1:10808 --connect-timeout 10 --max-time 20 -I https://example.com/
이 명령은 로컬 프록시를 직접 지정하므로 앱이 시스템 프록시 설정을 읽는지에 영향을 받지 않습니다. HTTP 응답 헤더가 반환되면 요청에 응답이 도착한 것입니다. 하지만 이 결과만으로 모든 트래픽이 원격 서버를 거쳤다고 단정할 수는 없습니다. 코어 라우팅에서 해당 도메인을 직접 연결했을 수 있으므로, 실제 출구를 확인하려면 같은 시간대의 라우팅 로그를 함께 살펴보세요.
6. 자주 발생하는 오류: 시작·수신·연결 단계별 점검
오류가 발생한 시점의 첫 번째 주요 로그를 보관하세요. 마지막의 ‘시작 실패’ 문구만 확인하는 것보다 문제를 찾기 쉽습니다. 아래 영어 문구는 나타날 수 있는 오류 예시입니다. 경로와 버전, 서버 주소는 환경마다 다를 수 있으며, 서로 다른 단계의 오류를 모두 구독 만료 탓으로 돌려서는 안 됩니다.
오류: You must install or update .NET to run this application.
원인 및 해결: 필요한 런타임이 없거나 설치된 런타임의 아키텍처 또는 주 버전이 맞지 않을 수 있습니다. 안내에 표시된 Framework와 Architecture를 확인하고 패키지 요구 사항에 맞는 런타임을 설치한 뒤 클라이언트를 종료하고 다시 실행하세요.
오류: Only one usage of each socket address is normally permitted
원인 및 해결: 코어가 바인딩하려는 로컬 주소와 포트를 다른 프로세스가 이미 사용 중입니다. 클라이언트를 중복 실행했는지 확인하고, 포트를 사용 중인 프로세스도 살펴보세요. 용도를 확인한 뒤 충돌하는 프로그램을 종료하거나 로컬 수신 포트를 변경하고 시스템 프록시 설정도 함께 수정하세요.
오류: Failed to connect to 127.0.0.1 port 10808
원인 및 해결: 테스트 프로그램이 지정한 로컬 포트에 연결하지 못했습니다. 코어가 실행되지 않았거나 포트를 잘못 입력했을 때 흔히 발생합니다. 현재 수신 설정과 시작 로그를 확인하세요. 원격 서버 비밀번호나 프로토콜부터 바꾸지는 마세요.
오류: i/o timeout
원인 및 해결: 제한 시간 안에 네트워크 작업이 완료되지 않았습니다. DNS 조회, 원격 연결, 구독 요청 중에 발생할 수 있습니다. 같은 로그에서 대상 주소와 작업 단계를 먼저 확인한 뒤 로컬 네트워크, 서버 상태 또는 구독 서버를 각각 점검하세요.
오류: x509: certificate has expired or is not yet valid
원인 및 해결: 인증서 유효 기간 확인에 실패했습니다. PC의 시간이 잘못되었거나 서버 인증서가 실제로 만료되었을 수 있습니다. 먼저 Windows ‘설정’ → ‘시간 및 언어’ → ‘날짜 및 시간’에서 시간을 맞춘 뒤 서비스 제공자에게 확인하세요. 인증서 검증을 건너뛰어 문제를 숨기지 마세요.
10808 포트를 수신 중인 프로세스 확인
netstat -ano | findstr :10808
명령 결과의 ‘로컬 주소’ 열에서 대상 포트가 맞는지 확인하고 LISTENING 행을 살펴보세요. 마지막 열에는 프로세스 PID가 표시됩니다. 작업 관리자의 ‘세부 정보’ 탭에서 PID로 프로그램 이름을 확인할 수 있습니다. 수신 중인 항목이 없고 코어가 방금 시작 실패를 기록했다면 먼저 시작 문제를 해결하세요. 이미 수신 중인 프로세스가 있더라도 현재 클라이언트가 실행한 코어일 수 있으므로 충돌이라고 단정할 수 없습니다. 정체를 알 수 없는 프로세스를 포트 번호만 보고 강제 종료하지 마세요.
7. 첫 설정 후 자주 묻는 질문 4가지
구독은 업데이트되는데 웹페이지가 열리지 않는 이유는 무엇인가요?
구독 업데이트는 클라이언트가 설정 정보를 가져왔다는 뜻일 뿐입니다. 사용할 서버, 코어 실행 상태, 시스템 프록시 포트를 차례로 확인한 뒤 프록시를 직접 지정해 테스트하세요. 로컬 연결은 성공하지만 원격 연결이 시간 초과된다면 같은 구독을 반복해서 추가하지 말고 해당 서버의 연결 로그를 확인하세요.
v2rayN을 종료한 뒤 브라우저에서 인터넷이 안 되면 어떻게 하나요?
Windows가 이미 수신을 중단한 로컬 프록시를 계속 가리키고 있을 수 있습니다. 클라이언트를 다시 실행한 뒤 트레이의 ‘시스템 프록시’에서 프록시 설정을 지우고 종료하세요. 프로그램을 실행할 수 없다면 Windows 프록시 설정에서 남아 있는 수동 프록시를 확인하고 끄세요. 조직에서 관리하는 프록시라면 관리자에게 먼저 문의하세요.
매번 관리자 권한으로 실행해야 하나요?
현재 사용자 계정의 시스템 프록시만 사용한다면 보통 필요하지 않습니다. 먼저 일반 권한으로 실행하세요. TUN 등의 기능을 사용할 때만 클라이언트 안내에 따라 권한을 높이면 됩니다. 프로그램이 폴더에 쓸 수 없다면 사용자가 쓰기 가능한 폴더로 옮기세요. 관리자 권한으로 항상 실행하는 것을 일반적인 해결책으로 삼지 마세요.
포트를 변경하면 구독을 다시 가져와야 하나요?
아니요. 로컬 수신 포트와 원격 서버 포트는 서로 다릅니다. 로컬 포트를 변경한 뒤 해당 코어를 다시 시작하고 시스템 프록시 설정을 다시 적용하세요. 브라우저와 명령줄, 기타 앱에 로컬 프록시 포트를 직접 입력했다면 해당 설정도 함께 바꿔야 합니다.
- 정상적으로 연결된 뒤 버전 종류와 현재 코어, 로컬 수신 포트, 라우팅 모드를 기록해 두면 다음에 문제를 재현하고 해결하기 쉽습니다.
- 업그레이드 전에는 클라이언트를 종료하고 설정을 백업한 뒤 패키지 안내에 따라 업데이트하세요. 여러 버전의 파일을 무작정 한 폴더에 덮어쓰지 마세요.
- 라우팅 규칙과 DNS를 조정하려면 설정 가이드를 참고해 항목별로 변경하세요. 한 번에 하나씩만 수정하고 언제든 복구할 수 있도록 설정을 보관하세요.