Xray-core와 V2Fly-core 차이: XTLS·REALITY 지원 및 설정 호환성

Xray-core와 V2Fly-core의 계보부터 XTLS Vision·REALITY 지원 차이, 두 코어 간 설정 전환 시 확인할 항목까지 정리합니다.

이 글의 핵심 내용

코어 선택은 클라이언트 화면의 이름이 아니라 노드에서 필요한 프로토콜, 전송 방식, 보안 계층에 따라 달라집니다. v2rayN에서 코어를 바꾸려는 사용자나 v2rayNG와 v2flyNG를 비교하는 사용자라면 먼저 VLESS, Vision, REALITY를 구분하고, 필드와 데이터 파일, 로컬 포트를 확인하세요. 마지막으로 설정 검사와 연결 로그를 통해 전환 결과를 검증하면 됩니다.

프로젝트 계보: 클라이언트·코어·노드 설정의 관계

V2Fly는 V2Ray를 이어 개발하는 커뮤니티 프로젝트이며, 핵심 프로그램은 보통 V2Fly-core라고 부릅니다. Xray-core는 2020년 V2Ray 코드 기반에서 분기한 뒤 독자적인 기능 개발과 배포 주기를 갖추었습니다. 두 프로젝트는 공통된 뿌리를 가져 설정 구조가 비슷한 경우가 많지만, 이것만으로 새 기능과 기본 동작, 필드 이름까지 항상 같다고 볼 수는 없습니다.

v2rayN은 구독 관리, 노드 편집, 설정 생성, 선택한 코어 실행을 담당하는 데스크톱 클라이언트입니다. 실제 프록시 연결은 코어 프로세스가 수행합니다. Android용 v2rayNG는 Xray 코어를, v2flyNG는 V2Fly 코어를 사용합니다. 클라이언트 이름이 비슷하다고 해서 지원하는 노드 기능까지 완전히 같지는 않습니다.

노드 가져오기 설정 생성 코어 검사 라우팅 규칙 적용 아웃바운드 핸드셰이크

구독에 포함된 공유 링크도 아무 코어에서나 바로 실행할 수 있는 완전한 설정은 아닙니다. 클라이언트가 노드 매개변수를 해당 코어의 아웃바운드 객체로 변환하고 로컬 인바운드, DNS, 라우팅을 추가해야 합니다. 구독을 가져올 수 있다는 것은 클라이언트가 링크 형식을 인식했다는 뜻일 뿐입니다. 실행 및 핸드셰이크 성공 여부는 생성된 설정과 서버 요구 사항을 각각 확인해야 합니다.

기능 비교: VLESS·XTLS Vision·REALITY는 서로 다른 계층

VLESS는 프록시 프로토콜이고, Vision은 Xray에서 VLESS와 함께 사용하는 흐름 제어 방식이며, REALITY는 연결 보안 계층에 속합니다. 흔히 말하는 'VLESS + TCP + REALITY + Vision'은 실제로 네 가지 설정을 조합한 것입니다. REALITY를 VLESS의 다른 이름으로 취급하거나, VLESS라는 이유만으로 노드에 반드시 Xray가 필요하다고 단정해서는 안 됩니다.

기능 또는 설정Xray-coreV2Fly-core전환 시 확인할 사항
VMess·VLESS 기본 프로토콜지원지원전송 및 보안 계층도 확인 필요
Trojan、Shadowsocks지원지원암호화 방식과 확장 기능은 항목별로 확인해야 함
일반적인 TCP·WebSocket·TLS지원지원경로, 요청 헤더, SNI 등이 일치해야 함
XTLS Vision지원Xray의 Vision flow 미지원flow 확인
REALITY지원Xray의 REALITY 미지원security 및 키 매개변수 확인
DNS 및 라우팅독자적인 구현과 확장 기능 제공독자적인 구현과 확장 기능 제공아웃바운드 노드만 바꾸고 이전을 끝낼 수는 없음

Vision 설정은 보통 사용자 객체의 flow: "xtls-rprx-vision"으로 지정하며, security를 'Vision'으로 설정하는 방식이 아닙니다. REALITY는 일반적으로 streamSettings.security: "reality"와 해당 realitySettings로 설정합니다. Vision은 주로 TLS 또는 REALITY와 함께 사용합니다. WebSocket 노드에 Vision flow를 임의로 추가하지 마세요.

판단 기준: 대체할 수 없는 필드를 먼저 확인한 뒤 코어를 바꾸세요

서버에서 REALITY 또는 xtls-rprx-vision을 요구한다면 이를 지원하는 Xray를 선택해야 합니다. 설정이 억지로 실행되도록 필드를 삭제하지 마세요. 클라이언트에서 필드를 지워도 서버의 핸드셰이크 요구 사항은 바뀌지 않습니다.

설정 호환성: 흐름 제어·보안 계층·전송 방식을 항목별로 확인

아래 두 카드는 매개변수 확인 예시이며 완전한 연결 설정이 아닙니다. 첫 번째는 Xray 전용 기능이 포함된 노드의 주요 설정을, 두 번째는 두 코어가 공통으로 지원하는 설정을 보여 줍니다. 주소, 사용자 인증 정보, 보안 매개변수는 실제 서버 설정이나 구독에서 확인해야 하며 노드 이름만으로 추측하면 안 됩니다.

VLESS + REALITY + Vision

프로토콜
vless
전송 방식
TCP. 구체적인 필드 표기는 코어 버전에 따라 확인
보안 계층
reality
Flow
xtls-rprx-vision
서버 포트
443(예시)

서버에서 제공한 SNI, 지문, 키 매개변수, shortId를 그대로 유지하고 해당 조합을 지원하는 Xray에서 처리하세요.

VMess + WebSocket + TLS

프로토콜
vmess
전송 방식
ws
보안 계층
tls
WebSocket 경로
/ws(예시)
VMess 설정
alterId: 0, AEAD 사용

두 코어 모두 해당 기능을 지원합니다. 경로, Host, SNI가 서버 설정과 일치해야 연결할 수 있습니다.

오래된 안내서에서 단독으로 'XTLS'라고 부르는 설정은 초기 방식일 수 있으며 현재의 Vision과는 다릅니다. 이전할 때 실제 flow 값과 보안 계층을 확인해 과거 설정을 새 버전에 그대로 복사하지 않도록 하세요. 클라이언트를 업그레이드한 뒤에는 클라이언트 버전 번호만 기록하지 말고 실제 실행 중인 코어 버전도 확인해야 합니다.

v2rayN 코어 전환: 먼저 백업하고 최소한으로 검증

v2rayN은 버전에 따라 메뉴 이름과 코어 선택 위치가 달라질 수 있습니다. 먼저 '설정' → '매개변수 설정'에서 코어 관련 옵션을 찾아보세요. 현재 버전에서 노드 유형별로 코어를 선택할 수 있다면 해당 화면의 'Core 유형' 또는 이에 해당하는 항목을 기준으로 삼으세요. 모든 프로토콜의 코어를 한꺼번에 바꾼 뒤 DNS, 라우팅, 시스템 프록시까지 동시에 수정하지 마세요.

  1. 기준 상태 기록. 현재 클라이언트 설정을 백업하고 클라이언트 버전, 로그에 표시된 코어 버전, 선택한 노드, 로컬 리스닝 주소와 포트를 기록하세요. 민감한 구독 주소는 로컬에만 보관하세요.
  2. 공통 지원 노드 선택. 우선 두 코어에서 모두 지원하는 기존 VMess + WebSocket + TLS 노드 등으로 검증하세요. REALITY 노드만 있다면 V2Fly로 전환할 때 동등한 조건으로 테스트할 수 없습니다.
  3. 한 번에 하나만 변경. 해당 프로토콜의 코어 선택을 변경하고 연결을 중지한 뒤 다시 시작하세요. 새 프로세스가 실행되었는지 확인한 다음 로그에서 실제 코어를 확인해 이전 프로세스가 포트를 계속 점유하고 있지 않은지 살펴보세요.
  4. 로컬 연결 지점 확인. 앱의 프록시 유형과 포트를 그대로 둔 채 실제 웹 요청을 한 번 보내세요. 지연 시간 테스트에 숫자가 표시되어도 브라우저의 시스템 프록시 연결이 올바르다는 뜻은 아닙니다.
  5. 기능을 단계별로 복구. 기본 연결을 확인한 다음 사용자 지정 라우팅, DNS, 기타 고급 설정을 복구하세요. 항목을 하나씩 복원할 때마다 다시 테스트하면 호환성 문제를 찾기 쉽습니다.
127.0.0.1
로컬 루프백 리스닝 주소 예시
10808
로컬 프록시 포트 예시
443
원격 서버 포트 예시

위 숫자는 로컬 연결 지점과 원격 출구를 구분하기 위한 예시이며 클라이언트의 고정 기본값이 아닙니다. 실제 포트는 현재 설정을 기준으로 확인하세요. 로컬 리스너가 HTTP, SOCKS, 혼합 방식 중 무엇인지도 함께 확인해야 합니다. 원격 서버가 443을 사용하더라도 브라우저의 시스템 프록시를 로컬 443으로 설정하는 것은 아닙니다.

실행 및 연결 문제 해결: 설정 검사를 통과해도 핸드셰이크가 성공하는 것은 아닙니다

전체 설정을 직접 관리하는 경우 코어에 포함된 설정 검사 명령부터 실행할 수 있습니다. 아래는 Xray와 V2Fly v5에서 흔히 사용하는 명령줄 형식입니다. client.json은 로컬에 저장된 완전한 설정 파일을 뜻합니다. 다른 버전은 먼저 도움말 명령으로 매개변수를 확인하세요. 클라이언트가 자동 생성한 임시 파일을 오프라인 검사에 사용하려면 먼저 복사해 백업해야 합니다.

xray version
xray run -test -config client.json

v2ray version
v2ray test -c client.json

설정 검사는 구문 오류, 일부 잘못된 필드, 지원되지 않는 조합을 찾아낼 수 있지만 원격 서버에 연결할 수 있는지 또는 인증 정보가 올바른지까지 증명하지는 않습니다. 코어가 정상적으로 시작된 뒤에는 실제 연결을 시도해 아웃바운드 핸드셰이크와 요청이 완료되는지 확인해야 합니다. 아래 표는 실패 단계를 나눠 모든 오류를 '노드 불량'으로 뭉뚱그리지 않도록 정리했습니다.

증상우선 확인할 항목다음 조치
설정을 불러오자마자 종료됨필드 유형, 프로토콜 이름, flow, 보안 계층첫 번째 설정 오류를 확인하고 현재 코어의 지원 범위를 점검
포트가 이미 사용 중이라는 메시지이전 코어 프로세스 또는 중복 실행된 클라이언트중복 인스턴스를 종료하고 리스닝 포트를 확인한 뒤 재시작
시작은 정상이나 핸드셰이크 실패SNI, 인증 정보, REALITY 매개변수, 시스템 시간원본 노드와 항목별로 비교하고 라우팅은 먼저 바꾸지 않기
기본 노드는 연결되지만 일부 도메인에서 실패DNS 정책, 라우팅 규칙, 데이터 파일기본 라우팅으로 먼저 확인한 뒤 규칙을 하나씩 복구
클라이언트 테스트는 성공하지만 브라우저에서 실패시스템 프록시, 브라우저 자체 프록시 설정앱이 현재 로컬 리스닝 포트에 연결되는지 확인

라우팅의 geosite:와 geoip:는 데이터 파일의 내용과 로드 경로에도 영향을 받습니다. 두 코어가 같은 규칙 문법을 인식하더라도 로컬 데이터에 해당 분류가 있다는 뜻은 아닙니다. 이전할 때 domainStrategy, DNS 서버, 아웃바운드 태그, 최종 기본 규칙까지 함께 확인해야 합니다. 그렇지 않으면 '실행은 되지만 라우팅 결과가 달라지는' 문제가 생길 수 있습니다.

자주 묻는 질문: 코어 선택과 성능 판단

REALITY 노드를 일반 TLS로 바꾸면 V2Fly에서 쓸 수 있나요?

클라이언트 설정만 바꿔서는 안 됩니다. 일반 TLS와 REALITY는 핸드셰이크 조건이 다르므로 서버에서 해당하는 접속 지점과 매개변수를 제공해야 합니다. security 이름만 바꾸지 말고 목표 코어를 실제로 지원하는 노드 설정을 받아 가져오기를 테스트하세요.

v2rayNG에서 내보낸 노드를 v2flyNG로 가져온 뒤 연결되지 않는 이유는 무엇인가요?

먼저 노드 세부 정보를 열어 보안 계층이 REALITY인지, 흐름 제어가 Vision인지, 전송 방식이 두 코어의 공통 지원 범위에 속하는지 확인하세요. Xray 전용 기능이 있다면 해당 조합을 지원하는 클라이언트를 사용하세요. 전용 기능이 없다면 가져온 뒤 경로, SNI, 포트가 유지되었는지 점검하세요.

Xray로 바꾸면 무조건 더 빨라지나요?

그렇게 단정할 수 없습니다. 같은 서버, 회선, 테스트 대상, 프록시 연결 지점을 사용하고 예열한 다음 같은 시간 동안 다운로드 테스트를 최소 3회 진행하세요. CPU 사용률, 재전송, 실패 횟수도 함께 살펴봐야 합니다. 프로토콜이 다른 노드의 결과를 코어 성능 차이로 바로 해석할 수는 없습니다.

두 코어를 동시에 실행해 테스트해도 되나요?

가능하지만 로컬 리스닝 포트가 서로 달라야 하며 시스템 프록시는 둘 중 한 연결 지점을 명확히 가리켜야 합니다. 재현하기 쉬운 방법은 순차 테스트입니다. 첫 번째 코어를 중지하고 포트가 해제된 것을 확인한 다음 다른 코어를 시작하고 나머지 설정은 그대로 유지하세요.

선택 기준: 서버 지원 기능이 우선, 재현 가능한 설정이 그다음

REALITY 또는 Vision이 필요하면 Xray를 선택하세요. 두 코어가 공통으로 지원하는 프로토콜 조합이라면 실제 버전의 설정 검사 결과, 연결 상태, 유지 관리 필요성에 따라 결정하면 됩니다. 검증된 설정을 하나 보관해 두면 코어, 노드, 라우팅을 한꺼번에 바꾸는 것보다 안정적으로 문제를 해결할 수 있습니다.

v2rayN 다운로드