Xray 코어와 V2Fly 코어 차이: VLESS·XTLS Vision·REALITY 지원 비교

Xray와 V2Fly의 분기 배경부터 프로토콜·전송 계층·설정 호환성 차이까지 살펴보고, v2rayNG와 v2flyNG의 코어 선택 기준을 정리합니다.

이 글 한눈에 보기

코어를 고를 때는 VMess나 VLESS라는 이름만 보지 말고 노드 설정 항목부터 확인하세요. 노드에 REALITY 또는 xtls-rprx-vision이 있으면 Xray 지원 여부를 먼저 확인해야 합니다. 일반 VMess·VLESS와 TLS 조합도 전송 방식과 설정 형식을 추가로 살펴봐야 합니다. 데스크톱 코어를 바꾸거나 안드로이드 클라이언트를 선택하려는 사용자, 구독을 가져온 뒤 연결되지 않는 문제를 해결하려는 사용자를 위해 어떤 항목을 공유할 수 있고 어떤 설정은 그대로 옮길 수 없는지 설명합니다.

1. 분기 배경: 클라이언트 인터페이스와 프록시 코어는 별개

V2Ray는 프록시 도구 프로젝트와 관련 생태계에서 널리 쓰이는 이름입니다. V2Fly 커뮤니티가 관리하는 핵심 프로그램은 보통 V2Fly 코어라고 부르며, 실행 파일 이름은 여전히 v2ray를 사용하는 경우가 많습니다. Xray는 2020년 V2Ray 프로젝트에서 분기한 뒤 독자적으로 발전해 왔습니다. 두 코어는 설정과 프로토콜의 기반을 공유하지만, 이름이 비슷하다고 후속 기능까지 서로 호환되는 것은 아닙니다.

v2rayN, v2rayNG, v2flyNG는 클라이언트이며 코어 자체와는 다릅니다. 클라이언트는 구독을 해석하고 노드를 편집하며 라우팅을 설정하고 프로세스를 시작합니다. 실제 프록시 연결 처리는 코어가 담당합니다. 따라서 ‘인터페이스에서 노드를 가져올 수 있다’는 것은 파싱에 성공했다는 뜻일 뿐, 실행 중인 코어가 노드의 모든 항목을 지원한다는 의미는 아닙니다.

2. 프로토콜 지원 비교: VLESS를 지원해도 기능은 다를 수 있습니다

VMess와 VLESS는 프록시 프로토콜이고 TCP, WebSocket, gRPC 등은 전송 설정입니다. TLS와 REALITY는 연결 보안 방식이며, XTLS Vision은 VLESS의 flow 항목으로 활성화합니다. 코어를 선택할 때는 각 계층을 구분해야 합니다. ‘VLESS 지원’을 ‘VLESS + REALITY + Vision 지원’과 같은 의미로 보면 안 됩니다.

확인 항목Xray 코어V2Fly 코어
VMess지원합니다. 전송 및 보안 설정도 일치해야 합니다.지원합니다. 기존 설정은 인증 및 버전 호환성을 확인해야 합니다.
기본 VLESS지원지원하지만 Xray 확장 기능까지 지원한다고 볼 수는 없습니다.
XTLS Vision해당 VLESS flow를 지원합니다.Xray의 xtls-rprx-vision flow는 지원하지 않습니다.
REALITY지원합니다. 클라이언트 매개변수가 서버 설정과 일치해야 합니다.Xray의 REALITY 설정은 지원하지 않습니다.
WebSocket、gRPC일반적인 설정은 사용할 수 있지만 버전과 조합 제한을 확인해야 합니다.일반적인 설정은 사용할 수 있으며, 항목 형식은 해당 코어 문서에 따라 입력해야 합니다.
JSON 설정자체 설정 구조와 확장 항목을 사용합니다.기존 설정 형식과 V5 설정 형식을 구분해야 합니다.

표의 ‘지원’은 해당 기능을 사용할 수 있다는 뜻이지, 모든 버전에서 같은 설정 파일을 그대로 사용할 수 있다는 뜻은 아닙니다. 특히 전송 이름, 지문 옵션, 확장 항목은 실제 설치된 코어 버전을 기준으로 확인해야 합니다. 클라이언트를 업데이트했더라도 이전 코어를 계속 호출하면 인터페이스에 새로 추가된 항목이 실행 시 거부될 수 있습니다.

3. XTLS Vision과 REALITY: 각 설정 항목을 따로 확인

XTLS Vision에서 흔히 사용하는 flow 값은 xtls-rprx-vision이며, Xray의 VLESS 설정에서는 flow 항목에 지정합니다. 별도의 노드 프로토콜이 아니며 모든 전송 방식에 임의로 붙일 수 있는 ‘속도 향상 옵션’도 아닙니다. WebSocket이나 gRPC 노드에 Vision flow를 그대로 복사하지 마세요. 서버가 명시적으로 제공하고 코어가 지원하는 조합을 사용해야 합니다.

REALITY는 연결 보안 설정으로, VLESS 사용자 인증을 대체하지 않습니다. 일반적인 VLESS + REALITY 노드에도 사용자 ID가 필요하며 서버 이름, 공개 키, Short ID, 클라이언트 지문 등의 매개변수도 설정해야 합니다. 일반 TLS의 인증서 도메인 확인만으로 REALITY 매개변수를 모두 검증할 수는 없습니다. ‘인증서 검증 건너뛰기’를 선택하는 것만으로 REALITY가 활성화되는 것도 아닙니다.

  1. 프로토콜 확인: 노드 편집 화면에서 프로토콜이 VLESS인지 확인하세요. 노드 메모만 보고 판단하면 안 됩니다.
  2. flow 확인: 서버에서 Vision을 제공한다면 ‘flow’가 xtls-rprx-vision인지 확인하세요. 서버에서 요구하지 않는 경우 임의로 추가하지 마세요.
  3. 보안 유형 확인: 서버가 REALITY를 사용한다면 해당 보안 유형을 선택해야 합니다. 일반 TLS 설정을 그대로 두면 안 됩니다.
  4. 매개변수 하나씩 확인: ‘서버 이름’ 또는 SNI, ‘공개 키’, Short ID, ‘지문’이 제공받은 정보와 일치하는지 확인하세요. Short ID를 비워도 되는지는 서버 설정에 따라 다릅니다.
  5. 연결 로그 확인: 지원하지 않는 항목이라는 메시지가 나오면 먼저 코어 호환성 문제를 해결하세요. 핸드셰이크에 실패했다면 매개변수, 시간, 네트워크 연결 상태를 점검하세요.

4. 포트와 JSON: 코어 전환 시 혼동하기 쉬운 부분

로컬 수신 포트와 원격 서버 포트는 서로 다른 값입니다. 아래에서는 로컬 프록시 포트 예시로 10808, 원격 서버 포트 예시로 443을 사용합니다. 어느 쪽도 반드시 사용해야 하는 고정값은 아닙니다. 실제 설정은 클라이언트의 ‘설정’ → ‘매개변수 설정’에서 로컬 수신 항목을 확인하고, 노드 편집 화면에서 서버 포트를 확인하세요. 일부 버전에서는 메뉴 이름이 다를 수 있습니다.

10808
로컬 프록시 수신 포트 예시
443
원격 서버 포트 예시. 노드 설정에 맞춰 입력하세요.

설정을 옮길 때 inbounds는 로컬에서 연결을 받는 부분, outbounds는 연결 대상, routing은 트래픽이 사용할 아웃바운드를 지정합니다. 두 파일에 같은 항목 이름이 있다고 해서 전체 JSON이 호환되는 것은 아닙니다. V2Fly의 V5 설정 형식은 기존 형식과 구조가 다릅니다. Xray의 realitySettings 같은 확장 항목도 V2Fly에서 그대로 사용할 수 없습니다.

로그에 알 수 없는 항목이 표시되면 원격 포트를 계속 바꾸지 말고 대상 코어와 설정 형식부터 확인하세요. 로컬 주소가 이미 사용 중이라는 로그가 나오면 수신 포트 충돌을 먼저 해결해야 합니다. 코어가 정상적으로 시작된 뒤에야 원격 핸드셰이크와 네트워크 연결을 점검할 수 있습니다.

5. 클라이언트 선택: 이름이 아니라 노드 기능을 기준으로

REALITY 또는 Vision이 포함된 노드는 Xray를 우선 고려하세요. 일반 VMess나 기본 VLESS 노드는 두 코어 모두 사용할 수 있는 경우가 많습니다. 이때는 특정 코어가 무조건 더 빠르다고 가정하지 말고 서버 매개변수, 기존 설정, 관리 방식을 기준으로 선택하세요. 속도는 회선, 혼잡도, 라우팅, 서버 부하에도 영향을 받으므로 코어 이름만으로 향상 폭을 단정할 수 없습니다.

Xray 코어

권장

노드에서 REALITY 또는 xtls-rprx-vision을 명시적으로 사용한다면 해당 항목을 지원하는 Xray 버전을 선택하세요. 데스크톱에서는 실제로 호출되는 코어를 확인하고, 안드로이드에서는 v2rayNG를 선택한 뒤 내장 코어의 지원 여부를 확인하세요.

적합한 경우: VLESS + REALITY, Vision 노드, 기존 Xray 설정 환경

V2Fly 코어

서버가 V2Fly 설정을 제공하고 Xray 확장 기능에 의존하지 않는다면 해당 설정 체계를 계속 사용할 수 있습니다. 안드로이드에서는 v2flyNG를 선택할 수 있습니다. 전환 전에 설정 형식, 전송 설정, 구독 파싱 결과를 확인하세요.

적합한 경우: 기존 V2Fly 환경, 일반 VMess 또는 기본 VLESS 노드 관리

설정 방법: 같은 구독을 두 클라이언트에서 각각 확인

데스크톱: v2rayN
  • ‘구독 그룹 설정’에서 구독 주소를 추가합니다.
  • 업데이트한 뒤 노드 프로토콜, flow, 보안 유형을 확인합니다.
  • 노드를 시작하고 로그에서 실제 코어를 확인합니다.
안드로이드: 코어에 맞춰 선택
  • Xray 확장 기능이 필요하면 v2rayNG를 선택합니다.
  • V2Fly 설정을 계속 사용할 경우 v2flyNG의 지원 범위를 확인합니다.
  • 가져온 뒤 노드 편집 화면을 열어 항목이 유지됐는지 확인합니다.

같은 구독 주소를 사용해도 두 클라이언트에서 사용할 수 있는 노드가 완전히 같다고 보장할 수는 없습니다. 구독 형식, 파서, 내장 코어에 따라 결과가 달라집니다.

6. 전환 검증: 한 번에 변수 하나만 변경

V2Fly에서 Xray로 전환하거나 반대로 옮길 때는 먼저 필요한 매개변수가 모두 설정된 노드 하나로 검증하세요. DNS, 라우팅 규칙, TUN, 서버 주소를 한꺼번에 바꾸면 연결 실패 원인이 프로토콜인지 트래픽 진입 경로인지 판단하기 어렵습니다. 시스템 프록시 연결이 정상이라면 코어 테스트를 위해 TUN을 추가로 켤 필요도 없습니다.

  1. 기준 설정 기록: 기존 노드의 프로토콜, 전송 방식, 보안 유형, 원격 포트, 로컬 수신 포트를 기록하세요. 사용자 ID나 구독 주소는 공개하지 마세요.
  2. 호환되는 노드 선택: V2Fly로 되돌아갈 때 REALITY나 Vision에 의존하는 기존 매개변수를 계속 사용할 수 없습니다. 서버가 제공하는 호환 노드를 받아야 합니다.
  3. 설정을 다시 구성하고 시작: 대상 클라이언트의 노드 편집 화면에 매개변수를 입력하세요. 로그에서 설정이 받아들여졌는지, 코어가 계속 실행 중인지 먼저 확인합니다.
  4. 트래픽 진입 경로 확인: 데스크톱에서는 시스템 프록시가 현재 수신 포트를 가리키는지 확인하세요. 안드로이드에서는 프록시 서비스가 실행 중인지 확인한 뒤 브라우저로 실제 접속을 테스트합니다.
  5. 라우팅 설정 복원: 기본 연결이 확인된 후 분할 라우팅, DNS, 앱별 설정을 복원하세요. 매번 한 그룹씩 적용하고 문제가 생기면 해당 로그를 바로 확인합니다.

문제 해결 정보를 공유할 때는 오류 유형과 필요한 항목 이름만 캡처하세요. 구독 URL, 사용자 ID, 개인 키 및 기타 인증 정보가 공개 이미지에 포함되지 않도록 주의해야 합니다. 상대방에게 필요한 것은 ‘어떤 코어에서 어떤 항목이 어느 단계에서 실패했는지’이지, 노드 인증 정보 전체가 아닙니다.

7. 자주 묻는 질문: 가져오기·시작·연결 문제를 구분해 해결

v2flyNG에서 VLESS를 가져올 수 있는데 REALITY 노드는 왜 연결되지 않나요?

VLESS 프로토콜을 지원하는 것과 REALITY를 지원하는 것은 별개입니다. 노드 편집 화면에서 보안 유형을 확인하세요. 노드에서 REALITY를 요구한다면 해당 기능을 지원하는 Xray 클라이언트를 사용하고 공개 키, 서버 이름, Short ID를 다시 확인해야 합니다. 주소와 사용자 ID만 남겨서는 연결할 수 없습니다.

v2rayN에서 코어를 바꾼 뒤 flow를 지원하지 않는다고 표시됩니다. 비워도 되나요?

먼저 서버에서 xtls-rprx-vision을 요구하는지 확인하세요. 해당 flow가 필요하다면 이를 지원하는 Xray 코어를 사용하고 전송 조합도 점검해야 합니다. flow를 그냥 지우면 양쪽 설정이 맞지 않을 수 있습니다. 서버가 일반 VLESS 설정을 명시적으로 제공하는 경우에만 해당 설정에 따라 다시 입력하세요.

호환성을 위해 VMess 노드는 반드시 V2Fly만 사용해야 하나요?

그렇지 않습니다. 두 코어 모두 VMess를 지원합니다. 먼저 노드 편집 화면에서 주소, 포트, 사용자 ID, 전송 방식, WebSocket 경로 또는 gRPC 서비스 이름, TLS 서버 이름을 확인하세요. 기존 노드는 인증 설정이 현재 코어와 호환되는지도 확인해야 합니다. 문제를 전부 코어 브랜드 탓으로 돌려서는 안 됩니다.

로그에 오류가 없는데 웹페이지가 열리지 않습니다. 코어를 잘못 선택한 건가요?

먼저 로그에 실제 연결 기록이 있는지 확인하세요. 데스크톱에서는 트레이 메뉴의 시스템 프록시 상태와 로컬 포트를 확인하고, 안드로이드에서는 서비스가 계속 실행 중인지 살펴보세요. 트래픽이 코어에 들어온다면 DNS, 라우팅 규칙 적용 여부, 원격 핸드셰이크 로그를 점검하세요. 웹페이지가 열리지 않는다는 이유만으로 코어를 계속 바꾸지 마세요.

최종 선택은 다음 순서로 정리할 수 있습니다. 먼저 노드의 프로토콜, 전송 방식, 보안 유형, flow를 확인하고, 클라이언트가 해당 항목을 빠짐없이 유지하는지 살펴본 뒤 실제 코어를 확인하세요. REALITY와 Vision은 Xray를 선택할 명확한 근거입니다. 일반 VMess나 기본 VLESS는 이름만 보고 호환성을 판단하지 말고 설정을 맞춘 뒤 로그로 확인해야 합니다.

v2rayN 다운로드