노드에 REALITY 또는 xtls-rprx-vision이 포함되어 있다면 Xray 지원 여부를 먼저 확인하세요. VMess, WebSocket, TLS 같은 일반 설정만 사용하는 경우에는 두 코어 모두 사용할 수 있습니다. 클라이언트를 고르거나 코어를 바꾸고 설정을 이전하려는 사용자를 위해 프로토콜·전송 방식·보안 계층·로그를 차례로 확인하는 방법을 설명합니다. 클라이언트 이름만으로 호환 여부를 판단하지 마세요.
V2Ray, V2Fly, Xray와 클라이언트 구분하기
코어는 프록시 연결, 프로토콜 처리, DNS, 라우팅을 담당합니다. 클라이언트는 노드 목록, 구독 가져오기, 설정 편집, 프로세스 관리를 맡습니다. v2rayN 화면에 노드가 표시되어도 현재 실행 중인 코어가 해당 노드의 모든 항목을 해석할 수 있다는 뜻은 아닙니다. 코어를 고르기 전에 노드 요구 사항과 클라이언트가 실제로 실행하는 프로그램을 확인하세요.
Project V는 이 생태계의 프로젝트 배경이며, V2Ray는 그중 하나인 프록시 소프트웨어입니다. V2Fly 커뮤니티는 V2Ray 개발을 이어 왔습니다. Xray는 2020년 V2Ray 관련 코드에서 분리되어 독자적으로 발전한 코어 프로젝트입니다. 두 코어는 설정 개념을 상당수 공유하지만, 같은 프로그램의 서로 다른 화면은 아닙니다. 출발점이 같다는 이유만으로 설정이 완전히 호환된다고 볼 수도 없습니다.
- V2Fly: 여기서는 V2Ray를 유지 관리하는 커뮤니티와 해당 코어 계열을 뜻합니다. 프로그램과 문서에는 여전히 V2Ray라는 이름이 자주 등장합니다.
- Xray: 독립적으로 발전하는 프록시 코어입니다. 코어를 고를 때는 REALITY와 XTLS Vision 지원 여부를 확인해야 합니다.
- v2rayN: 데스크톱 클라이언트입니다. 선택할 수 있는 코어는 설치된 파일, 클라이언트 버전, 설정 유형에 따라 달라집니다.
- v2rayNG / v2flyNG: 안드로이드 클라이언트입니다. v2rayNG는 Xray 코어를, v2flyNG는 V2Fly 코어를 사용합니다. 두 앱을 같은 앱 안에서 바꾸는 옵션으로 혼동하지 마세요.
기능 차이: REALITY와 Vision부터 전송 조합까지 확인
가장 먼저 확인할 점은 노드가 Xray 전용 기능을 요구하는지 여부입니다. REALITY는 보안 계층 방식으로, VMess나 VLESS를 대신하는 이름이 아닙니다. xtls-rprx-vision은 흐름 제어 매개변수이지 독립적인 전송 프로토콜이 아닙니다. 노드 연결 여부는 프로토콜·전송 방식·보안 계층·흐름 제어 조합을 모두 지원하는지에 달려 있습니다.
| 확인 항목 | Xray | V2Fly | 판단 기준 |
|---|---|---|---|
| VMess | 지원 | 지원 | 전송 방식, TLS, 인증 설정도 확인하세요. 프로토콜 이름만으로 판단할 수 없습니다. |
| VLESS | 지원 | 지원하지만 기능 조합은 다름 | 기본 VLESS를 지원한다고 해서 REALITY나 Vision까지 지원하는 것은 아닙니다. |
| Trojan | 지원 | 지원 | 비밀번호, TLS 서버 이름, 서버에서 사용하는 전송 설정을 확인하세요. |
| REALITY | 지원함. 실제 버전과 설정 항목 확인 필요 | Xray의 REALITY 설정은 직접 사용할 수 없음 | 노드에서 REALITY를 요구한다면 이 글에서 비교하는 두 코어 중 Xray를 선택하세요. |
| XTLS Vision | 해당 VLESS 설정 조합 지원 | Xray의 Vision 흐름 제어는 지원하지 않음 | xtls-rprx-vision이 보이면 Xray 지원 여부와 전송 요구 사항을 확인하세요. |
| WebSocket + TLS | 지원 | 지원 | 경로, Host, 서버 이름, 서버 설정도 확인해야 합니다. |
| DNS 및 라우팅 | 관련 모듈 제공 | 관련 모듈 제공 | 설정 항목, 기본 동작, 확장 기능은 각 프로젝트 문서를 확인하세요. |
오래된 안내서의 “XTLS”는 초기 설정을 가리킬 수 있으며, 현재의 Vision과 같은 의미가 아닙니다. 설정을 파싱하게 하려고 security를 reality에서 tls로 바꾸지도 마세요. 핸드셰이크 방식이 달라지며 서버 설정은 바뀌지 않습니다. 해당 설정과 호환되는 코어를 사용하거나 서버 관리자에게 실제로 제공되는 다른 노드 설정을 요청하세요.
클라이언트 선택: 노드 요구 사항에 맞는 코어 고르기
사용 가능한 구독이 있다면 먼저 노드 편집 화면에서 주요 항목을 확인하세요. “VLESS”만 표시된 노드 정보로는 충분하지 않습니다. 전송 유형, 보안 계층, 흐름 제어도 확인해야 합니다. 아래 권장 사항은 REALITY나 Vision이 필요한 경우를 대상으로 하며, 일반 노드를 모두 이전해야 한다는 뜻은 아닙니다.
Xray 코어
권장REALITY 또는 xtls-rprx-vision을 명시적으로 요구하는 노드에 사용하세요. 데스크톱에서는 v2rayN이 실제로 실행하는 코어를 확인하고, 안드로이드에서는 v2rayNG를 선택한 뒤 포함된 코어가 노드 요구 사항을 충족하는지 확인하세요.
적합한 경우: REALITY 또는 Vision 노드를 사용하며 필요한 기능 조합을 맞춰야 할 때
V2Fly 코어
V2Fly 설정을 적용해 검증한 환경에서 사용하세요. 일반적인 VMess, VLESS, Trojan 노드도 전송 방식과 보안 설정을 항목별로 확인해야 합니다. 안드로이드에서는 v2flyNG가 해당 클라이언트입니다.
적합한 경우: 기존 V2Fly 설정을 유지하며 서버에서 Xray 전용 기능을 요구하지 않을 때
v2rayN 일부 버전에서는 「설정」→「매개변수 설정」에서 코어 관련 옵션을 찾을 수 있습니다. 옵션 이름과 지원 범위는 버전에 따라 다릅니다. 화면에 특정 코어 옵션이 없다고 해서 프로그램 파일 이름을 바꾸면 전환된다고 생각하지 마세요. 클라이언트의 지원 범위, 설치 파일에 포함된 구성 요소, 시작 로그를 확인하고 필요하다면 기존 설정에 맞는 방식으로 클라이언트를 설치하세요.
데스크톱과 안드로이드에서 같은 구독의 노드를 각각 검증
데스크톱: v2rayN
- 노드의 프로토콜, 전송 방식, 보안 계층을 먼저 확인합니다.
- 설정 유형에 맞는 코어 옵션을 확인합니다.
- 실행 후 로그에서 코어 이름과 버전을 확인합니다.
안드로이드: v2rayNG / v2flyNG
- REALITY 또는 Vision 노드에는 호환되는 v2rayNG를 사용합니다.
- 기존 V2Fly 환경의 설정은 v2flyNG로 확인할 수 있습니다.
- 처음 연결할 때 시스템 VPN 권한과 앱별 프록시 적용 범위를 확인합니다.
같은 구독 주소를 여러 클라이언트에서 사용할 수 있지만, 형식 해석 방식과 지원 항목, 업데이트 시점은 서로 다를 수 있습니다. 노드 목록과 연결 결과를 클라이언트별로 확인하세요.
코어 전환 전: 로컬 포트와 원격 포트를 따로 기록
코어를 바꾼 뒤 웹페이지가 열리지 않는다고 해서 원격 프로토콜이 호환되지 않는 것은 아닙니다. 앱이 이전 로컬 포트에 연결 중이거나, 수신 주소가 바뀌었거나, 포트가 이미 사용 중이어도 같은 현상이 생길 수 있습니다. 아래는 확인 위치를 설명하기 위한 설정 예시이며, 클라이언트 기본값이나 실제 테스트 결과가 아닙니다.
- 로컬 프록시 주소를 기록하세요. 앱에서 SOCKS를 사용한다면 서버의
443포트가 아니라 예시의127.0.0.1:10808에 연결해야 합니다. HTTP 프록시는 실제로 활성화된 HTTP 또는 혼합 프록시 주소를 사용하세요. - 노드 설정을 기록하세요. 서버 주소와 포트, 사용자 ID 또는 비밀번호, 전송 유형, 서버 이름, 흐름 제어를 보관하세요. REALITY는 공개 키와 Short ID 등 서버에서 제공한 항목도 확인해야 합니다.
- 라우팅과 DNS 설정을 기록하세요. 전환 전에 클라이언트 설정을 내보내거나 백업하세요. 구독 데이터, 사용자 지정 라우팅, 사용자 지정 JSON을 구분해 노드 목록만 백업하는 일이 없도록 합니다.
- 항목별로 전환하세요. 먼저 TUN 등 추가 트래픽 가로채기 기능을 중지하고, 명확한 로컬 프록시 주소로 연결을 한 번 확인한 다음 기존 라우팅과 트래픽 가로채기 설정을 복원하세요.
서버가 443에서 연결을 받는다고 해서 노드가 일반 TLS를 사용한다는 뜻은 아닙니다. 임의의 브라우저 요청을 해당 포트로 바로 보내도 된다는 의미도 아닙니다. 포트는 연결 대상의 일부일 뿐이며, 실제 핸드셰이크는 프로토콜과 보안 계층에 따라 달라집니다.
JSON 설정을 그대로 재사용할 수 있을까? 구조가 비슷해도 항목 호환성은 별개
두 코어 계열은 inbounds, outbounds, routing, dns 같은 개념을 공유하지만, 확장 항목과 설정 형식, 기본 처리 방식은 프로젝트 발전 과정에서 달라질 수 있습니다. 클라이언트가 공유 링크를 가져올 때는 실행 설정으로 변환하는 과정도 거칩니다. 따라서 “링크 가져오기 성공”과 “생성된 JSON으로 실행 성공”은 별개의 단계입니다.
- 아웃바운드 확인:
protocol, 인증 설정,streamSettings의 조합을 확인하고 한 항목만 복사하지 마세요. - 라우팅 확인: 규칙의
outboundTag는 실제로 존재하는 아웃바운드tag와 일치해야 합니다. 규칙 순서도 기존 의도에 맞게 유지하세요. - DNS 확인: 시스템 DNS, 클라이언트가 생성하는 DNS 설정, 코어의 대상 도메인 처리 방식을 구분하세요. 이 셋을 하나의 옵션으로 보면 안 됩니다.
- 리소스 확인: 라우팅에서 도메인 또는 주소 데이터 파일을 참조한다면 새 코어가 파일 형식을 읽을 수 있는지와 클라이언트가 전달하는 리소스 경로를 확인하세요.
일반 사용자는 기존 설정을 백업한 뒤 대상 클라이언트에서 노드를 다시 가져와 항목을 확인하는 편이 안전합니다. 생성된 설정 전체를 그대로 덮어쓰지 마세요. 사용자 지정 JSON을 쓰는 경우에는 대상 코어 문서에 따라 항목별로 비교하고, 현재 실행 파일의 도움말에서 설정 검사 명령을 확인하세요. 다른 코어 계열의 명령 옵션을 그대로 복사하지 않도록 주의해야 합니다.
문제 해결: 시작 상태, 핸드셰이크, 라우팅 순으로 확인
로그는 연결 단계별로 읽으세요. 코어가 정상적으로 시작되지 않았다면 원격 서버 이름을 바꿔도 소용이 없습니다. 원격 핸드셰이크가 이미 성공했다면 코어를 계속 바꾸는 것만으로 라우팅이나 DNS 문제가 해결되지 않을 수 있습니다. 한 번에 관련 항목 한 묶음만 변경하고, 변경 전후 로그의 시간을 기록하세요.
노드를 가져올 수는 있지만 시작할 때 알 수 없는 항목이라는 오류가 표시되나요?
시작 로그에서 코어 이름과 버전을 확인한 뒤 오류가 난 항목을 살펴보세요. 노드에서 REALITY나 Vision을 요구한다면 해당 설정을 지원하는 Xray를 선택하세요. 이미 Xray를 사용 중이라면 버전과 클라이언트가 생성한 설정이 서로 맞는지 확인합니다. 오류 항목을 바로 삭제하지 마세요.
Xray로 바꿨는데도 계속 시간 초과가 발생한다면 어디부터 확인해야 할까요?
먼저 서버 주소와 포트에 연결할 수 있는지 확인한 다음 TLS 서버 이름 또는 REALITY 설정, 사용자 ID, 흐름 제어를 점검하세요. 시간 초과만으로 코어 선택이 잘못됐다고 단정할 수 없습니다. 원격 서버의 미수신 상태, 네트워크 경로 단절, 로컬 방화벽도 시간 초과를 일으킬 수 있습니다.
로그에 address already in use가 표시되면 어떤 포트를 바꿔야 하나요?
오류에 표시된 로컬 수신 주소를 확인하세요. 예시 포트 10808을 다른 프로세스가 사용 중이라면 중복 실행 중인 코어를 종료하거나 로컬 수신 포트를 변경하고, 해당 프록시를 사용하는 앱의 설정도 함께 바꾸세요. 원격 443 포트를 임의로 변경하지 마세요.
코어가 시작되고 연결 테스트도 통과했지만 일부 웹사이트만 열리지 않나요?
먼저 앱이 실제로 프록시를 사용하는지 확인한 뒤 대상 도메인에 어떤 라우팅 규칙과 아웃바운드가 적용됐는지 살펴보세요. 같은 노드로 임시 프록시 규칙과 기존 규칙을 비교한 다음 DNS를 확인합니다. 안드로이드에서는 앱별 프록시 설정에서 대상 앱이 제외되지 않았는지도 확인하세요.
코어 선택 결론: 검증 가능한 설정 조합 유지
REALITY 또는 XTLS Vision이 필요하다면 이 글에서 비교한 범위 내에서는 해당 기능을 지원하는 Xray를 선택하세요. 기존 V2Fly 설정이 안정적으로 작동하고 노드가 이 기능들을 요구하지 않는다면 이름만 바꾸기 위해 이전할 필요는 없습니다. VMess, VLESS, Trojan도 전송 방식, 보안 계층, 인증 설정을 계속 확인해야 합니다.
- 노드부터 확인: 프로토콜 이름뿐 아니라 전송 방식, 보안 계층, 흐름 제어, 서버 요구 사항을 기록하세요.
- 실행 중인 프로세스 확인: 시작 로그로 실제 코어를 확인하세요. 클라이언트 아이콘이나 노드 이름만으로 판단하지 마세요.
- 마지막으로 검증: 같은 네트워크, 같은 노드, 같은 접속 대상을 사용해 연결·DNS·라우팅을 확인한 뒤 일상 설정을 복원하세요.
설정 항목 구조를 확인하려면 V2Ray JSON 설정 매뉴얼을 읽어 보세요. 인바운드·아웃바운드·라우팅의 차이가 익숙하지 않다면 용어 설명부터 확인하세요. 버전 선택은 실제 설치 파일과 노드 요구 사항을 기준으로 하세요. 과거 안내서에 나온 옵션 위치가 모든 클라이언트 버전에서 같다고 가정하지 마세요.