안드로이드에서는 앱 이름이나 출시 시기가 아니라 노드 요구사항에 맞춰 코어를 선택해야 합니다. VLESS + REALITY 또는 XTLS Vision이 필요하다면 Xray 코어를 사용하는 v2rayNG를 우선 고려하세요. V2Fly용으로 명확히 지정된 설정이 있다면 v2flyNG를 선택하면 됩니다. 이 글에서는 프로젝트와 코어, 클라이언트의 차이를 구분하고, 프로토콜 조합 점검 항목과 데스크톱 설정을 안드로이드로 옮길 때 확인할 순서를 정리합니다.
Project V, V2Fly, Xray의 관계
Project V는 네트워크 프록시 도구와 관련 구성요소를 아우르는 프로젝트이며, V2Ray는 그중 핵심 소프트웨어입니다. 코어는 설정을 읽고 인바운드·아웃바운드 연결을 수립하며 프로토콜과 라우팅을 처리합니다. 클라이언트는 노드 목록, 구독 관리, 설정 화면을 제공합니다. 둘은 서로 다른 계층이므로 클라이언트 화면이 비슷해도 내부에서 실행되는 코어가 같다고 볼 수는 없습니다.
V2Fly는 V2Ray를 이어서 관리하는 커뮤니티 프로젝트입니다. Xray-core는 V2Ray에서 분기되어 나온 뒤 프로토콜, 보안 계층, 전송 방식 구현을 독자적으로 발전시켜 왔습니다. 두 코어는 역사와 개념의 일부를 공유하지만, 현재 Xray 설정 파일을 어떤 버전의 V2Fly에서나 읽을 수 있다고 간주해서는 안 됩니다.
- v2rayN: 데스크톱 클라이언트입니다. 설정을 확인할 때는 노드 유형뿐 아니라 실제로 활성화된 코어와 버전도 살펴보세요. 클라이언트 이름만으로 V2Fly가 실행 중이라고 판단할 수 없습니다.
- v2rayNG: Xray 코어를 사용하는 안드로이드 클라이언트입니다. Xray 관련 프로토콜 조합이 필요한 노드에 적합합니다.
- v2flyNG: V2Fly 코어를 사용하는 안드로이드 클라이언트입니다. V2Fly와 호환되는 설정 및 사용 환경이 확인된 경우에 적합합니다.
프로토콜 지원: 조합 전체를 확인하세요
호환성을 판단할 때는 최소한 ‘프로토콜, 전송 방식, 보안 계층, 흐름 제어’ 네 가지로 나눠 확인해야 합니다. VLESS는 프로토콜이고 WebSocket은 전송 방식입니다. TLS와 REALITY는 보안 계층 관련 설정이며 xtls-rprx-vision은 흐름 제어 값입니다. ‘VLESS 지원’만 확인하고 점검을 멈추면 실제 연결에 영향을 주는 필드를 놓치기 쉽습니다.
| 설정 조합 또는 기능 | Xray 코어 | V2Fly 코어 |
|---|---|---|
| VMess + WebSocket + TLS | 일반적인 조합을 지원하지만 경로와 호스트 이름을 확인해야 합니다 | 일반적인 조합을 지원하지만 경로와 호스트 이름을 확인해야 합니다 |
| 기본 VLESS 설정 | 지원 여부는 코어 버전에 따라 달라집니다 | 지원하는 버전도 있지만, 모든 Xray 확장 기능을 지원한다는 뜻은 아닙니다 |
| VLESS + REALITY | 해당 기능을 지원하는 버전을 선택하고 필요한 필드를 빠짐없이 입력하세요 | 이 유형의 설정을 호환 가능한 대안으로 사용할 수 없습니다 |
| XTLS Vision 흐름 제어 | 서버 요구사항과 flow 값을 확인하세요 |
Xray의 Vision 설정을 그대로 옮겨 사용할 수 없습니다 |
| 전체 JSON 설정 | 해당 버전에 맞는 설정 구조를 사용하세요 | 해당 버전에 맞는 설정 구조를 사용하세요. Xray와 서로 바꿔 쓸 수 있다고 보장되지 않습니다 |
VMess, VLESS, Trojan 같은 이름은 프로토콜 종류만 나타낼 뿐 전송 조합까지 같다는 뜻은 아닙니다. 노드에서 요구하는 WebSocket 경로, TLS 서버 이름, 지문 설정 등도 클라이언트에 정확히 전달되어야 합니다. 양쪽 모두 같은 프로토콜을 지원하더라도 필드 하나가 누락되면 핸드셰이크에 실패할 수 있습니다.
결론: security와 flow부터 확인한 뒤 안드로이드 클라이언트를 선택하세요
노드에 security=reality가 명시되어 있거나 flow=xtls-rprx-vision이 필요한 경우 v2rayNG를 선택하고, 내장된 Xray가 해당 설정을 지원하는지 확인하세요. 보안 계층이나 흐름 제어 필드를 삭제해 v2flyNG와 호환시키려 하지 마세요.
안드로이드 앱 선택: v2rayNG와 v2flyNG
기존 설정에 제한이 없고 여러 일반적인 공유 링크를 받아야 한다면 v2rayNG부터 사용해 볼 수 있습니다. 이 권장 사항은 Xray 기능의 지원 범위를 고려한 것으로, 모든 네트워크에서 더 빠르다는 뜻은 아닙니다. 설정 제공자가 V2Fly를 명확히 요구하거나 검증된 V2Fly 기본 설정을 이미 사용 중이라면 호환되는 실행 환경을 유지하세요.
v2rayNG: Xray 코어
추천REALITY, Vision 등 Xray 관련 기능이 필요한 노드에 적합합니다. 가져온 뒤에도 노드 편집 화면에서 보안 계층, 서버 이름, 흐름 제어를 확인하세요. 노드 이름만으로 설정을 판단해서는 안 됩니다.
추천 대상: 처음 설치하는 경우, 노드에서 Xray를 명시적으로 요구하는 경우, 데스크톱에서 같은 계열의 Xray 설정을 사용하는 경우
v2flyNG: V2Fly 코어
V2Fly용으로 명확히 지정된 설정에 사용합니다. VMess + WebSocket + TLS 노드가 이미 정상 작동한다면 분기 이름이 다르다는 이유만으로 옮길 필요는 없습니다. 그렇다고 호환성이 항상 더 좋다고 단정할 수도 없습니다.
추천 대상: V2Fly 설정을 이미 사용 중인 경우, V2Fly 기본 설정의 동작을 확인해야 하는 경우
비교 테스트를 위해 두 앱을 모두 설치했다면 매 테스트마다 VPN 연결은 한 앱에서만 실행하세요. 안드로이드의 VPN 서비스 제어, 앱별 규칙, 백그라운드 제한은 실제 트래픽에 영향을 줍니다. 두 앱을 번갈아 실행한 뒤 결과가 달라졌다면 코어 차이를 따지기 전에 현재 어떤 서비스가 실행 중인지 확인하세요.
- 일반 VMess 노드만 사용하는 경우: 두 코어 모두 요구사항을 충족할 수 있으므로, 먼저 검증된 설정을 그대로 사용하세요.
- REALITY가 명시된 경우: 필요한 기능을 지원하는 v2rayNG를 선택하고, v2flyNG를 같은 설정의 대체 앱으로 간주하지 마세요.
- 기본 JSON 파일만 있는 경우: 먼저 대상 코어와 설정 형식 버전을 확인한 뒤 앱을 선택하세요. 파일 확장자만 보고 가져오지 마세요.
설정 점검: 포트, 필드, 가져오기 결과
코어 분기만이 변수는 아닙니다. 서버 주소, 포트, 사용자 ID, 전송 경로, 보안 계층 중 하나라도 맞지 않으면 ‘가져오기는 됐지만 연결되지 않는’ 문제가 생길 수 있습니다. 아래 포트는 점검을 위한 예시이며 모든 노드나 클라이언트의 기본값이 아닙니다. 실제 값은 노드 편집 화면과 로컬 설정을 기준으로 확인하세요.
원격 포트 443은 서버에서 실행 중인 서비스를 가리키며, 로컬 127.0.0.1:10808은 현재 기기에서 앱이 수신 대기하는 주소입니다. 노드의 서버 포트에 로컬 포트를 입력해도 연결이 올바른 위치로 ‘되돌아가는’ 것은 아닙니다. 안드로이드 VPN 모드에서는 보통 시스템 가상 네트워크 인터페이스가 트래픽을 처리하므로 각 앱에 이 로컬 포트를 일일이 입력할 필요도 없습니다.
- 먼저 가져오기 방식을 확인하세요. v2rayNG 메인 화면에서 ‘+’ → ‘클립보드에서 가져오기’를 눌러 공유 링크를 가져옵니다. 메뉴 이름은 버전에 따라 조금 다를 수 있습니다. 구독 주소는 구독 그룹에 추가해야 하며, 단일 노드 공유 링크로 입력하면 안 됩니다.
- 다음으로 노드 편집 화면을 확인하세요. 주소와 포트가 원본 설정과 일치하는지 확인합니다. VMess 노드는 사용자 ID를, WebSocket 노드는 경로와 Host를, TLS 노드는 서버 이름을 점검하세요.
- REALITY 설정은 별도로 확인하세요. 제공자가 안내한 공개 키, shortId, 서버 이름, 지문 등의 값을 정확히 입력했는지 확인합니다. 버전에 따라 필드 이름이 다를 수 있으므로 TLS 설정 경험만으로 판단하지 마세요.
- 마지막으로 트래픽이 실제로 VPN을 통과하는지 확인하세요. 연결을 시작한 뒤 시스템 VPN 권한이 승인되었는지 확인합니다. 일부 앱에서만 문제가 생긴다면 코어를 바로 바꾸기보다 앱별 프록시, 라우팅, DNS 설정을 점검하세요.
데스크톱과 안드로이드: 구독을 공유해도 설정 전체가 동기화되지는 않습니다
v2rayN과 안드로이드 클라이언트에서 같은 구독 소스를 사용할 수 있지만, 구독은 노드 정보를 제공할 뿐 데스크톱의 시스템 프록시와 라우팅 규칙, 안드로이드의 앱별 프록시까지 자동으로 동기화하지 않습니다. 구독 서비스가 클라이언트별로 다른 형식을 제공한다면 해당 출력을 선택하세요. 같은 주소가 모든 클라이언트에서 완전히 같은 내용을 반환한다고 가정하지 마세요.
이전 방법: 노드 매개변수는 맞추고 기기별 트래픽 설정은 따로 구성
데스크톱: v2rayN
- 사용 중인 노드와 실제 코어를 기록하세요.
- 시스템 프록시 상태를 확인하고 라우팅 모드와 혼동하지 마세요.
- REALITY가 필요하다면 호환되는 Xray 설정을 사용 중인지 확인하세요.
안드로이드: v2rayNG 또는 v2flyNG
- 노드 요구사항에 맞는 코어를 선택한 다음 구독을 가져오세요.
- 표시 이름만 비교하지 말고 노드의 주요 필드를 확인하세요.
- VPN 권한을 승인한 뒤 앱별 프록시와 라우팅을 별도로 점검하세요.
같은 구독을 사용하면 노드를 매번 입력할 필요는 줄어들지만, 양쪽에서 같은 노드를 받고 같은 규칙을 사용하는지는 각각 확인해야 합니다.
데스크톱에서는 연결되지만 안드로이드에서는 안 될 때는 먼저 같은 노드의 프로토콜 조합을 비교하고, 다음으로 현재 네트워크를 확인하세요. 가정용 네트워크와 모바일 네트워크는 DNS, 연결 정책, 회선 조건이 다를 수 있습니다. 같은 Wi-Fi에서 같은 대상 사이트를 테스트해 설정이 일치하는지 확인한 뒤 네트워크를 바꾸세요. 여러 변수를 한 번에 바꾸지 않는 것이 좋습니다.
- 프로토콜 필드는 같은데 도메인 접속만 안 되는 경우: DNS와 도메인 라우팅 규칙을 확인하세요.
- 일부 앱에서만 접속할 수 없는 경우: 해당 앱이 VPN 적용 대상에서 제외되었는지 확인하세요.
- 구독을 업데이트한 뒤 노드가 달라진 경우: 그룹 주소, 업데이트 결과, 서버 출력 형식을 확인하세요.
자주 하는 오해와 최종 선택
Xray가 항상 V2Fly보다 빠를까요?
그렇게 판단할 수 없습니다. 처리량은 서버 부하, 네트워크 경로, 전송 조합, 기기 성능의 영향을 함께 받습니다. 비교할 때는 노드, 네트워크, 대상을 동일하게 설정하고 양쪽에서 연결이 정상적으로 수립되는지 먼저 확인한 뒤 실제 사용 성능을 살펴보세요. 서로 다른 서버나 시간대의 속도 측정 결과를 코어 차이로 단정할 수 없습니다.
V2Fly가 VLESS를 지원하는데 REALITY 노드는 왜 바로 사용할 수 없나요?
VLESS는 프로토콜 계층의 한 요소일 뿐입니다. REALITY와 Vision에는 별도의 기능 및 설정 방식이 포함되므로 기본 VLESS 지원만으로는 이를 사용할 수 없습니다. 원래 노드에서 REALITY를 요구하는데 일반 TLS로 바꾸거나 flow를 삭제하면 연결 조건이 달라져 보통 서버와 맞지 않습니다.
구독은 업데이트되는데 노드에 연결할 수 없으면 코어 문제인가요?
반드시 그렇지는 않습니다. 업데이트 성공은 구독 내용을 가져와 해석했다는 뜻일 뿐입니다. 노드 연결에는 서버 접근 가능 여부, 인증, 보안 계층 핸드셰이크, 라우팅 등 여러 단계가 필요합니다. 로그에서 지원되지 않는 설정 필드가 있는지 먼저 확인한 다음 인증 및 핸드셰이크 오류를 살펴보세요. 구독 업데이트에 성공했다는 이유만으로 설정 문제를 배제할 수는 없습니다.
클라이언트를 바꾸면 노드를 다시 구매해야 하나요?
클라이언트와 구독 서비스는 서로 다른 계층입니다. 기존 구독을 계속 사용할 수 있는지는 앱 이름이 아니라 서비스 약관, 기기 제한, 출력 형식에 따라 달라집니다. 이전하기 전에 제공자에게 지원 프로토콜 조합과 호환 클라이언트를 확인하세요.
결론: 노드 요구사항에 맞춰 코어를 고르고 기기 설정으로 트래픽 처리를 확인하세요
처음 설치하면서 노드에 Xray 기능이 필요하다면 v2rayNG를 선택하세요. 사용 가능한 V2Fly 설정이 이미 있다면 v2flyNG를 계속 사용해도 됩니다. 연결에 실패하면 전체 프로토콜 조합과 로그를 확인하고, 연결은 되지만 앱이 작동하지 않으면 VPN 적용 여부, DNS, 라우팅을 점검하세요. 모든 문제를 코어 분기 차이로 돌리지는 마세요.