Desktop과 WPF는 v2rayN의 두 가지 데스크톱 UI 방식이지, 서로 다른 프록시 프로토콜이 아닙니다. 새로 설치하거나 여러 플랫폼에서 사용하려면 Avalonia 기반 Desktop을 먼저 검토하고, Windows에서 안정적으로 사용 중이라면 WPF를 계속 써도 됩니다. 설치 패키지, 실행 환경, 구독 이전, 프록시 모드와 문제 해결 순서에 따라 살펴보고 기존 설정을 보존하면서 버전을 선택하거나 전환하는 방법을 안내합니다.
Desktop과 WPF: UI와 코어를 구분하기
가장 큰 차이는 UI 프레임워크와 지원 플랫폼입니다. Desktop은 Avalonia로 만든 크로스 플랫폼 UI로 Windows, macOS, Linux에서 사용할 수 있습니다. WPF는 Windows 데스크톱 UI 프레임워크이므로 WPF 버전은 Windows에서 사용해야 합니다. 파일명에 Desktop이 들어가도 서버용이라는 뜻은 아니며, 설치만으로 모든 네트워크 트래픽을 자동 처리하는 것도 아닙니다.
| 비교 항목 | Avalonia Desktop | WPF |
|---|---|---|
| UI 프레임워크 | Avalonia | Windows Presentation Foundation |
| 지원 플랫폼 | Windows、macOS、Linux | Windows |
| 사용 방식 | 크로스 플랫폼 UI지만 시스템별 차이가 반영될 수 있음 | Windows 데스크톱 환경에 맞춰 기존 작업 흐름을 유지하기 좋음 |
| 실행 환경 | 패키지의 자체 포함 여부와 대상 플랫폼에 따라 다름 | 패키지의 자체 포함 여부와 필요한 .NET Desktop Runtime에 따라 다름 |
| 프로토콜 지원 | 실제로 사용하는 코어와 설정에 따라 다름 | 실제로 사용하는 코어와 설정에 따라 다름 |
| 이전 시 확인할 점 | 시스템 연동, 경로, 권한 및 기능 메뉴 | 기존 설정 호환성, 의존성 및 코어 업데이트 |
v2rayN은 구독, 서버, 라우팅과 코어 실행을 관리하고, 실제 연결 처리는 선택한 코어가 담당합니다. VMess와 VLESS는 프로토콜 이름이며, Xray와 V2Fly는 서로 다른 코어 프로젝트입니다. Avalonia와 WPF는 UI 기술입니다. UI를 Desktop으로 바꾼다고 특정 노드가 더 빨라지거나, 기존에 지원하지 않던 프로토콜 설정을 사용할 수 있게 되는 것은 아닙니다.
속도 비교 전 연결 조건부터 통일하세요
같은 노드, 같은 코어 버전, 같은 라우팅 규칙과 프록시 모드로 비교하세요. 조건이 다르면 Avalonia와 WPF의 성능 차이를 판단하는 근거로 속도 측정 결과를 사용할 수 없습니다.
플랫폼별 선택: Windows는 둘 다, 다른 데스크톱 OS는 Desktop
새로 설치한다면 Desktop부터 사용해 볼 수 있습니다. 안정적으로 쓰고 있는 Windows 사용자는 UI 이름이 달라졌다는 이유만으로 이전할 필요가 없습니다. 현재 OS, 필요한 기능과 기존 사용 습관을 기준으로 선택하세요. 크로스 플랫폼이라고 모든 기능이 완전히 같다는 뜻은 아닙니다. 버전에 따라 메뉴 위치, 트레이 동작과 시스템 프록시 구현이 달라질 수 있으므로 설치 후 UI와 릴리스 노트를 확인하세요.
Avalonia Desktop
추천새로 설치할 때 우선 검토하기 좋은 선택입니다. Windows에서는 데스크톱 설치 패키지를 선택하고, macOS에서는 프로세서에 맞는 ARM64 또는 x64를 고르세요. Linux에서는 CPU 아키텍처와 배포판의 패키지 형식을 모두 확인해야 합니다. 구독 업데이트, 트레이, 시스템 프록시와 필요한 TUN 기능을 테스트한 뒤 계속 사용할지 결정하세요.
추천 대상: 새 클라이언트 설치, 여러 플랫폼에서 작업하는 사용자, macOS 또는 Linux 데스크톱 사용자
Windows WPF
검증된 Windows 작업 환경을 유지하고 싶을 때 적합합니다. 구독, 라우팅, 단축키와 트레이 조작이 정상이라면 계속 사용하면서 릴리스 노트에 따라 클라이언트와 코어를 관리하세요. 문제가 생기면 먼저 의존성, 권한 또는 노드 설정을 확인하세요. UI를 바꾸는 것이 모든 문제의 해결책은 아닙니다.
추천 대상: 안정적인 Windows 설정을 사용 중이며 익숙한 UI와 기능 메뉴에 의존하는 사용자
- Windows: 「설정」→「시스템」→「정보」에서 시스템 종류를 확인하세요. 다운로드 페이지의 x64 설치 패키지는 x64 시스템용입니다. PC 브랜드만 보고 아키텍처를 판단하지 마세요.
- macOS: Apple 메뉴에서 「이 Mac에 관하여」를 여세요. Apple Silicon은 ARM64, Intel 프로세서는 x64를 선택합니다. 첫 설치부터 아키텍처 변환 기능을 기본 해결책으로 삼지 마세요.
- Linux:
uname -m으로 아키텍처를 확인하세요.x86_64는 x64,aarch64는 ARM64입니다. Debian·Ubuntu 계열은 보통 DEB를, Fedora 등 RPM을 사용하는 배포판은 RPM을 선택하세요.
실행 환경: UI가 켜져도 프록시가 준비된 것은 아닙니다
실행 환경은 배포 패키지에 따라 다릅니다. “Desktop은 .NET이 필요 없고 WPF는 반드시 .NET을 따로 설치해야 한다”고 단정할 수 없습니다. 두 UI 모두 필요한 관리형 런타임을 포함하는 자체 포함 패키지로 배포될 수 있습니다. 프레임워크 종속 패키지는 시스템에 호환되는 런타임이 있어야 합니다. WPF는 일반 .NET Runtime이 아니라 .NET Desktop Runtime이 필요한지 확인하세요.
- 먼저 설치 패키지 확인: OS와 아키텍처, 패키지 릴리스 노트를 확인하세요. 실행 시 런타임이 없다는 메시지가 나오면 안내된 런타임 유형과 주 버전을 확인해 설치하세요. 무작정 다른 버전을 설치하고 반복해서 실행하지 마세요.
- 다음으로 앱 실행 확인: 메인 창이 열리고 설정 디렉터리에 쓸 수 있는지 확인하세요. 한 디렉터리에 Desktop과 WPF 파일을 함께 풀지 마세요. 구성 요소나 코어 파일이 덮어써질 수 있습니다.
- 그다음 코어 실행: 서버를 선택하고 로그를 확인하세요. 코어 파일 누락, 실행 권한 부족, 포트 충돌이 있으면 “창은 열리지만 네트워크가 연결되지 않는” 문제가 생길 수 있습니다.
- 마지막으로 앱 트래픽 연결: 필요한 시스템 프록시를 켜거나 테스트 앱에서 로컬 프록시를 직접 지정하세요. 프록시 진입점, 라우팅과 원격 연결이 모두 정상이어야 설치가 완료된 것입니다.
macOS는 처음 실행할 때 앱 실행 허용과 네트워크 권한이 필요할 수 있습니다. Linux의 TUN은 가상 네트워크 인터페이스 접근과 라우팅 변경 권한이 필요할 수 있습니다. 이런 문제는 운영체제 연동 계층에서 발생하므로 UI를 바꿔도 해결되지 않을 수 있습니다. 먼저 일반 프록시 연결을 확인한 다음 높은 권한이 필요한 트래픽 처리 방식을 설정하면 문제 범위를 좁힐 수 있습니다.
기능 확인: 구독, 시스템 프록시, TUN을 따로 테스트
일상적인 기능은 세 단계로 확인하세요. 구독에서 올바른 서버 목록이 만들어지는지, 코어가 연결을 수립하는지, 앱 트래픽이 클라이언트로 전달되는지를 각각 점검합니다. 시스템 프록시는 시스템 프록시 설정을 따르는 앱에 주로 적용됩니다. TUN은 가상 네트워크 인터페이스로 트래픽을 처리하지만 라우팅, DNS, 권한과 제외 규칙의 영향을 받습니다. 두 기능은 같은 설정이 아니며, “사용 설정 완료” 메시지만으로 실제 연결을 확인할 수 없습니다.
위 포트는 테스트 방법을 설명하기 위한 예시이며 모든 버전의 기본값은 아닙니다. SOCKS와 HTTP 인바운드를 각각 사용하는 설정도 있고, 혼합 인바운드를 사용하는 설정도 있습니다. 「설정」→「매개변수 설정」에서 실제 수신 포트와 인바운드 유형을 확인하세요. 메뉴 이름은 버전에 따라 달라질 수 있습니다. 해당 인바운드가 실제로 설정된 경우에만 아래 명령을 사용할 수 있습니다.
# SOCKS 인바운드: 프록시 서버에서 대상 도메인 이름을 확인
curl --proxy socks5h://127.0.0.1:10808 --connect-timeout 10 https://example.com/
# HTTP 인바운드: HTTP 프록시를 통해 HTTPS 연결 설정
curl --proxy http://127.0.0.1:10809 --connect-timeout 10 https://example.com/
프록시를 직접 지정한 테스트에 성공해도 해당 프록시 경로가 작동한다는 뜻일 뿐, 시스템 프록시나 TUN이 다른 앱에도 적용된다는 의미는 아닙니다. 명령으로 응답은 받지만 브라우저가 열리지 않으면 브라우저 프록시 설정과 시스템 프록시 상태를 확인하세요. 로컬 포트 연결에 실패하면 코어가 실행 중인지, 포트가 일치하는지 먼저 확인하세요. 로컬 프록시에 연결된 뒤에도 시간 초과가 발생하면 노드, DNS와 라우팅을 확인하세요.
- 구독: 「구독 그룹」에 주소를 추가하고 업데이트한 뒤 노드 수, 그룹 이름과 프로토콜 필드를 확인하세요. 업데이트 완료 메시지만 보지 말고 생성된 서버 항목도 확인해야 합니다.
- 라우팅: 같은 규칙을 사용해 테스트하고 직접 연결과 프록시 연결을 구분하세요. UI를 바꾼 뒤에는 기존 규칙 파일 경로와 외부 데이터 파일도 확인해야 합니다.
- TUN: 다른 클라이언트 인스턴스를 먼저 중지한 뒤 필요한 권한, DNS와 라우팅을 확인하세요. 두 TUN이 동시에 시스템 라우팅을 변경하면 문제 원인을 찾기 어려워집니다.
WPF에서 Desktop으로 이전: 백업 후 별도 환경에서 테스트
이전할 때는 기존 환경을 보존하고 되돌릴 수 있는 새 환경을 따로 구성하세요. 구독 주소는 다시 추가할 수 있지만 구독에 모든 로컬 설정이 포함되지는 않습니다. 사용자 지정 라우팅, 수신 포트, 단축키, DNS, 코어 선택과 TUN 설정을 각각 확인해야 합니다. 같은 v2rayN이라도 버전이 다르면 설정 디렉터리를 그대로 덮어써도 된다고 가정하지 마세요.
이전 방법: 기존 환경은 보존하고 새 환경에서 검증
기존 WPF 환경
- 현재 버전에서 제공하는 백업 또는 내보내기 기능을 사용하세요.
- 로컬 포트, 코어, 라우팅과 DNS 설정을 기록하세요.
- 기존 설정 디렉터리를 보존하되 프로그램과 코어는 종료하세요.
- 구독 주소를 안전하게 보관하고 공개 스크린샷에 노출되지 않도록 하세요.
새 Desktop 환경
- 별도 디렉터리나 해당 플랫폼의 일반적인 설치 방법을 사용하세요.
- 구독을 다시 추가하고 정상 작동이 확인된 노드를 하나 선택하세요.
- 먼저 일반 프록시를 테스트한 다음 사용자 지정 규칙을 하나씩 복원하세요.
- 마지막으로 트레이, 자동 시작과 TUN을 테스트하세요.
한 번에 하나의 환경만 실행하세요. 새 환경의 검증을 마친 뒤 기존 설치를 정리할지 결정하면 포트와 시스템 프록시 설정이 서로 덮어쓰는 문제를 피할 수 있습니다.
- 기준 상태 기록: 기존 환경의 클라이언트 버전, 코어 버전, 사용 중인 노드와 프록시 모드를 기록하세요. 정상 접속이 확인된 테스트 대상을 남기되, 로그 전체를 제삼자에게 복사해 보낼 필요는 없습니다.
- 최소 설정 가져오기: 먼저 구독과 사용 가능한 노드 하나만 추가하세요. 첫 테스트에서는 복잡한 라우팅, 자동 작업과 TUN을 복원하지 않아 변수를 줄입니다.
- 항목별 복원: 설정을 하나 복원할 때마다 테스트하세요. 라우팅을 복원한 뒤에만 문제가 생긴다면 UI를 다시 설치하기보다 규칙과 데이터 파일을 먼저 확인하세요.
- 종료 동작 확인: 클라이언트를 닫거나 종료한 뒤 시스템 프록시가 예상대로 복구되는지 확인하세요. 기존 프로그램의 프록시 설정이 남아 있으면 새 프로그램을 실행하기 전에도 네트워크 문제가 발생할 수 있습니다.
플랫폼 간 이전에서는 경로 형식도 확인해야 합니다. Windows의 드라이브 문자 경로는 macOS나 Linux에서 그대로 사용할 수 없습니다. 내보낸 설정이 외부 규칙, 인증서 또는 다른 파일을 참조한다면 대상 시스템에서 경로를 다시 지정하세요. 작업을 줄이려고 설정 디렉터리 전체를 새 플랫폼에 그대로 덮어쓰면 OS별 설정까지 함께 이전될 수 있습니다.
자주 묻는 문제: 실행 오류, 포트 충돌과 버전 선택
문제 해결 순서는 “설치 패키지와 의존성 → 코어 실행 → 로컬 인바운드 → 노드 연결 → 시스템 프록시 또는 TUN”으로 정해 두세요. UI 문제와 네트워크 문제를 구분할 수 있고, 구독 업데이트 오류를 Avalonia 호환성 문제로 오해하는 일도 줄어듭니다. 다음 문제는 작은 범위부터 확인한 뒤 버전 전환 여부를 결정하세요.
Desktop이 열리지 않으면 WPF를 다시 설치하면 해결되나요?
먼저 실행 오류를 기록하세요. 다운로드한 패키지의 OS와 아키텍처를 확인하고, 안내에 따라 런타임이나 그래픽 의존성을 점검하세요. macOS 또는 Linux에서는 WPF가 대체 버전이 될 수 없습니다. Windows에서도 파일이 섞였거나 필요한 런타임이 없는 것은 아닌지 먼저 확인하세요.
두 버전을 모두 실행하면 새 버전이 연결되지 않는 이유는 무엇인가요?
기존 버전을 완전히 종료한 뒤 새 버전 로그에 주소 사용 중 오류가 있는지 확인하세요. Windows에서는 netstat -ano | findstr :10808으로 예시 포트의 사용 상태를 확인할 수 있습니다. 실제 포트에 맞게 바꿔 사용하세요. 창만 닫지 마세요. 프로그램이 트레이에 남아 코어를 계속 실행 중일 수 있습니다.
같은 구독을 가져왔는데 노드가 연결되지 않는 이유는 무엇인가요?
해당 서버에서 사용하는 코어, 전송 방식과 TLS 매개변수를 확인하고 연결 로그를 살펴보세요. 구독을 읽을 수 있어도 현재 코어가 모든 프로토콜 필드를 지원한다는 뜻은 아닙니다. UI 차이로 착각하지 않도록 기존 환경에서 작동이 확인된 같은 노드로 먼저 테스트하세요.
Windows만 사용하는데 Avalonia로 꼭 바꿔야 하나요?
그럴 필요 없습니다. 기존 WPF 환경이 필요한 기능을 제공한다면 계속 사용해도 됩니다. Desktop을 검토하려면 별도 환경에서 트레이, 시스템 프록시와 자주 사용하는 기능을 먼저 테스트하세요. 이전 여부는 UI 이름이 아니라 실제 기능과 유지 관리 필요성을 기준으로 결정하세요.
데스크톱 설정을 Android 클라이언트에 그대로 복사할 수 있나요?
데스크톱 설정 디렉터리를 복사하기보다 Android에서 구독을 다시 추가하는 것이 좋습니다. v2rayNG는 Xray 코어를, v2flyNG는 V2Fly 코어를 사용하므로 지원되는 노드 프로토콜을 확인하세요. 데스크톱의 수신 포트, 시스템 프록시와 TUN 설정은 모바일 환경에 그대로 적용하지 마세요.
선택 기준은 두 가지로 정리할 수 있습니다. macOS와 Linux는 해당 플랫폼용 Desktop 설치 패키지로 시작하세요. Windows에서는 새로 설치할 때 Desktop을 먼저 검토하고, 안정적으로 사용 중인 WPF 환경은 필요에 따라 이전 여부를 결정하면 됩니다. 어떤 UI를 선택하든 노드 하나, 인바운드 하나와 프록시 모드 하나를 먼저 검증한 뒤 사용자 지정 분기와 TUN을 추가하세요.
플랫폼별 v2rayN 다운로드
다운로드 센터에서 Windows Desktop 또는 Windows WPF를 선택하거나, 사용 중인 아키텍처에 맞는 macOS·Linux 설치 패키지를 선택하세요. 처음 설정할 때는 가이드를 따라 구독을 가져오고 프록시 연결을 테스트하세요.