데스크톱에서는 v2rayN을 먼저 살펴보고, Android에서는 노드 요구사항에 따라 v2rayNG와 v2flyNG 중 선택하세요. 이름이 비슷해도 코어가 같거나 설정 전체를 서로 바꿔 쓸 수 있는 것은 아닙니다. 이 글에서는 플랫폼과 코어를 구분하고 VLESS, REALITY, VMess 등의 매개변수를 확인한 뒤, 양쪽 기기에서 구독을 사용하는 방법과 프록시 적용 범위, 마이그레이션 점검 항목을 소개합니다. 처음 클라이언트를 고르거나 기기를 바꾸려는 사용자에게 유용합니다.
플랫폼부터 확인: 데스크톱과 Android는 설치 파일이 다릅니다
v2rayN은 Windows, macOS, Linux를 지원하는 데스크톱 클라이언트입니다. v2rayNG와 v2flyNG는 Android용 클라이언트로, 각각 Xray 코어와 v2fly 코어를 사용합니다. 세 앱은 모두 설정 관리 도구입니다. 인터페이스에서 구독을 가져오고 노드를 선택해 설정을 생성하며, 코어가 연결을 수립하고 라우팅을 처리합니다. 이름에 G가 있는지를 보고 지원 프로토콜 수나 연결 속도를 짐작하지 마세요.
| 클라이언트 | 지원 플랫폼 | 코어 구성 | 우선 확인할 항목 |
|---|---|---|---|
| v2rayN | Windows、macOS、Linux | 여러 코어를 관리할 수 있습니다. 실제 사용하는 코어는 노드 유형, 설정 및 버전에 따라 달라집니다 | 설치 파일 아키텍처, 실제 실행 코어, 시스템 프록시 또는 TUN |
| v2rayNG | Android | Xray 코어 | Xray 전용 매개변수, VPN 권한, 앱별 설정 |
| v2flyNG | Android | v2fly 코어 | 노드와 현재 v2fly 버전의 호환성, 설정 가져오기 형식 |
Windows용 v2rayN Desktop과 WPF는 서로 다른 인터페이스이며, 노드 프로토콜이 다른 것은 아닙니다. macOS에서는 Apple Silicon과 Intel을 구분하고, Linux에서는 배포판별 패키지 형식과 프로세서 아키텍처를 확인하세요. Android 기기에는 보통 아키텍처에 맞는 설치 파일을 선택합니다. 아키텍처를 모르면 다운로드 센터에서 universal 항목을 확인할 수 있습니다. 설치에 실패하면 서버 매개변수부터 바꾸지 말고 플랫폼과 아키텍처를 먼저 점검하세요.
- 데스크톱 업무용이거나 많은 노드를 관리해야 한다면 v2rayN을 선택한 뒤 운영체제에 맞는 설치 항목을 고르세요.
- Android 노드에 Xray 전용 설정이 포함되어 있다면 v2rayNG의 지원 여부를 먼저 확인하세요.
- 검증된 v2fly 설정이 이미 있다면 v2flyNG를 선택해 기존 설정 방식을 유지할 수 있습니다.
코어와 프로토콜: VMess 또는 VLESS라는 이름만으로 판단하지 마세요
노드에는 보통 프로토콜, 전송 방식, 보안 계층이 함께 설정됩니다. 예를 들어 VLESS 노드의 경우 클라이언트가 vless:// 링크를 인식하는지만 확인해서는 부족합니다. 전송 유형, TLS 또는 REALITY, 서버 이름, 지문, flow도 확인해야 합니다. 이 중 하나라도 인식하지 못하면 가져오기는 성공해도 연결되지 않을 수 있습니다. 구독 목록에 노드 이름이 표시된다고 해서 모든 설정을 읽어 들였다는 뜻은 아닙니다.
| 노드 요구사항 | 선택 기준 | 가져온 뒤 확인할 항목 |
|---|---|---|
| VMess + WebSocket + TLS | 세 클라이언트 모두 실제 코어 버전을 확인해야 합니다. 이를 근거로 특정 앱이 반드시 더 빠르다고 단정할 수는 없습니다 | 주소, 포트, UUID, Host, 경로, 서버 이름 |
| VLESS + REALITY | 해당 조합을 지원하는 Xray 기반 경로를 우선 고려하고, Android에서는 v2rayNG를 먼저 확인하세요 | 공개 키, shortId, 서버 이름, 지문. flow는 서버 요구사항에 맞춰 입력합니다 |
| Trojan + TLS | 현재 클라이언트와 코어가 노드의 전송 조합을 지원하는지 확인하세요 | 비밀번호, 서버 이름, 인증서 검증 및 전송 매개변수 |
| 기존 v2fly JSON 설정 | v2fly 환경에서 먼저 검증하세요. Xray용 전체 설정으로 그대로 가져오지 않는 것이 좋습니다 | 지원 필드, 인바운드 포트, 라우팅 태그, DNS 설정 |
Xray와 v2fly는 기술적 배경을 공유하지만, 각각 별도로 발전해 왔습니다. REALITY는 Xray 생태계의 기능이므로 관련 매개변수가 포함된 설정을 일반적인 v2fly 설정으로 그대로 사용할 수 없습니다. 반대로 기존 VMess 노드를 사용 중이라면 클라이언트를 바꾸기 위해 VLESS로 전환할 필요도 없습니다. 작동하는 조합을 유지하고 실제로 마이그레이션이 필요한지 먼저 판단하세요.
사용 방식에 맞춰 선택: 노드 관리, 앱별 프록시, 설정 호환성
세 클라이언트의 플랫폼을 통틀어 순위를 매길 필요는 없습니다. 데스크톱에서는 구독 그룹, 일괄 테스트, 시스템 프록시가 중요하고, Android에서는 VPN 권한, 백그라운드 실행, 프록시를 적용할 앱을 주로 살펴봅니다. 아래 추천 표시는 ‘Android에서 일반적인 Xray 노드를 사용하는 경우’에 한정되며, 다른 플랫폼에서 나머지 클라이언트가 부적합하다는 뜻은 아닙니다.
v2rayN: 데스크톱 노드 관리
큰 화면에서 노드를 편집하고 구독 그룹을 정리하며 로그를 확인하기에 적합합니다. 시스템 프록시와 TUN은 트래픽을 처리하는 방식이 다릅니다. 먼저 단순한 경로로 연결을 확인한 다음 라우팅 규칙을 추가하세요.
적합한 환경: Windows, macOS, Linux에서 일상적인 데스크톱 사용
v2rayNG: Android용 Xray 노드
추천Xray 코어를 사용합니다. VLESS, REALITY 등의 조합을 사용하려면 현재 버전에서 해당 매개변수를 지원하는지 먼저 확인하세요. 연결 후에는 Android VPN 인터페이스를 통해 트래픽을 처리하며, 앱별 설정으로 적용 범위를 정할 수 있습니다.
적합한 환경: Android에서 Xray 설정을 사용하거나 앱별로 트래픽을 선택하려는 경우
v2flyNG: Android용 v2fly 설정
v2fly 코어를 사용합니다. 안정적으로 사용 중인 v2fly 노드와 설정이 있다면 같은 코어 계열을 이어서 사용해 필드 마이그레이션을 줄일 수 있습니다. Xray 전용 필드가 있다면 가져오기 전에 호환성을 확인하세요.
적합한 환경: Android에서 검증된 v2fly 설정 환경을 이어서 사용하려는 경우
결론: 작동이 확인된 노드 하나로 먼저 테스트하세요
대상 클라이언트에 완전한 노드 하나를 가져와 코어가 정상적으로 시작되는지, 웹 페이지에 접속되는지, DNS가 작동하는지 확인하세요. 이후 구독과 라우팅을 일괄 마이그레이션하면 문제 발생 시 원인이 클라이언트 호환성인지, 구독 해석인지, 새 규칙인지 구분하기 쉽습니다.
인터페이스의 지연 시간순 정렬을 클라이언트 성능 순위로 해석하지 마세요. 같은 노드도 테스트 시간에 따라 네트워크, 서버 부하, 테스트 대상의 영향을 받습니다. 비교하려면 노드, 네트워크, 테스트 주소, 프록시 모드를 동일하게 맞추세요. TCP 연결 지연 시간만으로 실제 다운로드 속도를 판단할 수도 없습니다.
트래픽 처리 방식 비교: 시스템 프록시, VPN, 로컬 포트
v2rayN의 시스템 프록시 모드는 시스템 프록시 설정을 따르는 앱에 주로 영향을 주며, 모든 프로그램이 자동으로 프록시를 사용하는 것은 아닙니다. TUN은 가상 네트워크 인터페이스를 통해 트래픽을 처리하므로 더 넓은 범위에 적용되는 경우가 많지만, 권한·DNS·라우팅 문제가 추가로 발생할 수 있습니다. 처음에는 시스템 프록시 경로부터 확인하고, TUN이 필요한지 나중에 검토하세요. 여러 설정을 한꺼번에 바꾸지 않는 것이 좋습니다.
위 두 숫자는 문제 해결을 위한 예시이며 세 클라이언트의 공통 기본값이 아닙니다. 일부 버전은 혼합 수신 포트를 사용하므로 오래된 안내를 따라 포트를 둘로 나누지 마세요. v2rayN의 ‘설정’ → ‘매개변수 설정’에서 로컬 수신 항목을 확인하세요. 인터페이스 버전에 따라 메뉴 이름이 달라질 수 있으므로 시작 로그에서 최종 수신 주소도 확인해야 합니다. 앱에 프록시를 수동으로 설정한다면 유형, 주소, 포트가 수신 설정과 일치해야 합니다.
- 앱을 로컬 프록시에 연결하기 전에 코어 시작 실패나 포트 충돌이 로그에 없는지 확인하세요.
- 기기 자체에 접속할 때는 보통
127.0.0.1을 사용합니다. 휴대폰에서 이 주소는 휴대폰 자신을 가리키며 데스크톱 컴퓨터가 아닙니다. - 연결 문제를 해결하려고 바로 LAN 접속을 허용하지 마세요. 여러 기기에서 사용하려면 수신 주소, 방화벽, 접근 제어도 설정해야 합니다.
- Android에서 처음 연결할 때는 시스템 VPN 권한을 확인하세요. v2rayNG와 v2flyNG를 바꾸기 전에 기존 VPN 연결을 먼저 중지해야 현재 어떤 클라이언트가 적용 중인지 혼동하지 않습니다.
Android에서 ‘연결됨’은 VPN 인터페이스가 설정되었다는 뜻이지 원격 노드를 사용할 수 있다는 뜻은 아닙니다. 브라우저는 되는데 특정 앱이 연결되지 않으면 앱별 프록시가 ‘선택한 앱만 프록시’인지 ‘선택한 앱 우회’인지 먼저 확인하세요. 두 모드에서 같은 앱 목록의 의미는 정반대이므로 모드를 확인한 뒤 앱을 추가하거나 삭제해야 합니다.
데스크톱과 Android에서 구독 공유하기: 노드만 동기화하고 전체 설정은 따로 관리
구독 링크는 보통 노드 목록을 가져오는 데 사용되며 시스템 프록시, VPN 권한, 앱별 목록, 전체 라우팅 설정까지 자동으로 통일하지는 않습니다. 양쪽 기기에서 같은 구독을 사용할 수 있지만, 각 클라이언트가 구독 응답 형식을 인식하고 해당 코어가 노드 조합을 지원해야 합니다. 한쪽 기기에서 생성한 전체 실행 JSON을 다른 기기에 덮어쓰지 마세요.
설정 방법: 노드 출처는 동일하게, 트래픽 처리 설정은 각각 관리
데스크톱: v2rayN
- ‘구독 그룹’ → ‘구독 그룹 설정’에서 구독 주소를 저장합니다.
- ‘현재 구독 업데이트(프록시 사용 안 함)’를 실행하거나 네트워크 상황에 따라 프록시를 통해 업데이트하세요.
- 노드를 선택한 다음 시스템 프록시 모드와 현재 라우팅 규칙을 확인합니다.
Android: v2rayNG 또는 v2flyNG
- 구독 설정에 같은 출처를 추가하고 현재 버전의 메뉴에서 업데이트를 실행합니다.
- 먼저 노드 하나로 연결을 확인한 뒤 앱별 프록시를 설정합니다.
- 기기 설정에 맞게 백그라운드 실행 권한을 지정하고 연결이 끊겼을 때의 로그를 보관합니다.
각 클라이언트에서 업데이트한 뒤 노드 이름과 매개변수를 확인하세요. 구독 주소가 같아도 반환되는 내용이나 로컬 설정이 완전히 동일하다는 보장은 없습니다.
구독 서비스는 클라이언트 유형에 따라 다른 형식으로 응답하거나 한쪽에서 아직 지원하지 않는 노드를 포함할 수 있습니다. 따라서 양쪽 기기의 노드 수가 다르다고 해서 반드시 업데이트에 실패한 것은 아닙니다. 현재 그룹, 필터 사용 여부, 업데이트 로그의 오류를 먼저 확인한 다음 누락된 노드의 프로토콜과 전송 매개변수를 비교하세요. 구독 주소는 접근 권한이 있는 정보이므로 스크린샷이나 로그를 공유하기 전에 전체 주소를 가려야 합니다.
- 마이그레이션 전에 기존 클라이언트의 그룹, 라우팅, DNS 설정을 기록하고 작동 중인 설정을 바로 삭제하지 마세요.
- 노드를 먼저 옮기고 트래픽 분기는 나중에 설정하세요. 도메인 규칙, IP 규칙, 규칙 리소스 파일을 각각 확인해야 합니다.
- 구독 업데이트에 프록시가 필요하다면 기존에 작동하는 노드로 먼저 연결하세요. 새로 설치해 사용 가능한 노드가 없다면 구독 주소에 접속할 수 있는지부터 해결해야 합니다.
클라이언트를 바꿔도 연결되지 않는다면: 증상별 문제 해결
클라이언트를 바꾸는 것이 만능 해결책은 아닙니다. 연결 실패는 구독 가져오기, 매개변수 해석, 코어 시작, 로컬 트래픽 처리, 원격 핸드셰이크 중 어느 단계에서든 발생할 수 있습니다. 먼저 실패한 단계를 찾고 실제로 코어를 바꿔야 하는지 판단하세요. 다음 네 가지 상황에 맞춰 조치할 수 있습니다.
같은 구독인데 다른 클라이언트에서 가져오면 노드가 왜 줄어드나요?
현재 그룹을 업데이트하고 노드 필터를 해제한 뒤 업데이트 로그를 확인하세요. 누락된 노드 하나를 골라 REALITY, 특정 flow, 현재 클라이언트가 인식하지 못하는 전송 유형이 포함되어 있는지 살펴보세요. 호환성 문제라면 해당 조합을 지원하는 클라이언트를 선택하거나 구독 제공자에게 호환 형식을 요청하세요. 반복해서 덮어 가져오지는 마세요.
v2rayN에 노드가 정상으로 표시되는데 브라우저는 왜 프록시를 사용하지 않나요?
코어가 정상적으로 수신 대기 중인지 확인한 뒤 트레이 메뉴의 시스템 프록시 상태와 브라우저가 시스템 설정을 따르는지 점검하세요. 브라우저에 프록시를 직접 지정했다면 127.0.0.1과 실제 포트를 확인합니다. 로그의 address already in use는 수신 포트 충돌을 뜻하므로 해당 포트를 사용하는 프로그램을 종료하거나 포트를 변경하세요.
Android에 연결됨으로 표시되는데 일부 앱만 열리지 않나요?
설정에서 앱별 프록시 모드와 앱 목록을 확인하고 같은 노드로 브라우저부터 테스트하세요. 모든 앱이 실패하면 노드 핸드셰이크와 DNS 로그를 확인합니다. 화면을 잠근 뒤에만 연결이 끊긴다면 시스템 배터리 관리와 백그라운드 제한을 점검하세요. 처음부터 프로토콜, DNS, 라우팅을 한꺼번에 바꾸지 마세요.
v2rayNG로 바꾼 뒤 이전 설정의 필드에서 오류가 나면 어떻게 해야 하나요?
가져온 항목이 노드 링크인지 전체 JSON 설정인지 먼저 확인하세요. 전체 설정의 인바운드, 아웃바운드, DNS, 라우팅 필드는 코어 간에 그대로 사용할 수 없는 경우가 있습니다. 원본 파일은 보관하고 새 클라이언트에서 최소한의 노드를 직접 만드세요. 연결이 확인되면 설정을 하나씩 추가하고 로그에서 실제로 실행 중인 코어를 확인합니다.
선택 기준은 세 단계로 정리할 수 있습니다. 기기 플랫폼을 확인하고, 노드에 필요한 코어와 매개변수를 살펴본 다음, 평소 사용하는 트래픽 처리 방식을 검증하세요. 데스크톱에서는 v2rayN부터 시작하고, Android에서는 Xray 또는 v2fly 설정 요구에 따라 v2rayNG나 v2flyNG를 선택하면 됩니다. 안정적으로 작동하는 조합이라면 이름이나 인터페이스가 다르다는 이유만으로 바꿀 필요는 없습니다. 중요한 것은 설정을 빠짐없이 표현할 수 있는지, 로그로 문제를 파악할 수 있는지, 기기의 앱 트래픽이 예상대로 처리되는지입니다.