클라이언트 이름, 코어 이름, 프로토콜 이름이 헷갈린다면 세 가지 관계부터 기억하세요. Project V는 프로젝트의 출발점이고, V2Fly와 Xray는 각각 발전해 온 코어 계열이며, v2rayN·v2rayNG·v2flyNG는 사용자가 조작하는 그래픽 클라이언트입니다. 글을 읽고 기기와 노드 요구 사항, 코어 지원 여부에 따라 도구를 선택해 보세요. 이름에 ‘v2ray’가 들어가는지만 볼 필요는 없습니다.
Project V에서 두 코어 계열로
Project V는 초기 V2Ray를 중심으로 만들어진 오픈소스 프로젝트입니다. V2Ray는 본래 코어 프로그램과 설정 파일을 통해 프록시, 라우팅, 전송 기능을 제공했습니다. 그래픽 인터페이스는 코어 프로그램 자체와는 별개입니다. 이후 V2Fly 커뮤니티가 V2Ray 개발과 관리를 이어 갔으며, V2Fly는 커뮤니티가 관리하는 계열을 구분하는 주요 이름이 되었습니다.
Xray는 다른 관리자가 관련 코드 기반에서 독립적으로 발전시킨 프로젝트입니다. V2Fly와 역사적 출발점은 같지만, 이후 기능을 각각 개발하고 별도로 배포·관리해 왔습니다. Xray를 단순히 ‘V2Fly의 새 버전’으로 이해하면 클라이언트 선택에 혼란이 생길 수 있습니다. 설정 기능과 기능 개발 현황, 호환 범위는 실제 사용하는 코어를 기준으로 확인해야 합니다.
Xray 코어
추천독립적으로 발전한 코어입니다. REALITY 등 Xray 기능이 필요하다면 클라이언트가 실제로 Xray를 실행하는지 확인하세요.
적합한 용도: Xray 기능이 필요한 일반적인 노드 설정
V2Fly 코어
V2Fly 커뮤니티에서 관리하는 V2Ray 코어 계열입니다. 사용 전 노드 매개변수와 해당 버전의 기능 지원 여부를 확인하세요.
적합한 용도: V2Fly가 지원하는 노드 및 설정 사용
여기서 ‘포크’는 프로젝트가 발전해 온 관계를 뜻하며, 두 프로그램이 같은 서버에 절대 연결할 수 없다는 의미는 아닙니다. 예를 들어 VMess는 프로토콜 이름이지 특정 클라이언트만의 표식이 아닙니다. 같은 프로토콜을 사용하더라도 전송 방식이나 보안 설정 등 세부 매개변수는 달라질 수 있습니다. 반대로 클라이언트에서 링크를 가져올 수 있다는 이유만으로 현재 코어가 링크의 모든 옵션을 지원한다고 판단해서도 안 됩니다.
그래픽 클라이언트와 코어의 역할
그래픽 클라이언트는 서버 목록 표시, 구독 저장, 활성 노드 선택, 시스템 프록시 설정, 로그 확인을 담당합니다. 코어는 설정에 따라 연결을 만들고 인바운드 트래픽을 처리하며 아웃바운드 및 라우팅 규칙을 실행합니다. 문제를 진단할 때는 먼저 어느 계층에서 발생했는지 구분하세요. 화면에 서버가 보이지 않는다면 가져오기나 구독을 확인하고, 서버를 선택했는데 연결에 실패한다면 코어, 노드 매개변수, 로그를 점검하세요.
| 이름 | 구분 | 코어 관계 | 관리 주체 |
|---|---|---|---|
| v2rayN | 데스크톱 그래픽 클라이언트 | 클라이언트 버전과 설치된 구성 요소에 따라 사용할 코어가 달라집니다. 이름만으로 현재 Core 종류를 판단할 수 없습니다. | 클라이언트 프로젝트와 선택한 코어는 각각 별도의 관리자가 관리합니다. |
| v2rayNG | 안드로이드 그래픽 클라이언트 | Xray 코어 계열 사용 | 클라이언트와 Xray 코어를 각각 별도로 관리 |
| v2flyNG | 안드로이드 그래픽 클라이언트 | V2Fly 코어 계열 사용 | 클라이언트와 V2Fly 코어를 각각 별도로 관리 |
표에서 놓치기 쉬운 점은 클라이언트 업데이트와 코어 업데이트가 별개라는 사실입니다. 그래픽 인터페이스에 표시된 앱 버전만으로 현재 코어 프로그램의 기능 지원 여부를 알 수는 없습니다. 특히 데스크톱에서 코어를 바꾸거나 기존 설정을 가져왔다면 설정에서 실제 Core 종류를 확인한 뒤, 실행 로그로 정상 구동 여부를 점검하세요.
v2rayN에서 실제 사용 중인 코어 확인하기
v2rayN은 서버 관리와 코어 선택을 하나의 데스크톱 인터페이스에서 할 수 있다는 장점이 있습니다. 코어를 선택하기 전에 노드 설정에 명시된 요구 사항부터 확인하세요. 예를 들어 서버가 VLESS와 REALITY 조합을 제공한다면 해당 기능을 지원하는 코어와 버전을 사용해야 합니다. 일반 VMess 노드는 프로토콜 이름만 보고 코어를 추측하기보다 주소, 포트, 사용자 ID, 전송 방식, 보안 설정을 하나씩 확인하는 편이 좋습니다.
노드 요구 사항 확인
서버 편집 창을 열고 ‘프로토콜’, ‘주소’, ‘포트’와 전송 및 보안 관련 항목을 기록하세요. 서버 안내에서 Xray 기능을 명시적으로 요구한다면 노드 매개변수와 함께 확인해야 합니다.
코어 설정 확인
해당 설정 경로를 제공하는 v2rayN 버전에서는 ‘설정’ → ‘매개변수 설정’ → ‘Core 종류’ 순서로 열어 현재 선택 항목을 확인하세요. 버전에 따라 화면 항목이 바뀌었다면 현재 버전에 표시되는 코어 설정을 기준으로 확인하면 됩니다.
적용 후 다시 연결
설정을 저장하고 서버를 다시 선택해 연결하세요. Core 종류를 바꾼 뒤에는 목록에 표시된 지연 시간만 확인하지 마세요. 코어가 다시 시작되었는지, 시스템 프록시 상태가 의도한 대로 설정되었는지도 확인해야 합니다.
로그 확인
클라이언트 로그에서 시작 메시지와 오류를 확인하세요. 지원하지 않는 설정 항목이라는 메시지가 나오면 서버 편집 창으로 돌아가 프로토콜과 전송 매개변수를 점검하세요. 코어 설정 오류를 가리기 위해 시스템 프록시 모드만 반복해서 바꾸지는 마세요.
로컬 수신 포트도 문제를 파악하는 단서입니다. 일부 설정에서는 10808을 로컬 SOCKS 포트로 사용하지만, 모든 설치 환경에서 고정으로 써야 하는 값은 아닙니다. 브라우저나 다른 프로그램에 프록시 주소를 직접 입력하려면 다른 사람의 10808을 그대로 복사하지 말고 현재 v2rayN의 로컬 프록시 설정을 확인하세요. 다른 프로그램이 해당 포트를 사용 중이라면 웹페이지의 연결 실패 안내보다 로그에서 원인을 더 쉽게 찾을 수 있습니다.
결론: 코어가 실제로 시작됐는지 확인하세요
Core 종류를 선택한 뒤에는 로그에서 코어가 정상적으로 시작됐는지 먼저 확인하고 대상 웹페이지를 테스트하세요. 코어가 시작되지 않았다면 속도 측정 결과나 시스템 프록시 스위치만으로 노드 설정이 올바르다고 볼 수 없습니다.
안드로이드에서는 v2rayNG와 v2flyNG 중 무엇을 선택할까
두 앱 모두 안드로이드 그래픽 클라이언트지만 사용하는 코어 계열이 다릅니다. v2rayNG는 Xray와, v2flyNG는 V2Fly와 연결됩니다. 같은 앱의 이름만 바꾼 것이 아닙니다. 먼저 서버가 제공하는 프로토콜, 전송 방식, 보안 매개변수를 어느 코어가 지원하는지 확인하고, 그다음 필요한 가져오기 기능과 일상적인 관리 방식을 고려해 선택하세요.
구독을 가져온 뒤 실제 연결에 성공하기까지는 최소 두 가지를 확인해야 합니다. 첫째, 클라이언트가 구독에 포함된 서버 정보를 인식하는지 확인합니다. 둘째, 코어가 해당 정보의 전체 매개변수에 따라 연결할 수 있는지 확인합니다. 구독 업데이트가 성공했다는 것은 클라이언트가 목록을 받아 처리했다는 뜻일 뿐, 목록의 모든 노드에 연결할 수 있다는 의미는 아닙니다. 클라이언트를 바꿀 때도 구독 그룹, 라우팅 설정, 로컬 규칙이 자동으로 서로 호환된다고 가정하지 마세요.
- 노드에서 REALITY를 요구하는 경우: 서버에서 제공한 전체 매개변수를 먼저 확인한 뒤 Xray 코어 계열을 사용하는 클라이언트를 선택하세요. 주소와 포트만 복사해서는 안 됩니다.
- 기존 V2Fly 설정을 계속 사용해야 하는 경우: 현재 프로토콜과 기능이 대상 버전에서 지원되는지 확인한 다음 v2flyNG로 가져와 자주 사용하는 노드를 하나씩 테스트하세요.
- 두 기기에서 같은 구독을 사용하려는 경우: 두 기기에 모두 유효한 구독 주소를 추가할 수 있습니다. 다만 그룹 이름, 업데이트 방식, 라우팅 정책은 각 클라이언트에서 따로 확인해야 합니다.
서버 정보가 정상적으로 표시되는데도 연결 후 접속할 수 없다면 현재 선택한 노드부터 확인하고, 이어서 클라이언트 연결 로그와 시스템 프록시 상태를 점검하세요. 구독을 제공한 서비스가 어디인지로 코어를 선택하지 마세요. 호환성을 결정하는 것은 개별 노드에서 실제 사용하는 프로토콜, 전송 방식, 보안 매개변수와 해당 매개변수에 대한 현재 코어의 지원 여부입니다.
자주 헷갈리는 부분: 프로젝트, 프로토콜, 관리 주체
프로젝트의 이력은 ‘코드가 어디에서 왔는가’를, 관리 관계는 ‘클라이언트와 코어를 누가 각각 업데이트하는가’를, 프로토콜과 설정은 ‘현재 노드에 어떤 기능이 필요한가’를 설명합니다. 이 세 가지 질문은 서로 대신할 수 없습니다. Xray가 같은 생태계에서 비롯되었다고 해서 V2Fly 설정의 Xray 전용 항목을 바로 사용할 수 있는 것은 아닙니다. v2rayN이 그래픽 클라이언트라는 사실만으로 모든 PC에서 같은 코어를 실행한다고 볼 수도 없습니다.
이름에 v2ray가 들어가는 v2rayN은 V2Fly만 사용할 수 있나요?
아닙니다. ‘설정’ → ‘매개변수 설정’ → ‘Core 종류’에서 선택할 수 있는 항목과 현재 선택된 코어를 확인하세요. 설치된 클라이언트 버전과 코어 구성 요소에 따라 사용할 수 있는 항목이 달라집니다.
구독을 가져왔는데 노드에 연결되지 않는 이유는 무엇인가요?
해당 서버의 편집 창을 열고 프로토콜, 주소, 포트, 사용자 ID, 전송 및 보안 항목을 하나씩 확인한 뒤 로그에 표시된 구체적인 오류를 살펴보세요. 가져오기에 성공했다고 해서 코어가 모든 매개변수를 지원하는 것은 아닙니다.
v2rayNG에서 v2flyNG로 바꾸면 서버도 수정해야 하나요?
서버부터 변경하지 마세요. 먼저 기존 노드에서 사용하는 기능을 대상 코어가 지원하는지 확인한 다음 새 클라이언트에 설정을 가져와 테스트하세요. 특정 코어 전용 기능을 사용 중이라면 클라이언트 이름만 바꾸는 것으로는 이전할 수 없습니다.
VMess와 VLESS는 두 클라이언트의 이름인가요?
아닙니다. 노드 프로토콜입니다. 클라이언트 이름, 코어 이름, 노드 프로토콜을 구분해 기록하고, 서버를 편집할 때는 프로토콜 외에 전송 및 보안 설정도 확인해야 합니다.
코어를 바꾸면 라우팅 규칙도 자동으로 호환되나요?
자동으로 호환된다고 가정하지 마세요. 현재 클라이언트가 생성하거나 사용하는 라우팅 설정을 확인하고, 직접 연결할 대상과 프록시를 거칠 대상을 각각 테스트하세요. 설정 파싱 오류가 발생하면 먼저 로그에서 문제가 된 항목을 찾으세요.
설정을 정리할 때 기기에서 사용하는 클라이언트, 현재 코어, 노드 프로토콜, 전송 방식, 특수 보안 설정 사용 여부를 간단히 기록해 두면 좋습니다. 막연히 ‘V2Ray 노드’라고만 기억하는 것보다 훨씬 유용합니다. 문제가 발생하면 이 기록을 바탕으로 버전과 매개변수 불일치부터 점검한 다음 네트워크, 구독 유효성, 라우팅 분할을 확인하면 진단 범위를 줄일 수 있습니다.