Windows 사용자는 크로스 플랫폼 Desktop과 기존 WPF 인터페이스 중에서 선택하면 됩니다. macOS와 Linux 사용자는 해당 운영체제용 Desktop 패키지를 선택하세요. 먼저 운영체제와 프로세서 아키텍처를 확인하고, 런타임 의존성, 트레이 동작, 코어 실행 여부를 점검해야 합니다. 이 글에서는 패키지 선택부터 설치, 이전, 문제 해결까지 다루며 인터페이스 프레임워크 차이를 프로토콜이나 노드 문제와 혼동하지 않도록 안내합니다.
Desktop과 WPF의 차이는 인터페이스 계층에 있습니다. 구독 형식은 동일합니다
Avalonia는 크로스 플랫폼 데스크톱 UI 프레임워크이고 WPF는 Windows용 데스크톱 UI 프레임워크입니다. v2rayN Desktop은 Avalonia로 인터페이스를 구성해 Windows, macOS, Linux용 프로그램을 제공합니다. WPF 버전은 Windows용입니다. 크로스 플랫폼이란 운영체제별 빌드를 제공한다는 뜻이지, 하나의 설치 파일을 세 운영체제에서 모두 실행할 수 있다는 뜻은 아닙니다.
v2rayN은 구독 그룹, 노드 선택, 라우팅 설정, 코어 프로세스 관리를 담당합니다. 실제 프록시 연결은 선택한 코어가 처리합니다. VMess, VLESS 등의 프로토콜 사용 가능 여부는 Avalonia나 WPF 중 어떤 프레임워크로 창을 그리는지가 아니라 코어 버전, 노드 전송 설정, 서버 구성에 따라 달라집니다. 인터페이스를 바꿔도 만료된 구독이 복구되지는 않으며, 호환되지 않는 코어에 프로토콜 기능이 자동으로 추가되지도 않습니다.
| 비교 항목 | Desktop(Avalonia) | WPF |
|---|---|---|
| 대상 운영체제 | Windows·macOS·Linux: 운영체제에 맞는 패키지 선택 | Windows |
| 인터페이스와 화면 배율 | 크로스 플랫폼 UI 컨트롤을 사용하지만 시스템 글꼴과 배율 설정의 영향을 받음 | Windows 데스크톱 컨트롤과 창 조작 |
| 트레이 및 창 닫기 동작 | 운영체제, 데스크톱 환경, 클라이언트 설정에 따라 다름 | Windows 알림 영역과 연동 |
| 프로토콜 연결 기능 | 실제로 사용하는 코어와 설정에 따라 다름 | 마찬가지로 코어와 설정에 따라 다름 |
| 시스템 프록시와 TUN | 운영체제별 연동 방식과 권한 확인 필요 | Windows 권한 및 네트워크 설정 확인 필요 |
패키지 선택 결론: 운영체제와 아키텍처를 먼저 확인한 뒤 인터페이스를 선택하세요
현재 기기에서 실행할 수 없는 패키지를 먼저 제외하세요. Windows에서는 인터페이스 사용 습관과 실제 기능 테스트 결과에 따라 Desktop 또는 WPF를 선택하면 됩니다. 특정 노드 연결 실패만으로 인터페이스 프레임워크를 바꾸지는 마세요.
Windows·macOS·Linux 설치 파일 선택
다운로드할 때는 운영체제, 프로세서 아키텍처, 패키지 형식 세 가지를 구분해야 합니다. 파일명의 x64는 일반적으로 Intel 또는 AMD의 64비트 데스크톱 프로세서를, arm64는 64비트 ARM 프로세서를 가리킵니다. 둘 다 64비트이지만 아키텍처가 다르므로 서로 바꿔 사용할 수 없습니다. 런타임이 패키지에 포함되어 있는지는 별개의 정보이므로 다운로드 페이지의 안내를 확인하세요.
아래의 ‘추천’은 여러 데스크톱 운영체제에서 비슷한 인터페이스를 사용하려는 경우를 뜻합니다. 모든 Windows 기기에서 Desktop이 WPF보다 더 적합하다는 의미는 아닙니다. 실제로 제공되는 아키텍처와 패키지 형식은 다운로드 센터의 최신 항목을 확인하세요.
Desktop: 여러 운영체제에서 사용
추천Windows, macOS, Linux용 빌드를 각각 다운로드하세요. 인터페이스 구성은 비슷하지만 시스템 프록시, 트레이, 권한 설정은 운영체제별로 확인해야 합니다.
적합한 사용자: 여러 데스크톱 운영체제를 오가며 비슷한 사용 방식을 유지하려는 사용자
WPF: Windows 전용 환경
Windows에서만 사용하고 기존 인터페이스에 익숙하며 현재 설정이 안정적으로 작동한다면 WPF를 계속 사용해도 됩니다. ‘기존 인터페이스’가 코어가 오래됐다는 뜻은 아닙니다. 코어 상태는 별도로 확인하세요.
적합한 사용자: 주로 Windows를 사용하며 기존 창 및 트레이 조작 방식을 유지하려는 사용자
- Windows: 시스템 ‘설정’ → ‘시스템’ → ‘정보’를 열고 ‘시스템 종류’를 확인하세요. x64 또는 ARM64를 확인한 다음 해당 아키텍처에 맞는 Desktop 또는 WPF 항목을 선택하면 됩니다.
- macOS: Apple 메뉴에서 ‘이 Mac에 관하여’를 열고 ‘칩’ 또는 ‘프로세서’를 확인하세요. Apple Silicon 기기는 arm64 빌드를, Intel 기기는 x64 빌드를 선택하세요. Windows 패키지는 다운로드하지 마세요.
- Linux: 먼저 아키텍처를 확인한 뒤 배포판과 데스크톱 환경에 맞는 패키지 형식을 선택하세요. 압축 파일이 풀린다는 이유만으로 프로그램과 의존성이 실행 가능하다고 판단해서는 안 됩니다.
macOS와 Linux에서는 터미널로 아키텍처를 확인할 수 있습니다. 아래 명령은 시스템 정보만 조회하며 네트워크 설정은 변경하지 않습니다.
uname -m
출력이 x86_64이면 일반적으로 x64에 해당하며, arm64 또는 aarch64이면 64비트 ARM에 해당합니다. Linux에서 필요한 그래픽 라이브러리와 런타임, 호환 시스템 라이브러리를 사용할 수 있는지는 패키지 안내도 함께 확인해야 합니다. 아키텍처가 맞는지는 첫 번째 점검 항목일 뿐입니다.
인터페이스, 트레이, 백그라운드 실행은 각각 확인하세요
Desktop과 WPF는 글꼴 렌더링, 목록 간격, 배율, 메뉴 위치, 단축키 반응이 다를 수 있습니다. 고해상도 화면에서 글자가 너무 크거나 팝업이 화면을 벗어나면 클라이언트 문제로 판단하기 전에 시스템 배율과 다중 모니터 배율이 일치하는지 확인하세요. 구독이나 라우팅 설정부터 삭제하지 마세요.
창을 닫아도 프로그램이 반드시 종료되는 것은 아닙니다. 트레이로 최소화되는지, 코어 프로세스가 계속 실행되는지는 클라이언트 옵션과 운영체제의 트레이 지원 여부에 따라 달라집니다. Linux 데스크톱 환경은 상태 아이콘 지원이 특히 제각각입니다. 아이콘이 보이지 않는다고 코어가 중지됐다고 단정할 수 없습니다.
- 처음 실행할 때는 기본 창을 열어 두세요: 노드를 선택한 뒤 로그에서 코어가 정상적으로 시작됐는지 확인하세요. 실패하면 먼저 오류 내용을 기록하세요.
- 창 닫기 동작 확인: 창의 닫기 버튼을 누른 뒤 작업 관리자나 시스템 프로세스 도구에서 클라이언트가 계속 실행 중인지 확인하세요.
- 트레이 확인: Windows에서는 숨겨진 알림 영역 아이콘을, macOS에서는 메뉴 막대를 확인하세요. Linux에서는 데스크톱 환경이 상태 아이콘을 지원하는지 확인하세요.
- 정상 종료 확인: 앱 메뉴나 트레이 메뉴에서 종료한 뒤 시스템 프록시가 의도한 상태로 복구됐는지 확인하세요. 평소 종료할 때 프로세스를 강제로 끝내지 마세요.
WPF에서 Desktop으로 이전하기: 구독과 시스템 설정을 따로 처리하세요
이전하기 전에 기존 데이터를 백업하세요. 구독 주소, 그룹 정보, 사용자 지정 라우팅, 필요한 설정 기록을 포함해야 합니다. 여기에 접근 자격 증명이 들어 있을 수 있으므로 안전한 위치에 보관하세요. 이전 디렉터리의 설정 파일을 통째로 다른 빌드나 버전의 데이터 디렉터리에 덮어쓰지 마세요. 내부 구조와 경로가 호환되지 않을 수 있습니다.
이전 방법: 기존 환경은 보존하고 새 환경을 별도로 검증하세요
기존 환경: 복구에 필요한 정보 저장
- 현재 구독 그룹과 업데이트 방식을 기록하세요.
- 사용자 지정 라우팅 규칙과 DNS 설정을 저장하세요.
- 로컬 수신 포트, 시스템 프록시, TUN 상태를 기록하세요.
- 프록시와 코어를 중지한 뒤 새 환경을 실행하세요.
새 환경: 최소 항목부터 검증
- 클라이언트 인터페이스에서 구독 그룹을 다시 추가하세요.
- 사용 가능한 기존 노드를 하나 선택하고 코어를 시작하세요.
- 먼저 로컬 프록시를 테스트한 다음 시스템 프록시를 확인하세요.
- 마지막으로 사용자 지정 라우팅, DNS, TUN 설정을 복원하세요.
항목별로 이전하면 문제 원인을 찾기 쉽습니다. 구독은 다시 가져올 수 있지만 이 기기의 권한, 파일 경로, 데스크톱 연동은 다시 확인해야 합니다.
구독을 업데이트하면 서비스 제공자가 제공하는 노드 정보는 가져올 수 있지만 기존 클라이언트의 모든 로컬 설정까지 동기화되는 것은 아닙니다. 그룹 업데이트 간격, 사용자 지정 규칙, 단축키, 창 동작을 하나씩 확인하세요. 운영체제를 바꿔 이전할 때는 기존 절대 경로를 그대로 복사해서 사용할 수 없습니다.
같은 기기에 프로그램 두 개를 보관하더라도 평소에는 하나만 실행하세요. 두 프로세스가 동시에 시스템 프록시를 설정하거나 같은 포트를 사용하거나 가상 네트워크 어댑터를 만들면 문제 원인을 파악하기 어려워집니다. 테스트가 끝나면 사용할 인스턴스를 정하고 시작 프로그램 설정을 확인해 재부팅 후 이전 인스턴스가 다시 실행되지 않도록 하세요.
설치 후 로컬 연결을 먼저 테스트하고 시스템 프록시와 TUN을 확인하세요
‘인터페이스가 열림’과 ‘프록시 사용 가능’은 별도로 확인해야 합니다. 전자는 그래픽 프로그램이 최소한 실행됐다는 뜻입니다. 후자는 코어 실행 파일, 노드 매개변수, 로컬 인바운드, 라우팅 설정이 모두 정상이어야 합니다. 런타임이 없다는 안내가 표시되면 패키지 설명에 따라 의존성을 설치하거나 적합한 패키지를 선택하세요. 코어 시작 실패를 곧바로 Avalonia 문제로 단정하지 말고 코어 로그를 확인해야 합니다.
- 코어 상태 확인: 시작 로그를 확인하고 코어 누락, 실행 권한 부족, 포트 충돌부터 점검하세요. Linux에서는 프로그램이 실행 가능한 위치에 있는지도 확인하세요.
- 로컬 연결 지점 확인: ‘설정’ → ‘매개변수 설정’을 열고 실제 수신 주소, 포트, 인바운드 유형을 확인하세요. 버전에 따라 하위 항목 배치가 달라질 수 있으므로 화면에 표시된 값을 기준으로 확인하세요.
- 프록시 단독 테스트: 프록시 주소를 명시한 요청을 사용해 앱의 시스템 프록시 설정 참조 여부로 인한 변수를 제외하세요.
- 시스템 프록시 확인: 로컬 연결이 정상인 것을 확인한 다음 브라우저가 시스템 프록시를 사용하도록 설정하세요. 시스템 프록시를 설정해도 모든 프로그램이 반드시 프록시를 사용하는 것은 아닙니다.
- 마지막으로 TUN 확인: 프록시를 인식하지 않는 프로그램의 트래픽을 처리해야 할 때만 활성화하고 시스템 권한, 라우팅, DNS를 확인하세요. TUN이 트래픽을 가로채더라도 모든 목적지의 트래픽이 프록시를 통해 나가는 것은 아닙니다.
이 예시는 현재 컴퓨터에서 수신 중인 것으로 확인한 SOCKS 연결 지점 127.0.0.1:10808을 사용합니다. 테스트용 예시이며 현재 설치의 기본 포트라고 보장할 수 없습니다. 인터페이스에 다른 포트가 표시되면 해당 값으로 바꿔야 합니다. Windows 터미널에서는 curl.exe를 사용해 curl 프로그램을 명시적으로 실행하고, macOS와 Linux에서는 curl을 사용하세요.
curl --proxy socks5h://127.0.0.1:10808 --head --connect-timeout 10 https://example.com/
socks5h는 도메인 이름 조회를 프록시 측에 맡기며, --connect-timeout 10은 연결 단계의 제한 시간을 10초로 설정합니다. 이 요청으로 현재 경로에서 대상에 도달할 수 있는지 확인할 수는 있지만, 응답 한 번만으로 모든 라우팅과 DNS가 올바르다고 판단할 수는 없습니다. 로컬 포트에 연결할 수 없다는 오류가 즉시 나타나면 수신 상태를 먼저 확인하세요. 연결된 뒤 시간 초과가 발생하면 노드, 출구, 대상 연결 상태를 확인하세요.
패키지 선택 및 이전 관련 자주 묻는 질문
Windows에서 WPF를 사용 중인데 Desktop으로 바꿔야 하나요?
인터페이스 프레임워크가 다르다는 이유만으로 이전할 필요는 없습니다. 여러 운영체제에서 비슷한 인터페이스를 사용해야 하는지, 재현 가능한 표시 또는 조작 문제가 있는지 먼저 살펴보세요. 현재 환경이 안정적이라면 백업한 뒤 Desktop을 별도로 테스트하세요. 검증하기 전에 기존 환경을 덮어쓰지 마세요.
macOS에서 exe 파일을 다운로드했는데 왜 열리지 않나요?
운영체제에 맞지 않는 패키지를 선택한 것입니다. 다운로드 센터에서 macOS용 Desktop 항목을 선택한 뒤 프로세서에 따라 arm64 또는 x64를 고르세요. 파일 확장자 이름을 바꿔도 대상 운영체제가 바뀌거나 런타임 의존성이 추가되지는 않습니다.
Linux에서 창은 정상적으로 열리지만 트레이 아이콘이 보이지 않으면 어떻게 하나요?
먼저 기본 창을 열어 둔 채 현재 데스크톱 환경이 상태 아이콘을 지원하는지 확인하고 클라이언트의 창 닫기 옵션을 점검하세요. 시스템 프로세스 도구로 프로그램이 백그라운드에서 계속 실행 중인지 확인하세요. 트레이 아이콘은 데스크톱 연동 요소이며 코어 연결 상태와는 다릅니다.
Desktop으로 바꾼 뒤에도 구독은 같은데 라우팅 결과가 다른 이유는 무엇인가요?
선택한 코어, 사용자 지정 라우팅, 규칙 데이터, DNS, 시스템 프록시 상태를 순서대로 확인하세요. 구독이 같다는 것은 노드 출처가 같다는 뜻일 뿐, 로컬 라우팅 설정까지 같다는 뜻은 아닙니다. 프록시 연결 지점을 명시한 요청으로 먼저 검증한 뒤 기존 규칙을 하나씩 복원하세요.
ARM 기기에 x64 패키지를 바로 설치할 수 있나요?
호환성 계층을 먼저 선택하지 마세요. 다운로드 센터에 해당 운영체제용 arm64 패키지가 있는지 확인하세요. 호환성 기능을 사용해야 한다면 인터페이스 프로그램과 패키지에 포함된 코어가 각각 실행 가능한지 확인해야 합니다. 인터페이스가 정상적으로 시작돼도 코어 실행까지 보장되는 것은 아닙니다.