Project V는 프로젝트 생태계이고, V2Fly는 V2Ray 개발을 이어가는 커뮤니티이며, Xray는 V2Ray에서 분리된 독립 코어 프로젝트입니다. v2rayN·v2rayNG·v2flyNG는 설정과 연결을 관리하는 클라이언트입니다. 먼저 운영체제와 노드 요구사항을 확인한 뒤 클라이언트가 실제로 사용하는 코어를 살펴보세요. 이 글에서는 관계도와 비교표, 점검 항목을 통해 각 이름의 범위를 정리합니다. 클라이언트를 설치하거나 구독 설정을 옮기려는 사용자에게 유용합니다.
Project V, V2Fly, Xray의 관계
Project V는 네트워크 프록시 도구를 중심으로 형성된 프로젝트 생태계이며, V2Ray는 그 핵심 도구입니다. 검색어로 쓰이는 ‘V2Ray’는 코어 프로그램을 뜻할 수도 있고, 관련 프로토콜을 사용하는 클라이언트 생태계를 통칭할 수도 있습니다. 두 의미가 섞이면 ‘V2Ray를 설치했는데 왜 Xray도 선택해야 하나요?’ 같은 의문이 생기기 쉽습니다.
V2Fly 커뮤니티는 V2Ray 개발을 이어가고 있으며, 그 코어는 보통 V2Ray-core 또는 v2fly 코어라고 부릅니다. Xray-core는 2020년 V2Ray에서 분리된 뒤 독립적으로 개발되고 있습니다. 두 프로젝트는 공통된 역사를 바탕으로 일부 설정 구조가 비슷하지만, 같은 프로그램의 구버전과 신버전은 아닙니다. 한쪽의 모든 기능이 다른 쪽에 자동으로 반영되는 관계도 아닙니다.
Project V 프로젝트 생태계
└─ V2Ray 핵심 도구
├─ V2Fly 커뮤니티가 개발 지속 → V2Ray-core
└─ 2020년 분리 → Xray-core, 독립 개발
클라이언트 인터페이스
├─ v2rayN → 노드 설정과 클라이언트 버전에 따라 해당 코어를 호출
├─ v2rayNG → Xray-core
└─ v2flyNG → V2Fly의 V2Ray-core
그림의 화살표는 역사적 기원이나 호출 관계를 나타내며, 조직의 소속 관계를 뜻하지 않습니다. 클라이언트는 구독, 노드 선택, 인터페이스 조작을 담당하고 코어는 연결, 전송, DNS, 라우팅 규칙을 처리합니다. 인터페이스가 정상적으로 실행되어도 코어가 성공적으로 시작되었다는 뜻은 아닙니다. 노드를 가져올 수 있다고 해서 현재 코어가 모든 매개변수를 지원하는 것도 아닙니다.
| 이름 | 분류 | 선택 시 확인할 사항 |
|---|---|---|
| Project V | 프로젝트 생태계와 역사적 배경 | 클라이언트 설치 파일 이름이 아님 |
| V2Fly | 커뮤니티 및 개발 프로젝트 | V2Ray-core가 노드 요구사항을 충족하는지 |
| Xray-core | 독립 코어 프로젝트 | 실제 코어 버전과 필요한 기능 지원 여부 |
| v2rayN / v2rayNG / v2flyNG | 클라이언트 인터페이스 | 운영체제 지원, 코어 호출 방식, 설정 가져오기 방식 |
세 가지 V2Ray 클라이언트와 코어의 관계
v2rayN은 데스크톱 클라이언트이며 ‘V2Ray-core만 사용할 수 있다’고 이해해서는 안 됩니다. 여러 유형의 노드를 관리할 수 있고, 클라이언트 버전과 프로토콜, 설정에 따라 해당 코어를 호출합니다. 현재 어떤 코어로 연결하는지 확인하려면 메인 창 제목만 보지 말고 코어 유형 설정과 시작 로그를 확인하세요.
Android에서는 차이가 더 분명합니다. v2rayNG는 Xray 코어를 사용하고, v2flyNG는 V2Fly의 V2Ray 코어를 사용합니다. 이름의 대소문자가 기술적 차이를 결정하는 것은 아니며, 실제 코어 구현이 중요합니다. 아래 추천은 ‘Android 노드에서 Xray 기능을 명시적으로 요구하는’ 경우에 한정되며, 모든 기기와 네트워크의 성능 순위를 뜻하지 않습니다.
v2rayNG: Android와 Xray
추천 대상Xray 코어로 연결을 처리합니다. 노드에서 REALITY 등 Xray 기능을 요구한다면 클라이언트에 포함된 코어가 해당 매개변수를 지원하는지 확인하세요.
적합한 경우: Android 기기에서 Xray 기능을 명시적으로 요구하는 노드를 사용할 때
v2rayN: 데스크톱과 코어 선택
데스크톱에서 구독과 노드를 관리할 수 있습니다. 사용할 수 있는 코어 유형은 버전과 노드 유형에 따라 다르므로 실제 호출 결과는 로그에서 확인하세요.
적합한 경우: Windows, macOS 또는 Linux 데스크톱에서 설정을 관리할 때
v2flyNG: Android와 V2Fly
V2Fly의 V2Ray 코어를 사용합니다. 서버 설정이 해당 코어와 호환되는 경우에 적합하며, Xray 전용 설정을 그대로 적용해서는 안 됩니다.
적합한 경우: Android 기기에서 V2Fly 코어를 기준으로 구성된 설정을 사용할 때
결론: 노드 요구사항을 먼저 확인한 뒤 클라이언트를 선택하세요
설정 제공자에게 프로토콜, 전송 방식, 보안 계층의 요구사항을 확인한 다음 클라이언트와 코어의 지원 여부를 점검하세요. 로그에 지원하지 않는 필드가 표시되면 시스템 프록시를 계속 바꾸기보다 먼저 호환성 문제를 해결해야 합니다.
V2Ray 프로토콜 선택: 프로토콜 이름만으로는 설정을 알 수 없습니다
VMess와 VLESS는 프록시 프로토콜이고, WebSocket과 gRPC 등은 전송 방식이며, TLS와 REALITY는 연결의 보안 계층에 해당합니다. 서로 다른 계층입니다. ‘VLESS 프로토콜’이라는 정보만으로 VLESS를 지원하는 모든 클라이언트에서 해당 노드를 사용할 수 있다고 단정할 수는 없습니다. 전송 방식과 보안 계층, 관련 확장 필드도 확인해야 합니다.
VLESS는 VMess와 같은 프로토콜 계층 암호화 기능을 제공하지 않으므로 일반적으로 적절한 보안 계층과 함께 사용해야 합니다. REALITY는 Xray 생태계의 보안 계층 방식으로, 일반 TLS 옵션처럼 대체해서 선택할 수 없습니다. VMess라고 해서 반드시 구형 코어를 써야 하는 것도 아닙니다. 호환 여부는 양쪽 구현과 매개변수에 따라 달라집니다.
- 프로토콜 계층: 노드 메모 이름만 보고 판단하지 말고 VMess인지 VLESS인지 확인하세요.
- 전송 계층: TCP, WebSocket 또는 다른 전송 방식인지 확인하고 경로, Host 등 필요한 필드를 점검하세요.
- 보안 계층: TLS 또는 REALITY인지 확인하고 서버 이름과 관련 검증 매개변수를 점검하세요.
- 확장 필드: 설정에 flow가 있으면 현재 코어가 해당 값을 지원하는지 확인하세요. 오류를 없애려고 임의로 삭제해서는 안 됩니다.
구독 가져오기: 노드 목록 동기화와 로컬 설정은 별개
구독에는 보통 노드 연결 정보가 담겨 있으며, 기기의 프록시 설정 전체를 대신 관리하는 것은 아닙니다. 같은 구독을 여러 클라이언트에서 사용하면 노드 목록은 비슷할 수 있지만, 라우팅, DNS, 앱별 규칙, 프록시 모드는 대체로 각 클라이언트의 로컬 설정에 따라 달라집니다. 구독 형식에 따라 필드 해석 결과가 달라질 수도 있으므로 가져온 뒤 노드 하나를 열어 매개변수를 확인하세요.
설정 예시: 같은 구독을 사용하되 각 기기의 설정을 따로 확인
데스크톱: v2rayN
- ‘구독 그룹 설정’에서 그룹 별칭과 주소를 저장합니다.
- 구독을 업데이트한 뒤 노드 프로토콜과 현재 코어 유형을 확인합니다.
- 앱 사용 목적에 맞춰 시스템 프록시 또는 TUN을 선택하고, Android 설정을 그대로 적용하지 마세요.
Android: v2rayNG
- ‘구독 그룹 설정’에 구독 주소를 입력하고 저장합니다.
- 목록으로 돌아가 메뉴에서 ‘구독 업데이트’를 실행합니다.
- 처음 연결할 때 시스템 VPN 권한을 허용한 뒤 앱별 프록시 설정을 확인합니다.
같은 구독을 사용하면 노드 출처를 함께 관리하기 편하지만, 두 기기의 목록이 일치하는지는 업데이트 시점과 파싱 지원 여부에 따라 다릅니다. 로컬 라우팅과 프록시 규칙은 각각 설정해야 합니다.
v2rayNG에서 구독을 가져온 뒤 노드 일부만 표시된다면 먼저 구독 내용과 노드 유형을 확인한 다음 업데이트 오류나 파싱 오류를 살펴보세요. 버전에 따라 메뉴 이름이 달라질 수 있으므로 해당 기능을 찾아 이용하면 됩니다. 코어가 손상되었다고 바로 단정하지 말고, 접근 정보가 포함될 수 있는 구독 주소를 공개된 게시판에 올리지 마세요.
- 기존 그룹은 그대로 두고 테스트 그룹을 새로 만들어 문제를 확인하는 동안 현재 사용 가능한 노드를 덮어쓰지 않도록 하세요.
- 업데이트가 끝나면 정상 작동이 확인된 노드 하나의 프로토콜, 전송 방식, 보안 계층을 점검하세요.
- 같은 노드로 각각 연결해 로그를 비교하세요. 서로 다른 노드의 결과를 클라이언트 차이로 판단하지 마세요.
v2rayN TUN 모드와 로컬 포트의 차이
시스템 프록시는 시스템 프록시 설정을 따르는 앱에 프록시 연결 지점을 제공합니다. TUN은 가상 네트워크 인터페이스를 통해 트래픽을 받습니다. v2rayN의 TUN 모드는 클라이언트가 제공하는 관련 구성 요소와 권한, 라우팅 설정에 따라 작동합니다. 현재 노드가 Xray를 사용한다고 해서 TUN도 같은 코어가 직접 처리한다고 단정할 수는 없습니다.
명령줄 도구는 자체 프록시 매개변수나 환경 변수를 사용할 수도 있습니다. 문제를 확인할 때는 먼저 앱의 트래픽이 로컬 연결 지점으로 전달되는지 구분한 다음, 그 지점 이후의 노드 연결을 점검하세요. 아래 숫자는 수동 설정 예시이며 세 클라이언트의 공통 기본 포트가 아닙니다. 사용 전에 기기 설정에서 확인하세요.
- 수신 포트 확인: v2rayN의 ‘설정’ → ‘매개변수 설정’에서 로컬 수신 포트를 확인하세요. 인터페이스가 바뀌었다면 해당 수신 설정을 찾아 시작 로그와 대조하세요.
- 프로토콜 맞추기: 도구의 HTTP 프록시 매개변수는 HTTP 연결 지점을, SOCKS 매개변수는 SOCKS 연결 지점을 가리켜야 합니다. 혼합 연결 지점이라면 실제 지원 방식을 기준으로 하세요.
- 충돌 방지: 클라이언트를 바꿔가며 테스트할 때는 이전 클라이언트를 먼저 종료한 뒤 다음 클라이언트를 실행해 같은 포트가 중복 사용되지 않도록 하세요.
- 권한 확인: TUN을 만들 수 없다면 관련 구성 요소와 권한을 확인하세요. 일반 시스템 프록시가 작동하지 않는다면 먼저 수신 설정과 앱의 프록시 설정을 점검하세요.
V2Ray 노드 속도 측정: 먼저 장애 지점을 구분하세요
지연 시간 테스트, 웹페이지 접속 테스트, 다운로드 속도 테스트는 서로 다른 항목을 측정합니다. TCP 연결에 성공했다는 사실만으로는 특정 주소와 포트에 도달할 수 있다는 것만 확인할 수 있으며, 프로토콜 인증이나 전송 매개변수, 원격 출구가 정상이라고 볼 수는 없습니다. V2Ray 노드 속도는 코어 로그와 실제 접속을 함께 확인해야 하며, 노드 목록의 숫자 하나만으로 판단해서는 안 됩니다.
- 1단계: 코어 시작 확인. 먼저 포트 사용 중, 설정 파싱 오류, 미지원 필드 등의 메시지를 확인하세요. 이런 문제는 로컬에서 발생하므로 원격 노드를 바꿔도 해결되지 않는 경우가 많습니다.
- 2단계: 원격 연결 확인. 연결 시간 초과, TLS 핸드셰이크 실패, 인증 실패 등을 살펴보세요. 서버 이름이 일치하지 않거나 인증 정보가 잘못된 경우에는 프록시 모드를 바꾸지 말고 매개변수를 수정해야 합니다.
- 3단계: 실제 요청 확인. 같은 노드로 같은 웹페이지를 반복해서 테스트하고 시간, 네트워크 유형, 성공 여부를 기록하세요. 한 번의 결과만으로 코어의 속도를 판단하지 마세요.
- 4단계: DNS와 라우팅 확인. 특정 도메인만 접속되지 않는다면 적용된 아웃바운드 태그와 DNS 결과를 확인하고, 규칙에 따라 직접 연결이나 다른 아웃바운드로 전달되는지 살펴보세요.
결론: 같은 노드로 비교한 뒤 이전 여부를 결정하세요
기존 클라이언트의 정상 설정을 보존하고 새 클라이언트에서 같은 노드의 전체 매개변수를 확인하세요. 로컬 연결 지점, 노드 매개변수, 테스트 대상이 모두 같아야 클라이언트나 코어를 바꿀지 판단하는 데 비교 결과를 활용할 수 있습니다.
생태계 선택 관련 자주 묻는 질문
v2rayN을 설치했는데 V2Ray도 따로 설치해야 하나요?
먼저 선택한 배포 패키지에 필요한 코어가 포함되어 있는지 확인한 다음 노드를 실행하고 로그를 살펴보세요. 코어 파일이 없다는 메시지가 표시되면 해당 설치 안내에 따라 구성 요소를 추가하세요. 클라이언트에서 호출할 수 없는 프로그램을 중복 설치하지 마세요.
v2rayNG와 v2flyNG에서 설정을 그대로 바꿔 쓸 수 있나요?
일반 노드 정보는 두 클라이언트가 공통으로 지원하는 부분이 있을 수 있지만 사용자 지정 설정 전체가 호환된다고 보장할 수는 없습니다. 테스트 설정을 새로 만들고 프로토콜과 보안 계층을 먼저 확인한 뒤 라우팅과 DNS를 점검하세요. Xray 전용 필드가 포함된 설정을 V2Fly 코어에 그대로 적용하지 마세요.
같은 VLESS 노드인데 한 클라이언트에서는 연결되고 다른 클라이언트에서는 안 되는 이유는 무엇인가요?
각 클라이언트의 노드 편집 화면을 열어 전송 유형, 보안 계층, 서버 이름, flow를 비교하세요. 시작 로그에서 실제 코어도 확인해야 합니다. REALITY를 사용한다면 관련 매개변수가 모두 설정되어 있는지, 코어가 이를 지원하는지 집중적으로 살펴보세요.
v2rayNG 다운로드와 데스크톱 버전은 어디서 확인하나요?
이 사이트의 클라이언트 페이지에서 Android 또는 데스크톱 운영체제에 맞는 항목을 선택하세요. 설치한 뒤 노드 하나를 가져와 연결을 테스트한 다음 모든 구독과 규칙을 옮기세요. 자세한 절차는 시작 가이드를 참고할 수 있습니다.
클라이언트 선택 순서는 운영체제, 노드 기능 요구사항, 클라이언트와 코어의 대응 관계, 로컬 프록시 및 라우팅 설정으로 정하면 됩니다. Project V의 역사는 이름을 이해하는 데 도움이 되지만, 실제 설정의 사용 가능 여부는 설치된 패키지와 노드 매개변수, 로그를 함께 확인해야 합니다.