v2rayN 실행 직후 종료·v2rayNG 앱 실행 오류 해결: .NET 런타임, 권한, 설정 초기화

Windows에서는 .NET 데스크톱 런타임, 폴더 쓰기 권한, 손상된 설정 파일을 확인하고, Android에서는 VPN 권한과 앱 데이터를 점검하세요. 순서대로 따라 할 수 있는 해결 방법을 안내합니다.

이 글의 핵심

v2rayN을 두 번 클릭해도 창이 뜨지 않거나 오류가 표시된 뒤 종료되는 경우, 또는 v2rayNG가 실행 직후 종료되는 경우에 참고하세요. 먼저 프로그램 자체가 종료되는지, 프록시 코어 실행만 실패하는지 구분한 다음 런타임 환경, 쓰기 권한, 설정 분리 순으로 확인합니다. 데이터를 지우는 작업 전에는 백업하세요. 연결을 누른 뒤에만 문제가 생긴다면 VPN 권한과 다른 VPN 서비스도 따로 확인해야 합니다.

강제 종료, 트레이 실행, 연결 실패 구분하기

창이 보이지 않는다고 해서 반드시 앱이 종료된 것은 아닙니다. v2rayN이 알림 영역으로 최소화됐거나 이미 실행 중이라 새 창이 열리지 않을 수 있습니다. 먼저 Windows 작업 표시줄 오른쪽의 숨겨진 아이콘을 펼쳐 확인한 뒤 Ctrl + Shift + Esc를 눌러 작업 관리자를 열고, ‘프로세스’ 또는 ‘세부 정보’에서 v2rayN.exe가 실행 중인지 확인하세요. 계속 두 번 클릭하면 중복 실행과 실제 충돌을 구분하기 어려워집니다.

클라이언트 창은 정상적으로 작동하지만 연결을 누를 때만 오류가 난다면 코어, 포트 또는 설정을 확인해야 합니다. v2rayN은 데스크톱 클라이언트이며, 프록시 연결은 호출된 코어가 처리합니다. v2rayNG는 Xray 코어를 사용하는 Android 클라이언트입니다. 기본 화면이 종료되는 문제와 코어가 종료되는 문제는 원인이 다르므로 구독 정보를 바꿔도 누락된 데스크톱 런타임은 해결되지 않습니다.

프로세스 확인 오류 기록 환경 점검 설정 분리 연결 복구

v2rayN 런타임 및 아키텍처 확인

아래 데스크톱 절차는 Windows용입니다. v2rayN 배포 패키지에 따라 실행 방식이 다를 수 있습니다. 프레임워크 종속형 프로그램에는 호환되는 .NET 런타임이 필요하지만, 자체 포함 패키지에는 런타임이 함께 제공되는 경우가 많습니다. ‘.NET이 설치되어 있다’는 이유만으로 점검을 생략하지 말고, 다른 플랫폼의 종속성 해결 방법을 Windows에 그대로 적용하지도 마세요.

  1. 시스템 아키텍처 확인

    Windows의 ‘설정’ → ‘시스템’ → ‘정보’를 열어 ‘시스템 종류’를 확인하세요. x64와 ARM64를 구분한 뒤 다운로드한 패키지의 아키텍처와 비교합니다. 런타임 아키텍처도 프로그램과 일치해야 합니다. 다른 .NET 소프트웨어가 실행된다는 사실만으로 호환 여부를 판단할 수는 없습니다.

  2. 시작 안내 확인

    런타임 관련 안내가 표시되면 Framework, Architecture, 버전을 기록하세요. 프로그램 폴더에 v2rayN.runtimeconfig.json이 있다면 텍스트 편집기로 프레임워크 이름과 버전을 읽기만 하세요. 종속성 검사를 우회하려고 버전 번호를 직접 수정하면 안 됩니다.

  3. 설치된 런타임 확인

    시작 메뉴를 마우스 오른쪽 버튼으로 클릭하고 ‘터미널’ 또는 ‘Windows PowerShell’을 연 뒤 아래 명령을 실행하세요. WPF 인터페이스를 사용하는 프레임워크 종속 패키지라면 Microsoft.WindowsDesktop.App이 있는지 확인해야 합니다. Microsoft.NETCore.App만 있다고 해서 데스크톱 프레임워크까지 설치된 것은 아닙니다.

  4. 필요한 런타임 설치 후 실행

    해당 배포 패키지의 안내나 시작 시 표시된 메시지에 따라 호환되는 런타임을 설치한 뒤, 기존 프로세스를 종료하고 다시 실행하세요. 설치 프로그램에서 재부팅을 요청하면 먼저 재부팅을 완료해야 합니다. 특정 메이저 버전의 런타임이 모든 클라이언트 패키지에 적용된다고 단정하지 마세요.

dotnet --list-runtimes

터미널에 dotnet을 찾을 수 없다는 메시지가 표시돼도 현재 명령 환경에서 해당 호스트를 찾지 못했다는 뜻일 뿐, 자체 포함 프로그램이 실행되지 않는다는 증거는 아닙니다. 시작 안내와 배포 패키지 유형을 다시 확인하세요. 반대로 명령 결과가 출력되더라도 표시된 프레임워크와 아키텍처가 프로그램에 맞는지 확인해야 합니다.

You must install or update .NET to run this application.

원인 및 해결: 프로그램에 필요한 .NET 런타임을 찾지 못한 상태입니다. 안내에 표시된 프레임워크 이름, 버전, 아키텍처에 맞춰 종속성을 설치하세요. 데스크톱 프레임워크와 일반 런타임은 서로 다릅니다.

폴더 쓰기 권한 및 시스템 오류 기록

클라이언트는 시작할 때 설정, 데이터베이스, 로그 파일을 기록할 수 있습니다. 압축 파일 안에서 바로 실행하거나 보호된 폴더에 설치하는 경우, 또는 동기화 프로그램이 데이터 파일을 잠근 경우 시작에 실패할 수 있습니다. 포터블 패키지는 먼저 사용자 계정에서 쓸 수 있는 별도 폴더에 완전히 압축을 푸세요. 예: C:\Users\Public\Documents\v2rayN-test. 해당 위치가 조직 정책으로 제한된다면 개인 문서 폴더를 사용하세요.

System.UnauthorizedAccessException

원인 및 해결: 프로그램이 특정 경로 또는 리소스에 접근하지 못한 상태입니다. 예외 메시지에 표시된 실제 경로의 접근 권한과 보안 소프트웨어 기록을 확인한 뒤, 쓰기 가능한 폴더에서 다시 테스트하세요. 이 오류만으로 설치 폴더가 잠겼다고 단정할 수는 없습니다.

The process cannot access the file because it is being used by another process.

원인 및 해결: 다른 프로세스가 파일을 사용 중입니다. 중복 실행된 클라이언트를 종료하고 해당 폴더의 동기화나 백업 작업을 일시 중지한 뒤 다시 시도하세요. 프로그램이 실행 중일 때 데이터 파일을 강제로 삭제하면 안 됩니다.

일시적으로 권한을 높였을 때 실행되더라도 권한 차이를 점검할 필요가 있다는 뜻일 뿐, 문제가 해결된 것은 아닙니다. 일반 사용자 계정에서 폴더에 쓸 수 있는지 확인하고 설정 저장, 종료, 재실행까지 정상인지 테스트하세요.

백업 후 설정을 분리해 기존 데이터 보존하기

업데이트 전에는 정상이었지만 업데이트 후 종료되거나, 오류가 설정 파싱 또는 데이터베이스 읽기를 명확히 가리킨다면 ‘초기 환경 비교 테스트’를 진행할 수 있습니다. 설정을 바로 삭제하는 대신 원본을 보존하고, 새 데이터 환경에서 같은 프로그램이 열리는지 확인하는 방법입니다. 설정 폴더는 버전, 패키징 방식, 데이터 경로 설정에 따라 달라집니다. 다른 버전의 파일명을 참고해 여러 파일을 한꺼번에 삭제하지 마세요.

  1. 실행 중인 프로세스 모두 종료

    알림 영역에서 v2rayN을 종료한 뒤 작업 관리자에서 기본 프로그램 프로세스가 끝났는지 확인하세요. 백업하거나 데이터를 옮기기 전에는 관련 프로세스를 종료해야 데이터베이스에 쓰는 도중 문제가 생기지 않습니다.

  2. 기존 데이터 백업

    포터블 방식으로 사용한다면 기존 폴더 전체를 먼저 복사하세요. 데이터가 사용자 폴더에 별도로 저장되어 있다면 그 데이터도 함께 백업해야 합니다. 구독 출처, 직접 추가한 노드, 라우팅 규칙, 사용자 설정을 보관하고 백업 파일은 신뢰할 수 있는 로컬 위치에만 저장하세요.

  3. 테스트용 복사본 만들기

    같은 배포 패키지의 압축을 새 쓰기 가능 폴더에 다시 완전히 풀고 기존 설정은 복사하지 마세요. 해당 버전이 공유 사용자 데이터 폴더를 사용한다면 실제 로그나 데이터 경로 설정을 확인해 데이터도 분리해야 합니다. 프로그램 폴더만 바꾸는 것으로는 데이터가 분리되지 않을 수 있습니다.

  4. 설정을 단계별로 복원

    새 환경에서 실행되면 먼저 종료 후 다시 실행해 보세요. 그다음 신뢰할 수 있는 구독 출처 하나를 가져오고, 마지막으로 라우팅 규칙과 기타 설정을 복원합니다. 각 항목을 복원할 때마다 다시 테스트하고 기존 데이터 폴더 전체를 그대로 덮어쓰지 마세요.

database disk image is malformed

원인 및 해결: SQLite 데이터베이스가 손상됐을 때 나타날 수 있는 오류입니다. 먼저 데이터베이스와 관련 파일을 보존한 뒤, 분리된 새 데이터 환경에서 확인하세요. 사용 중인 데이터베이스 주변 파일만 삭제하거나 유일한 백업을 반복해서 덮어쓰지 마세요.

판단 기준: 기존 데이터에서만 종료된다면 설정부터 확인

같은 프로그램이 초기 환경에서 여러 번 정상 실행되지만, 기존 설정을 특정 항목까지 복원한 뒤 다시 종료된다면 해당 데이터나 호환성 문제를 먼저 살펴보세요. 이 경우 런타임을 반복해서 설치하는 것은 효과가 거의 없습니다. 재현 가능한 최소 설정을 보존하는 편이 원인을 찾는 데 도움이 됩니다.

v2rayNG 실행 직후 종료 및 VPN 권한 확인

Android에서는 문제가 발생한 시점에 따라 점검 항목을 나누세요. 기본 화면이 표시되기도 전에 종료된다면 앱 데이터, 설치 패키지, 시스템 호환성을 먼저 살펴봅니다. 기본 화면이 안정적으로 작동하고 연결을 누를 때만 실패한다면 VPN 권한, 기존 VPN 서비스, Xray 코어 로그를 확인하세요. VPN 권한이 거부된 경우 보통 연결이 설정되지 않습니다. 권한 미승인만으로 모든 ‘실행 직후 종료’ 문제를 설명할 수는 없습니다.

  1. 강제 종료 후 다시 열기

    v2rayNG 아이콘을 길게 눌러 ‘앱 정보’ → ‘강제 종료’를 선택한 뒤 다시 여세요. 시스템 ‘설정’ → ‘앱’ → ‘v2rayNG’에서도 같은 메뉴로 이동할 수 있습니다. Android 버전에 따라 메뉴 이름은 조금 다를 수 있습니다.

  2. 먼저 캐시 삭제

    ‘앱 정보’ → ‘저장공간 및 캐시’ → ‘캐시 삭제’를 선택하세요. ‘저장공간 비우기’ 또는 ‘데이터 모두 삭제’는 아직 누르지 마세요. 두 작업은 영향이 다르며, 후자는 앱 설정과 로컬 구성을 초기화합니다.

  3. VPN 충돌 확인

    시스템 설정에서 ‘VPN’을 검색해 다른 앱이 VPN을 연결 중인지, 또는 ‘항상 사용 설정된 VPN’으로 지정되어 있는지 확인하세요. 다른 VPN 연결을 먼저 중지한 뒤 v2rayNG로 돌아와 연결을 누르고 시스템의 VPN 연결 요청을 확인합니다.

  4. 백업 후 초기화

    구독 주소와 직접 설정한 항목을 다시 가져올 수 있는지 확인한 다음 앱 저장공간 삭제를 고려하세요. 앱이 열린다면 필요한 설정을 먼저 내보내세요. 앱을 열 수 없고 백업도 없다면 데이터 손실 위험을 먼저 따져보고 바로 삭제하지 마세요.

  5. 설치 패키지 아키텍처 확인

    클라이언트를 다시 받는다면 기기 아키텍처에 맞는 설치 패키지를 선택하세요. 잘 모르겠다면 다운로드 페이지에서 범용 패키지 설명을 확인할 수 있습니다. 시스템이 설치를 차단하면 오류 메시지를 확인하세요. 서명 불일치, 버전 다운그레이드 제한, 실행 후 종료는 서로 다른 문제입니다.

창이 열린다면 코어와 포트도 확인

v2rayN 창은 정상적으로 열리지만 로그에 리스닝 실패가 표시된다면 로컬 포트가 사용 중인지 확인하세요. 아래 10808은 로컬 프록시 포트 점검 예시일 뿐, 현재 설정과 같다는 보장은 없습니다. 클라이언트에 실제로 표시된 리스닝 포트를 기준으로 확인하세요. 점검만 하고 정체를 모르는 프로세스를 바로 종료하지 마세요.

10808
로컬 리스닝 포트 예시
127.0.0.1
IPv4 루프백 주소
1개 항목
한 번에 변수 하나만 변경
Get-NetTCPConnection -State Listen -LocalPort 10808 |
  Select-Object LocalAddress, LocalPort, OwningProcess

PowerShell에서 명령을 실행하세요. 결과의 OwningProcess는 프로세스 ID이므로 작업 관리자의 ‘세부 정보’ 탭에서 PID를 확인할 수 있습니다. 결과가 없다면 해당 포트가 현재 리스닝 상태가 아닐 수 있으니 클라이언트 로그도 함께 확인하세요. 다른 클라이언트 인스턴스와 충돌한다면 해당 프로그램을 정상 종료한 뒤 다시 실행하세요. 프록시 포트를 변경했다면 그 포트를 사용하는 앱 설정도 함께 바꿔야 합니다.

bind: Only one usage of each socket address (protocol/network address/port) is normally permitted.

원인 및 해결: Windows에서 리스닝 주소와 포트를 바인딩하는 과정에 충돌이 발생했습니다. 오류에 표시된 주소, 포트, 사용 중인 프로세스를 확인하세요. 충돌한 프로그램을 정상 종료하거나 비어 있는 포트를 사용한 뒤 코어를 다시 시작합니다.

판단 기준: 기본 화면이 정상이라면 기존 설정을 유지

화면을 조작할 수 있고 연결할 때만 실패한다면 로그에서 리스닝, 설정 생성, 원격 연결 문제를 찾아보세요. 포트 확인 대신 앱 데이터를 모두 지우지 마세요. 시스템 프록시는 트래픽이 들어오는 경로에만 영향을 주며 기본 프로그램의 실행 오류는 해결하지 못합니다.

복구 확인 및 문의 정보 정리

복구 후 창이 한 번 나타난 것만으로 해결됐다고 판단하지 마세요. 클라이언트를 종료했다가 다시 열어 설정이 저장되는지 확인하고, 연결을 시작해 같은 오류가 로그에 나타나는지 살펴보세요. 마지막으로 프록시가 필요한 앱에서 요청을 보내 테스트합니다. 이 세 단계를 거쳐야 화면, 코어, 앱 프록시 기능의 복구 여부를 구분할 수 있습니다.

기본 설정을 추가해야 한다면 구독 가져오기 안내를 참고하세요. 창은 복구됐지만 연결에 문제가 남아 있다면 연결 문제 해결을 확인하세요. 안정적으로 실행되는 환경을 먼저 보존한 뒤 기능을 하나씩 복원하는 편이 프로그램, 설정, 시스템 프록시를 한꺼번에 바꾸는 것보다 원인을 찾기 쉽습니다.

v2rayN 다운로드 센터