Project V 생태계 정리: V2Fly·Xray 코어와 v2rayN·v2rayNG의 관계

Project V의 시작부터 V2Fly 커뮤니티의 유지보수와 Xray 포크까지 살펴보고, 코어·프로토콜·GUI 클라이언트의 관계를 정리해 기기에 맞는 조합을 선택하세요.

이 글 한눈에 보기

프로젝트, 코어, 프로토콜, 클라이언트의 차이를 먼저 파악한 뒤 노드 요구사항에 맞는 프로그램을 선택하세요. V2Fly와 Xray를 비교하거나 데스크톱과 Android에서 같은 구독을 사용하려는 분께 적합합니다. 읽고 나면 어떤 클라이언트를 설치할지, 어떤 프로토콜 항목을 확인할지, 가져오기는 성공했지만 연결되지 않을 때 어느 단계부터 점검할지 알 수 있습니다.

네 가지 계층 구분하기: Project V, 코어, 프로토콜, 클라이언트

‘V2Ray 다운로드’를 검색하면 Project V, V2Fly, Xray, v2rayN, v2rayNG가 함께 표시되는 경우가 많습니다. 하지만 이 이름들은 서로 다른 계층을 가리킵니다. 프로젝트 체계를 뜻하는 것도 있고, 네트워크 처리를 담당하는 프로그램을 뜻하는 것도 있으며, 사용자가 조작하는 GUI를 가리키는 것도 있습니다. 모두 서로 바꿔 쓸 수 있는 소프트웨어로 보면 다운로드, 가져오기, 문제 해결 단계에서 잘못된 항목을 선택하기 쉽습니다.

계층이름 예시역할
프로젝트 체계Project V네트워크 프록시 도구를 중심으로 형성된 프로젝트와 기술 생태계이며, GUI 클라이언트의 이름은 아닙니다.
코어 및 유지보수 프로젝트V2Fly가 유지보수하는 V2Ray, Xray-core설정을 읽고 인바운드, 아웃바운드, DNS, 라우팅 및 연결을 처리합니다.
프록시 프로토콜VMess、VLESS클라이언트와 서버가 프록시 요청 및 인증 정보를 주고받는 방식을 정의합니다.
GUI 클라이언트v2rayN、v2rayNG、v2flyNG구독 관리, 노드 선택, 프록시 켜기·끄기, 로그 확인 기능을 제공하고 코어를 호출해 연결을 처리합니다.

데스크톱 브라우저로 웹페이지에 접속하는 경우를 예로 들면, 클라이언트는 선택한 노드를 코어 설정으로 변환하고 코어는 라우팅 규칙에 따라 직접 연결할지 프록시 서버로 보낼지 결정합니다. 시스템 프록시나 TUN은 앱 트래픽이 이 경로로 들어오는 방식을 정합니다. 구독 목록이 같아 보여도 클라이언트마다 생성하는 설정, 사용하는 코어 버전, 트래픽을 처리하는 범위가 모두 같다는 뜻은 아닙니다.

배경 이해하기: V2Fly 커뮤니티의 유지보수와 Xray 포크

Project V는 V2Ray 등 여러 도구를 중심으로 발전했으며, V2Ray는 인바운드, 아웃바운드, 라우팅 등의 모듈을 조합하는 구조로 설계되었습니다. 초기 프로젝트의 유지보수에 변화가 생긴 뒤 V2Fly 커뮤니티가 V2Ray를 계속 유지보수했습니다. 따라서 ‘V2Fly’는 보통 유지보수 커뮤니티와 그 프로젝트를, ‘V2Ray’는 해당 커뮤니티가 유지보수하는 핵심 프로그램을 가리킵니다. 두 이름은 밀접하게 연결되어 있지만, 함께 설치해야 하는 두 개의 GUI 프로그램은 아닙니다.

Xray-core는 2020년 V2Ray 코드 기반에서 포크되어 독립적인 유지보수 경로를 발전시켜 왔습니다. 두 프로젝트는 공통된 역사를 지니고 비슷한 개념도 많이 공유하지만, 이를 근거로 새 설정을 양방향으로 그대로 사용할 수 있다고 판단해서는 안 됩니다. 특히 VLESS의 flow, REALITY, 보안 설정 및 전송 관련 항목은 실제 코어의 지원 여부를 확인하세요.

따라서 ‘Xray는 V2Ray의 새 이름인가요?’라는 질문의 답은 아닙니다. Xray는 독립적으로 발전한 포크이며, 프로젝트 전체가 한 번에 이름을 바꾼 것이 아닙니다. 포크가 등장했다고 해서 V2Fly가 유지보수하는 V2Ray가 자동으로 대체된 것도 아닙니다. 공통된 기반을 완전한 호환성으로 오해하지 말고, 현재 노드에 필요한 기능을 기준으로 선택하세요.

코어 선택하기: 노드 호환성을 먼저 확인한 뒤 사용 방식 비교하기

일반 사용자는 각 코어를 따로 설치할 필요가 없습니다. 먼저 클라이언트가 필요한 코어를 실행할 수 있는지 확인하고, 노드의 설정 항목이 지원되는지 살펴보세요. 다음 안내는 현재 사용 중인 구독을 기준으로 합니다. ‘권장’은 노드가 Xray 기능을 명시적으로 요구하는 경우를 뜻하며, 다른 유지보수 경로로는 다른 요구사항을 충족할 수 없다는 뜻이 아닙니다.

Xray 코어

권장

노드에 VLESS, REALITY 또는 특정 Vision flow가 명시되어 있다면 Xray 버전 요구사항과 클라이언트의 가져오기 지원 여부를 먼저 확인하세요. 노드 이름에 VLESS가 있다는 것만으로 판단하지 마세요.

적합한 경우: 서버에서 Xray 기능을 요구하거나 해당 매개변수가 제공되는 구독을 사용하는 경우.

V2Fly가 유지보수하는 V2Ray 코어

기존 설정이 V2Fly 문서에 따라 관리되고 현재 버전에서 지원하는 프로토콜과 전송 방식을 사용한다면 이 경로를 계속 이용할 수 있습니다. VMess처럼 양쪽에서 지원하는 프로토콜도 전송 방식과 TLS 설정을 하나씩 확인하세요.

적합한 경우: 기존 V2Ray 설정, 검증된 VMess 노드, v2fly 코어를 명시적으로 요구하는 환경.

요약: 노드 하나의 전체 매개변수부터 확인하세요

노드 편집 화면을 열고 프로토콜, 포트, 전송 방식, 보안 계층, flow를 차례로 기록하세요. REALITY나 특정 Xray 매개변수가 있다면 라우팅과 속도를 확인하기 전에 코어 지원 여부부터 살펴보세요. 호환되지 않는 조합에서 노드를 계속 바꾸는 일을 피할 수 있습니다.

같은 VMess를 사용한다고 속도가 반드시 같지는 않습니다. 지연 시간, 패킷 손실, 서버 부하, 송신 대역폭, 전송 방식 조합이 모두 사용 경험에 영향을 줍니다. 반대로 코어를 바꿔도 구독 서버의 회선 품질이 자동으로 개선되는 것은 아닙니다. 같은 네트워크와 노드, 테스트 대상으로 비교하지 않았다면 한 번의 속도 측정만으로 프로젝트 전체의 순위를 매기기는 어렵습니다.

클라이언트 선택: 데스크톱은 v2rayN, Android는 코어에 맞춰 선택

v2rayN은 데스크톱 GUI 클라이언트입니다. Windows, macOS, Linux용 빌드를 각각 선택하고 운영체제 및 프로세서 아키텍처 요구사항을 확인하세요. 화면과 설정을 관리하며, 실제로 어떤 코어를 호출할 수 있는지는 현재 버전과 설치된 구성 요소에 따라 달라집니다. 이름에 ‘v2ray’가 들어간다는 이유로 실행 중인 코어가 반드시 V2Fly 코어라고 단정하지 마세요.

Android에서는 이름이 비슷한 두 클라이언트를 구분해야 합니다. v2rayNG는 Xray 코어를, v2flyNG는 v2fly 코어를 사용합니다. 둘 다 노드 관리 등의 기능을 제공하지만 코어 경로가 다릅니다. 한 클라이언트가 특정 공유 링크를 읽을 수 있다고 해서 다른 클라이언트도 그 링크의 모든 확장 항목을 지원한다는 뜻은 아닙니다.

기기별 구성: 기기와 노드 요구사항에 맞는 클라이언트 선택

데스크톱: v2rayN
  • Windows, macOS, Linux에 맞는 빌드를 선택한 뒤 프로세서 아키텍처를 확인하세요.
  • 코어 설정과 시작 로그를 확인해 선택한 노드에서 실제로 어떤 코어가 실행되는지 파악하세요.
  • 먼저 시스템 프록시를 테스트하고, 앱 요구사항에 따라 TUN 사용을 검토하세요.
Android: v2rayNG 또는 v2flyNG
  • Xray 기능이 필요한 노드에는 v2rayNG를 선택하고 버전 요구사항을 확인하세요.
  • v2fly 코어가 필요하고 설정이 검증된 경우 v2flyNG를 선택하세요.
  • 처음 연결할 때 시스템 안내에 따라 VPN 권한을 허용한 뒤 트래픽을 처리할 앱 범위를 확인하세요.

두 기기에서 같은 구독을 사용할 수 있지만, 파싱 지원, 업데이트 시점, 서버의 동시 연결 제한은 기기별로 확인해야 합니다.

Android의 VPN 권한은 로컬 가상 네트워크 인터페이스를 만들어 기기 트래픽을 클라이언트로 전달하는 데 사용됩니다. 사용 가능한 노드를 자동으로 제공하는 권한은 아닙니다. 데스크톱의 시스템 프록시도 로컬 연결 방식일 뿐, 서버 주소나 인증 매개변수, 구독 서비스를 대신할 수 없습니다. 클라이언트 설치, 설정 가져오기, 트래픽 처리 활성화의 세 단계가 모두 필요합니다.

프로토콜과 구독 확인하기: 가져오기에 성공해도 호환된다는 뜻은 아닙니다

VMess와 VLESS는 프록시 프로토콜이고, WebSocket과 gRPC 등은 전송 방식입니다. TLS와 REALITY는 연결 보안 관련 설정이므로 같은 항목에서 서로 바꿔 쓸 수 있는 옵션이 아닙니다. VLESS 자체는 페이로드를 암호화하지 않으므로 적절한 보안 계층 및 배포 방식과 함께 보안을 판단해야 합니다. REALITY 또한 독립된 구독 주소가 아닙니다.

확인 항목구체적인 예혼동하기 쉬운 점
프로토콜 및 인증VMess 또는 VLESS, 서버에서 발급한 UUID프로토콜 이름을 바꿔도 기존 노드가 다른 서비스로 변환되지는 않습니다.
서버 포트서비스 제공자가 지정한 443443은 포트 예시일 뿐, TLS가 활성화되어 있다는 뜻은 아닙니다.
전송 방식WebSocket의 path와 Host, 또는 gRPC의 serviceName경로와 서비스 이름은 서버 설정과 일치해야 하며 클라이언트가 임의로 추측할 수 없습니다.
보안 설정TLS의 serverName 또는 REALITY의 공개 키와 shortId노드 주소와 serverName은 서로 다를 수 있으므로 제공자가 안내한 매개변수를 사용하세요.
flowxtls-rprx-vision서버에서 요구하고 조합이 지원되는 경우에만 설정하세요. 범용 속도 향상 옵션이 아닙니다.

구독 주소는 노드 목록을 배포하며, 공유 링크는 보통 단일 노드의 정보를 담습니다. 구독은 여러 링크의 목록을 반환할 수도 있고 특정 클라이언트에 맞는 형식으로 제공될 수도 있습니다. 웹페이지에서 구독 주소가 열린다는 것은 주소에 접속할 수 있다는 뜻일 뿐, 반환된 내용이 현재 클라이언트에 적합하다는 뜻은 아닙니다. 서비스 제공자가 여러 형식을 제공한다면 클라이언트에 맞는 항목을 선택하세요.

  1. 먼저 구독 주소를 확인하세요: 구독 관리에서 전체 주소를 추가하고 업데이트를 실행하세요. 구독 주소를 노드의 서버 주소 입력란에 넣지 마세요.
  2. 다음으로 노드 편집 화면을 확인하세요: 가져온 뒤 노드 하나를 골라 포트, 전송 방식, serverName, flow를 점검해 변환 과정에서 주요 항목이 빠지지 않았는지 확인하세요.
  3. 마지막으로 연결을 시도하고 로그를 확인하세요: 코어가 정상적으로 시작되는지 확인한 다음 연결 시간 초과, 인증 실패, 미지원 설정을 구분하세요. 노드가 목록에 보이는 것만으로 완료됐다고 판단하지 마세요.

문제 해결하기: 코어, 트래픽 처리, 라우팅 순서로 확인

먼저 문제 범위를 노드 하나와 앱 하나로 좁히세요. 다른 트래픽 처리 프로그램은 끄고 라우팅 설정은 그대로 둔 채 한 번 재현합니다. 서버에 연결하기도 전에 로그에 설정 오류가 표시되면 설정 항목이나 코어 선택부터 바로잡으세요. 코어가 시작됐지만 앱 트래픽이 프록시 경로로 들어가지 않는다면 시스템 프록시, TUN 또는 Android의 앱 적용 범위를 확인하세요.

같은 구독인데 v2rayNG에서는 연결되고 v2flyNG에서는 연결되지 않는 이유는 무엇인가요?

먼저 두 클라이언트에 표시된 같은 이름의 노드에서 프로토콜, 보안 계층, flow를 비교하세요. 노드가 REALITY 같은 Xray 기능에 의존한다면 v2rayNG를 사용하고 버전 요구사항을 확인하세요. v2flyNG에서 노드 이름만 바꾸지 마세요. 특정 코어가 필요한 매개변수가 없다면 구독 업데이트 시점과 로그 오류를 비교하세요.

v2rayN을 설치했는데 V2Fly도 따로 설치해야 하나요?

현재 설치된 구성 요소와 코어 시작 로그를 먼저 확인하세요. 필요한 코어가 이미 있고 정상적으로 시작된다면 중복 설치할 필요가 없습니다. 로그에 실행 파일이 없다고 표시되면 현재 클라이언트 안내에 따라 필요한 파일을 추가하세요. 전환하기 전에 실행 중인 코어를 종료해 호환되지 않는 파일을 수동으로 교체하는 일을 피하세요.

노드 테스트에서 지연 시간이 표시되는데 브라우저가 열리지 않는 이유는 무엇인가요?

먼저 v2rayN 메인 화면의 ‘시스템 프록시’ 메뉴에서 ‘시스템 프록시 자동 구성’을 선택한 뒤 시스템 프록시를 따르는 브라우저로 다시 시도하세요. 메뉴 이름은 현재 버전에 따라 다를 수 있습니다. 브라우저는 되지만 다른 앱이 작동하지 않으면 해당 앱의 프록시 설정을 확인하거나 TUN이 필요한지 검토하세요. 바로 프로토콜을 바꾸지는 마세요.

두 기기에서 구독을 함께 사용하면 모든 설정이 자동으로 동기화되나요?

아니요. 각 기기에서 구독을 업데이트하고 노드 목록을 비교해야 합니다. 라우팅, DNS, 앱별 적용 범위, 시스템 프록시 설정은 기기마다 따로 저장됩니다. 동시에 연결할 수 없다면 서비스 제공자의 기기 수 및 동시 접속 제한도 확인하세요. 모든 연결 끊김의 원인을 코어로 돌려서는 안 됩니다.

문제 해결을 마친 뒤 클라이언트 버전, 코어 버전, 노드의 프로토콜 조합, 오류 발생 시간을 기록해 두면 이후 업데이트 전후를 비교하기 쉽습니다. 로그를 공유하기 전에는 구독 주소와 UUID 등 민감한 정보를 삭제하세요. 생태계 선택의 핵심은 검증 가능한 조합입니다. 기기에서 클라이언트를 실행하고, 코어가 설정을 해석하며, 서버가 매개변수를 받아들인 뒤 트래픽 처리와 라우팅으로 앱 트래픽을 올바른 경로에 보내야 합니다.

V2Ray 클라이언트 다운로드