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

Xray와 V2Fly 코어의 차이를 살펴보고 프로토콜 지원, 전송 방식, 설정 호환성을 비교합니다. 클라이언트에서 코어를 바꿀 때 확인할 점도 안내합니다.

핵심 내용

먼저 서버 요구 사항을 확인한 다음 코어를 선택하세요. VLESS, 전송 방식, TLS 또는 REALITY, flow는 서로 다른 계층의 설정이므로 프로토콜 이름만으로 호환 여부를 판단할 수 없습니다. v2rayN에서 코어를 바꾸려는 사용자나 Android에서 v2rayNG 또는 v2flyNG를 선택하려는 사용자를 위해 설정 항목 확인법, 변경 절차, 실패 시 점검 순서를 정리했습니다.

두 코어의 계보와 클라이언트의 관계

V2Fly 커뮤니티는 V2Ray 코어를 유지 관리하고, Xray-core는 V2Ray 프로젝트에서 갈라져 나온 별도의 개발 계열입니다. 두 코어는 설정의 공통된 역사를 공유하지만, 이후 프로토콜 구현과 전송 기능, 설정 항목은 각자 발전했습니다. Xray를 V2Fly의 인터페이스로 이해하거나, 프로그램 이름만 바꾸면 두 JSON 설정이 모두 실행된다고 생각해서는 안 됩니다.

클라이언트는 구독, 서버 목록, 시스템 프록시, 설정 생성을 담당하고 코어는 실제 연결과 프로토콜 처리, 라우팅 실행을 담당합니다. v2rayN은 데스크톱 클라이언트이며, 호출할 수 있는 코어는 설치 패키지와 클라이언트 버전, 설정 생성 기능에 따라 달라집니다. Android에서는 v2rayNG가 Xray 코어를, v2flyNG가 V2Fly 코어를 사용합니다. 두 앱은 같은 앱의 스킨이 아닙니다.

이 세 계층이 모두 맞아야 합니다. 가져오기에 성공했다는 것은 클라이언트가 공유 정보를 인식했다는 뜻일 뿐입니다. 서버가 목록에 표시되어도 코어가 연결을 완료했다는 의미는 아닙니다. 호환성 문제가 생기면 먼저 가져오는 과정에서 항목이 누락됐는지, 실행 단계에서 설정 해석에 실패했는지 구분하고, 마지막으로 원격 핸드셰이크를 점검하세요.

VLESS, XTLS, REALITY란?

VLESS는 프록시 프로토콜이고, XTLS Vision은 Xray 계열의 흐름 제어 기능으로 흔히 xtls-rprx-vision 설정값을 사용합니다. REALITY는 별도의 연결 보안 방식입니다. 세 가지가 하나의 서버 설정에 함께 들어갈 수는 있지만, 서로 바꿔 쓸 수 있는 ‘프로토콜 버튼’은 아닙니다. VLESS 자체는 전송 구간을 완전히 암호화하지 않으므로 VLESS라는 이름만으로 TLS가 활성화됐다고 판단하면 안 됩니다.

기능Xray 코어V2Fly 코어확인할 점
VMess지원지원인증 정보, 보안 설정, 전송 방식이 모두 일치해야 합니다
VLESS 기본 프로토콜지원구현되어 있으며, 구체적인 지원 여부는 사용 중인 버전과 설정 형식에 따라 다릅니다기본 프로토콜을 지원해도 Xray 확장 조합까지 지원하는 것은 아닙니다
XTLS Vision해당 VLESS 흐름 제어 지원Xray Vision 설정을 그대로 사용할 수 없습니다flow가 서버 설정과 일치해야 합니다
REALITY지원Xray REALITY 설정을 그대로 실행할 수 없습니다보안 유형, 서버 이름, 공개 키 매개변수, 짧은 ID
WebSocket + TLS일반적인 조합 지원일반적인 조합 지원경로, Host, 서버 이름, 인증서 검증

따라서 “V2Fly는 VLESS를 전혀 지원하지 않는다”는 말은 지나치게 단정적입니다. 반대로 “VLESS를 지원하면 모든 VLESS 서버에 연결할 수 있다”는 말도 맞지 않습니다. 특히 REALITY나 Vision이 포함된 공유 링크는 Xray의 기능과 클라이언트 지원 범위를 기준으로 판단하세요. vless:// 접두사만 보고 결론 내리지 마세요.

결론: security와 flow를 먼저 확인한 뒤 코어 선택

서버에서 REALITY 또는 xtls-rprx-vision을 명시적으로 요구한다면 해당 설정을 완전하게 생성할 수 있는 Xray 클라이언트 조합을 선택하세요. 일반 VMess나 흔히 쓰이는 TLS 전송만 필요하다면 기존 설정과 유지 관리 요구 사항을 비교하면 됩니다.

서버 요구 사항에 맞춰 코어 선택

아래 권장 사항은 REALITY 또는 Vision을 사용하는 서버에 연결해야 한다는 전제가 있습니다. 속도 순위가 아니며, 같은 회선을 Xray로 바꾸면 지연 시간이 줄어든다는 뜻도 아닙니다. 회선 품질과 서버 부하, 전송 조합, 로컬 네트워크가 모두 결과에 영향을 줍니다. 동일한 테스트 조건이 없다면 성능 향상률을 제시할 수 없습니다.

Xray 코어

권장

서버에서 VLESS + REALITY 또는 Vision을 요구한다면 Xray 설정 흐름을 우선 사용하세요. 데스크톱에서는 v2rayN에 사용할 수 있는 Xray 코어가 설치되어 있는지 확인하고, Android에서는 v2rayNG를 선택하세요. 가져온 뒤 주요 설정 항목이 유지됐는지도 점검해야 합니다.

적합한 경우: 서버에서 REALITY나 Vision을 명시적으로 요구하거나, 사용 가능한 Xray 설정이 이미 있는 경우

V2Fly 코어

기존 V2Fly 설정이나 VMess, 일반적인 WebSocket + TLS 서버를 사용한다면 계속 이용할 수 있습니다. 이전하기 전에 실제 설정을 먼저 검증하세요. 코어 이름이 다르다는 이유만으로 모든 서버와 라우팅 규칙을 다시 만들 필요는 없습니다.

적합한 경우: 기존 설정이 V2Fly에 의존하고 서버에서 Xray 전용 기능을 요구하지 않는 경우

오래된 자료에서 ‘XTLS’는 초기 설정 형식을 가리키는 경우도 있으므로 Vision 설정에 그대로 적용하면 안 됩니다. 구독 제공자가 ‘VLESS 지원’이라고만 안내한다면 전송 유형과 보안 유형, 흐름 제어 값을 추가로 확인하세요. 정보가 부족할 때 코어를 계속 바꿔 가며 서버 설정을 추측하지 마세요.

설정 호환성: 항목별 점검 목록

공유 링크는 클라이언트 간에 매개변수를 전달하는 형식이지, 완전한 코어 설정 파일이 아닙니다. 구독을 가져오면 클라이언트가 매개변수를 자체 데이터로 변환한 뒤 코어 실행 설정을 생성합니다. 어느 단계에서든 항목이 누락되면 “링크는 가져와지지만 실행이 실패”하거나 “실행은 되지만 연결이 실패”할 수 있습니다.

확인 위치주요 항목처리 방법
서버 주소 및 포트address、port서버에서 지정한 값을 사용하세요. 443은 흔히 쓰이는 포트일 뿐 필수값은 아닙니다
사용자 인증 정보 및 흐름 제어id、flow인증 정보를 확인하고, Vision은 서버에서 요구하는 흐름 제어 값을 사용하세요
전송 계층streamSettings.network실제 코어 버전에서 인식하는 전송 이름으로 생성하세요. 다른 코어 계열의 설정을 그대로 복사하면 안 됩니다
연결 보안streamSettings.securitytls와 reality를 구분하고 서로 바꿔 쓰지 마세요
서버 이름serverName서버에서 허용하는 이름과 일치해야 하며, 연결 주소와 다를 수 있습니다
REALITY 매개변수realitySettings의 공개 키 매개변수와 shortId현재 클라이언트와 코어가 지원하는 필드 이름을 확인하고 제공업체 자료와 대조하세요
WebSocket 요청wsSettings.path、headers.Host경로와 요청 헤더를 유지하세요. 도메인과 포트만 복사해서는 안 됩니다

사용자 지정 JSON은 일반 서버 항목보다 더 신중하게 다뤄야 합니다. 양쪽 설정에 inbounds, outbounds, routing이 모두 있더라도 내부 필드와 기본 동작, 규칙 데이터의 의존성은 다를 수 있습니다. 먼저 원본 파일을 백업한 다음 대상 코어로 구문 해석을 테스트하세요. “JSON 문법이 올바르다”는 사실만으로 “코어 설정도 유효하다”고 판단하면 안 됩니다.

v2rayN 코어 변경 및 Android 앱 선택

v2rayN은 버전에 따라 메뉴 위치가 달라질 수 있습니다. 일반적으로 「설정」→「매개변수 설정」의 「Core 유형 설정」에서 해당 메뉴를 찾을 수 있습니다. 모든 서버가 함께 전환된다고 가정하지 말고 프로토콜별 코어 매핑을 확인하세요. 현재 버전에 해당 항목이 없다면 설치 패키지가 지원하는 코어 유형부터 확인하세요. 서버의 프로토콜 드롭다운에서 VLESS를 VMess로 바꾸면 안 됩니다.

  1. 되돌릴 설정을 보관하세요. 서버 및 구독 정보를 백업하고 현재 사용할 수 있는 서버, 코어 이름, 로컬 수신 포트를 기록하세요. 첫 테스트에서 라우팅, DNS, 보안 매개변수를 한꺼번에 변경하지 마세요.
  2. 실행 파일을 확인하세요. 대상 코어가 설치되어 있고 운영체제 및 프로세서 아키텍처와 호환되는지 확인하세요. Windows, macOS, Linux용 프로그램 파일은 서로 바꿔 사용할 수 없습니다.
  3. 프로토콜 매핑을 조정하세요. Core 유형 설정에서 대상 프로토콜이 사용할 코어를 확인하고 저장한 뒤 코어를 다시 시작하세요. 사용자 지정 설정은 지정된 코어 유형도 별도로 확인해야 합니다.
  4. 시작 로그를 확인하세요. 실제로 실행된 코어와 버전 정보를 확인하세요. 먼저 설정 필드 해석 오류가 없는지 살펴본 다음 원격 연결을 점검해야 실행 실패를 회선 문제로 오해하지 않습니다.
  5. 프록시와 앱을 따로 테스트하세요. 로컬 SOCKS 포트가 실제로 10808이라면 테스트 도구도 해당 포트에 연결해야 합니다. HTTP 포트가 반드시 10809라고 가정하지 말고 로컬 설정을 확인하세요.

구성 방법: 데스크톱에서는 매핑을 확인하고 Android에서는 코어에 맞는 앱 선택

데스크톱: v2rayN
  • 매개변수 설정에서 프로토콜과 코어의 매핑을 확인합니다.
  • 설정을 저장하고 코어를 다시 시작한 뒤 로그에서 실제 실행 프로그램을 확인합니다.
  • 변경 중에는 기존 DNS, 라우팅, 로컬 수신 설정을 유지합니다.
Android:v2rayNG / v2flyNG
  • Xray 기능이 필요하다면 v2rayNG를 선택합니다.
  • V2Fly 설정을 계속 사용하려면 v2flyNG의 실제 지원 범위를 확인합니다.
  • 같은 구독을 가져온 뒤 설정 항목과 시스템 VPN 권한을 확인합니다.

구독 주소가 같아도 생성되는 설정과 사용할 수 있는 서버 범위는 다를 수 있습니다. 양쪽에서 실제 연결을 각각 테스트하세요.

코어 변경 후 연결되지 않을 때: 오류 단계별 점검

다음 순서로 확인하세요. “설정 해석 → 로컬 수신 → 서버 연결 → 핸드셰이크 인증 → 라우팅 및 DNS”. 앞 단계가 통과되지 않았다면 뒤 단계부터 조정하지 마세요. 오류 주변의 설정 필드와 아웃바운드 태그를 기록하면 됩니다. 다른 사람에게 도움을 요청하기 전에 구독 주소와 인증 정보, 서버의 민감한 정보를 삭제하세요.

코어 변경 후 unknown field가 표시됩니다. 서버에 문제가 있는 건가요?

대개 서버 연결 전 설정 해석 단계에서 발생하는 오류입니다. 먼저 로그에서 현재 코어를 확인하고, 오류에 표시된 필드가 다른 코어 계열에 속하는지 점검하세요. 클라이언트에서 서버 정보를 다시 저장해 설정을 생성하고, 호환되지 않는 사용자 지정 JSON을 그대로 복사하지 마세요.

같은 VLESS 링크인데 V2Fly로 바꾸면 왜 연결에 실패하나요?

서버 편집 창을 열어 REALITY가 활성화되어 있는지, 흐름 제어 값이 xtls-rprx-vision인지 확인하세요. 이 설정이 필요하다면 해당 조합을 지원하는 Xray 코어로 되돌리세요. 보안 매개변수를 삭제해 억지로 실행하지 마세요.

코어는 정상적으로 시작되는데 로그에서 핸드셰이크가 계속 실패하면 어떻게 하나요?

서버 주소와 포트, 인증 정보, 서버 이름, REALITY 공개 키 매개변수와 짧은 ID를 하나씩 확인하고 기기 시간이 정확한지도 확인하세요. WebSocket + TLS를 사용한다면 경로와 Host도 점검해야 합니다. 한 번에 한 종류의 매개변수만 수정하고 저장한 뒤 다시 테스트하세요.

로그에 address already in use가 표시되면 코어를 바꿔야 하나요?

먼저 로컬 수신 포트를 확인하세요. 실제 설정이 10808이라면 해당 포트를 사용 중인 다른 프로세스를 종료하거나 매개변수 설정에서 로컬 수신 포트를 바꾸고 앱의 프록시 설정도 함께 업데이트하세요. 이는 포트 충돌이지 Xray와 V2Fly 간의 프로토콜 차이가 아닙니다.

최종 판단 기준은 대상 코어가 설정을 해석하고, 정상적으로 포트를 열고, 서버 핸드셰이크를 완료하며, 실제 앱의 트래픽을 예상대로 라우팅하는지 여부입니다. 브라우저에서만 연결되지 않고 프록시 연결 테스트는 정상이라면 시스템 프록시와 브라우저 설정을 점검하세요. 일부 도메인에서만 문제가 발생한다면 DNS와 라우팅 규칙을 확인하세요. 모든 문제를 “코어 선택 오류”로 돌리지 마세요.

v2rayN 클라이언트 다운로드