Project V는 프로젝트의 배경이며, V2Fly와 Xray는 서로 다른 코어 유지보수 경로에 해당합니다. v2rayN, v2rayNG, v2flyNG는 사용자가 조작하는 그래픽 클라이언트입니다. 클라이언트를 선택하거나 구독을 옮기거나 프로토콜 호환성 문제를 해결하려는 분이라면 먼저 각 구성 요소의 역할을 구분하세요. 그런 다음 노드 프로토콜, 전송 매개변수, 실제 실행 로그를 확인해 조합을 결정해야 합니다. 이름만으로 호환성을 판단해서는 안 됩니다.
Project V·V2Fly·Xray: 프로젝트 연혁은 제품 계층이 아닙니다
Project V는 모듈형 네트워크 프록시 도구 모음을 목표로 시작했으며, V2Ray는 그 핵심 구현체입니다. 코어는 로컬 연결을 받아 라우팅 규칙을 적용하고 DNS를 처리한 뒤, 설정에 따라 원격 서버와 연결합니다. 초기에는 ‘V2Ray’라는 말이 전체 사용 구성을 가리키기도 해 클라이언트, 프로토콜, 코어가 하나의 개념처럼 혼동되곤 했습니다.
2020년 전후로 V2Fly 커뮤니티가 V2Ray 코어의 유지보수와 개발을 이어갔고, 같은 해 V2Ray 코드 기반에서 Xray-core가 분기되어 이후 독자적인 방향으로 발전했습니다. 두 프로젝트는 공통된 역사를 지니지만 같은 배포 패키지가 아니며, ‘새 이름이 옛 이름을 대체했다’고 이해해서도 안 됩니다. 이후 기능, 설정 필드, 릴리스 일정은 각각 확인해야 합니다.
- Project V: 프로젝트와 도구 모음의 배경을 가리키며, 클라이언트에서 직접 선택할 수 있는 프록시 프로토콜이 아닙니다.
- V2Fly: V2Ray 코어를 유지보수하는 커뮤니티입니다. 기술 문제를 논의할 때는 실제 사용 중인 V2Ray 코어 버전도 함께 적는 것이 좋습니다.
- Xray: 관련 프로젝트를 가리키기도 하고 Xray-core를 뜻하기도 합니다. 자체 프로토콜 구현과 설정 체계를 발전시켜 왔습니다.
- 그래픽 클라이언트: 노드 목록, 구독 관리, 설정 화면을 제공하며, 실제 연결 설정을 실행하는 것은 코어입니다.
두 코어 경로는 인바운드, 아웃바운드, 라우팅 규칙 등 여러 설정 개념을 공유하지만, 그렇다고 모든 설정을 서로 바꿔 쓸 수 있는 것은 아닙니다. 특히 특정 보안 방식, 플로우 매개변수, 새 전송 방식이 관련된 경우 현재 코어의 문서를 확인하세요. JSON 구조가 비슷하다는 이유만으로 설정 파일 전체를 그대로 복사하지 마세요.
세 가지 클라이언트: 화면에 표시된 이름이 실행 코어를 뜻하지는 않습니다
v2rayN은 데스크톱 플랫폼용 그래픽 설정, 구독 관리, 실행 제어 기능을 제공합니다. V2Ray 코어의 다른 이름이 아니며, 특정 코어만 실행한다고 단정해서도 안 됩니다. 지원 플랫폼, 선택할 수 있는 코어, 설정 위치는 배포 패키지에 따라 달라질 수 있으므로 현재 설치된 패키지와 화면을 기준으로 확인하세요.
| 클라이언트 | 사용 플랫폼 | 코어와의 관계 | 확인 위치 |
|---|---|---|---|
| v2rayN | 데스크톱 | 노드 유형과 클라이언트 설정에 따라 사용 가능한 코어를 호출하며, 클라이언트 이름만으로 결정되지는 않음 | 코어 선택 설정, 시작 로그 |
| v2rayNG | Android | Xray 코어로 프록시 연결 처리 | 앱 버전 정보, 실행 로그 |
| v2flyNG | Android | V2Fly의 V2Ray 코어 사용 | 앱 버전 정보, 실행 로그 |
클라이언트 버전과 코어 버전은 별개의 정보입니다. 그래픽 인터페이스를 업데이트했더라도 ‘정보’에 표시된 앱 버전만 보고 프로토콜 지원이 달라졌다고 판단할 수는 없습니다. 연결을 다시 시작하고 로그에서 실제로 불러온 코어 이름과 버전, 시작 오류를 확인하세요. 일부 데스크톱 배포 패키지는 코어를 별도로 관리하므로 이전 프로세스가 종료되지 않은 경우 특히 오판하기 쉽습니다.
- v2rayN에서 ‘설정’ → ‘매개변수 설정’을 열어 현재 버전에서 제공하는 코어 관련 옵션을 확인하세요. 별도의 코어 관리 메뉴가 있다면 그곳도 함께 살펴보세요.
- 노드를 선택해 연결을 다시 시작한 다음, 메인 창의 로그 영역에서 시작 정보를 찾아 실제 코어 이름과 버전 번호를 기록하세요.
- Android에서는 v2rayNG 또는 v2flyNG의 버전 정보와 실행 로그를 각각 확인하세요. 아이콘이나 구독 이름만으로 판단하지 마세요.
- 문제를 제보할 때는 클라이언트 버전, 코어 버전, 운영체제, 오류 문구를 함께 제공하세요. 공유하기 전에 구독 주소, UUID, 접속 자격 증명은 삭제해야 합니다.
버전에 따라 메뉴 이름이 바뀔 수 있습니다. 옵션을 찾지 못했다면 ‘코어’, ‘매개변수 설정’, ‘로그’를 중심으로 해당 기능을 찾아보세요. 오래된 화면 캡처를 보고 관련 없는 스위치를 바꾸면 안 됩니다. 화면에 코어 기능이 노출되지 않는다고 해서 구독만 바꾸면 해당 기능을 쓸 수 있는 것도 아닙니다.
프로토콜·전송·보안 매개변수: 호환성은 계층별로 확인하세요
VMess와 VLESS는 프록시 프로토콜 이름이고, WebSocket과 gRPC는 전송 관련 옵션이며, TLS와 REALITY는 연결 보안 방식과 관련됩니다. 서로 같은 분류에 속하지 않습니다. ‘노드가 VLESS’라는 정보만으로는 특정 클라이언트에서 연결할 수 있는지 판단하기에 부족합니다.
VMess는 특정 그래픽 클라이언트 전용 프로토콜이 아니며, VLESS가 REALITY와 같은 뜻도 아닙니다. Xray와 V2Fly는 구체적인 기능에서 차이가 있습니다. 특히 Xray 전용 매개변수가 포함된 노드를 모든 VLESS 구현체가 처리할 수 있다고 가정해서는 안 됩니다. 지원 여부는 코어 버전과 클라이언트의 가져오기 기능에도 영향을 받습니다.
| 설정 계층 | 구체적인 예 | 확인할 사항 |
|---|---|---|
| 프록시 프로토콜 | VMess、VLESS | 서버와 클라이언트의 프로토콜, 사용자 식별자, 인증 매개변수가 일치하는지 확인 |
| 전송 방식 | WebSocket、gRPC | 경로, Host 또는 serviceName이 서버 설정과 일치하는지 확인 |
| 연결 보안 | TLS、REALITY | 서버 이름, 인증서 검증, 공개 키 등 관련 매개변수가 모두 설정되었는지 확인 |
| 특정 플로우 | xtls-rprx-vision | 코어 지원 여부와 서버·클라이언트·전송 방식의 조합이 맞는지 확인 |
| 로컬 연결 지점 | 127.0.0.1:10808 | 로컬 리스닝 주소의 예일 뿐이며 원격 서버 포트와는 별도로 기록 |
포트 예시는 모든 환경에 적용되는 기본값이 아닙니다. 로컬 프록시 주소를 127.0.0.1:10808로 설정했다면 브라우저나 다른 프로그램은 이 로컬 주소에 연결해야 합니다. 노드의 서버 주소와 원격 포트는 서버 설정을 따릅니다. 로컬 포트를 바꿔도 원격 인증 실패가 해결되거나 프로토콜 지원이 추가되지는 않습니다.
구독 링크는 설정을 배포하는 경로일 뿐, 프록시 프로토콜이 아닙니다. 클라이언트가 구독을 정상적으로 다운로드했다는 것은 응답을 받았다는 뜻입니다. 노드가 파싱되더라도 모든 필드가 그대로 보존되었다고 볼 수는 없습니다. 이전한 뒤 노드 상세 정보에서 전송 유형, 보안 매개변수, 플로우 필드를 확인하고 실제 접속도 테스트하세요.
코어 선택: 이름 순서가 아니라 기존 노드에 맞추세요
서버가 실제로 요구하는 사항을 먼저 정리한 뒤 클라이언트와 코어를 선택하세요. 이미 작동하는 일반 VMess 또는 일반 VLESS 설정이라면 분기 이름이 다르다는 이유만으로 옮길 필요는 없습니다. 서버에서 REALITY나 특정 플로우를 명시적으로 요구한다면 해당 조합을 완전히 구현할 수 있는 클라이언트와 코어를 선택해야 합니다.
Xray 코어 경로
권장서버에서 VLESS, REALITY, Vision 관련 조합을 명시적으로 요구한다면 해당 매개변수를 지원하는 Xray 버전을 우선 사용하고, 클라이언트가 이에 맞는 설정을 생성할 수 있는지 확인하세요. 여기서의 권장은 이런 노드 요구 사항에 한정되며, 모든 네트워크 환경에서 성능이 더 좋다는 뜻은 아닙니다.
적합한 경우: Xray 전용 기능이 필요한 노드가 있고, Android에서는 v2rayNG를 사용하며 데스크톱에서는 v2rayN의 코어 설정을 확인하려는 경우
V2Fly 코어 경로
기존 서버와 설정이 V2Fly 기준으로 관리되고 있다면 해당 V2Ray 코어를 계속 사용할 수 있습니다. 이전하기 전에 전송, 보안, 라우팅 설정을 하나씩 점검하고 다른 분기 전용 필드를 그대로 적용하지 마세요.
적합한 경우: 검증된 V2Fly 설정이 있고 Android에서 v2flyNG를 사용하며 기존 설정 체계를 유지하려는 경우
결론: 노드 매개변수를 먼저 확인하고 노드 하나로 시험 연결하세요
기존 설정은 보존하고 테스트 노드 하나에서만 클라이언트나 코어를 바꿔 보세요. 매개변수가 모두 반영되었는지, 시작 오류가 없는지, 대상 사이트에 접속되는지 확인한 다음 나머지 노드를 옮기세요. 한 번에 변수 하나만 바꿔야 문제가 프로토콜 지원, 가져오기 과정, 라우팅 설정 중 어디에서 비롯됐는지 파악할 수 있습니다.
연결 속도도 코어 이름만으로 판단할 수 없습니다. 서버 위치, 회선 혼잡, 패킷 손실, 기기 성능, 전송 방식이 모두 결과에 영향을 줍니다. 비교할 때는 같은 노드와 대상, 비슷한 시간대를 사용하고 연결 성공 여부, 재연결 발생 여부, 로그 오류를 각각 기록하세요. 서로 다른 회선의 차이를 코어 탓으로 돌리지 않도록 주의해야 합니다.
데스크톱·Android 간 이전: 구독은 공유하고 로컬 설정은 기기별로 관리
같은 구독을 여러 기기의 설정 소스로 사용할 수 있지만, 구독 형식과 노드 구성이 대상 클라이언트에서 지원되는지 먼저 확인해야 합니다. 데스크톱과 Android의 로컬 연결 지점, 시스템 트래픽 처리 방식, 앱 제외 규칙은 대개 다릅니다. 이런 설정이 구독과 함께 동기화된다고 가정해서는 안 됩니다.
배포 방식: 노드 소스는 통일하고 기기별 트래픽 경로를 확인하세요
데스크톱: v2rayN
- 구독을 가져온 뒤 노드 하나를 골라 프로토콜, 전송, 보안 매개변수를 확인하세요.
- 로그에서 실제 코어를 확인하고 로컬 리스닝 포트를 기록하세요.
- 필요에 따라 시스템 프록시나 TUN을 설정하고 대상 앱별로 테스트하세요.
- 기존 라우팅 규칙을 유지해 이전 과정에서 DNS와 분할 라우팅 정책을 동시에 바꾸지 않도록 하세요.
Android: v2rayNG 또는 v2flyNG
- 노드 요구 사항에 따라 Xray 또는 V2Fly 경로를 선택하세요.
- 같은 구독을 가져온 뒤 노드 수와 주요 필드가 맞는지 확인하세요.
- 연결을 시작하고 시스템 VPN 권한을 확인하세요. 다른 연결이 사용 중인지도 살펴보세요.
- 앱별 규칙을 다시 설정하고 백그라운드 실행 제한을 별도로 확인하세요.
구독은 노드를 배포하는 역할을 합니다. 양쪽 기기의 업데이트 시점, 로컬 라우팅, DNS, 적용할 앱 범위는 각각 관리해야 합니다.
데스크톱 시스템 프록시는 보통 해당 설정을 따르는 앱에만 적용되며, 모든 프로그램의 트래픽이 코어를 거친다는 뜻은 아닙니다. Android의 VPN 트래픽 처리와 앱별 선택에도 적용 범위가 따로 있습니다. 따라서 ‘데스크톱에서는 되는데 Android에서는 안 된다’는 것은 먼저 원인을 좁히기 위한 단서이지, 두 코어의 우열을 바로 판단할 근거가 아닙니다.
- 기존 클라이언트 설정을 내보내거나 백업하고 라우팅 및 DNS 설정은 별도로 저장하세요.
- 대상 클라이언트에서 구독을 가져온 다음 기존 기기와 같은 노드를 선택해 테스트하세요.
- 먼저 코어가 정상적으로 시작되는지 확인하고, 그다음 시스템이나 앱의 트래픽이 실제로 클라이언트에 전달되는지 확인하세요.
- 마지막으로 분할 라우팅과 DNS 정책을 하나씩 복원하고 변경할 때마다 다시 테스트하세요. 언제든 되돌릴 수 있도록 설정을 보관하세요.
자주 묻는 질문: 이름이 비슷한 구성 요소의 문제를 구분하는 방법
v2rayN을 설치하면 V2Fly 코어를 선택한 건가요?
아닙니다. 먼저 ‘설정’ → ‘매개변수 설정’에서 코어 관련 옵션을 확인한 다음, 선택한 노드의 연결을 다시 시작하고 시작 로그를 확인하세요. 실제 실행 중인 코어 이름과 버전을 기준으로 판단해야 합니다. 클라이언트 이름만으로는 현재 노드를 어떤 코어가 처리하는지 알 수 없습니다.
구독은 가져와지는데 연결 버튼을 누르자마자 실패하는 이유는 무엇인가요?
노드 상세 정보에서 프로토콜, 전송, 보안, flow 매개변수를 확인한 뒤 로그에서 미지원 필드, 인증 오류, 포트 점유 여부를 살펴보세요. 가져오기에 성공했다는 것은 파싱 단계만 통과했다는 뜻입니다. 로컬 포트가 사용 중이라면 중복 실행된 클라이언트를 먼저 종료하고 원격 포트는 바로 바꾸지 마세요.
VLESS 노드를 v2rayNG에서 v2flyNG로 그대로 옮길 수 있나요?
전체 조합을 먼저 확인하세요. REALITY나 기타 Xray 전용 매개변수가 포함된 설정은 일반 VLESS 노드와 똑같이 다룰 수 없습니다. 기존 기기의 설정을 보존하고 대상 기기에서 필드와 로그를 확인하세요. 대상 코어가 지원하지 않는다면 해당 노드에 맞는 클라이언트를 사용하거나 서버 측에 호환되는 설정을 요청해야 합니다.
화면에는 연결됨으로 표시되는데 웹페이지가 열리지 않습니다. 먼저 코어를 바꿔야 하나요?
먼저 접속을 시도하고 해당 요청이 로그에 나타나는지 확인하세요. 요청이 없다면 시스템 프록시, VPN 권한, 앱별 적용 범위를 점검합니다. 요청이 있다면 DNS, 라우팅, 원격 오류를 확인하세요. 화면에 실행 중으로 표시되는 것만으로 대상 사이트까지 연결이 완성됐다고 볼 수는 없습니다.
업데이트 후 문제가 생겼을 때 어떤 정보를 기록해야 하나요?
업데이트 전후의 클라이언트 버전, 실제 코어 버전, 노드 프로토콜과 전송 유형, 처음 발생한 관련 오류를 기록하세요. 기존 노드와 라우팅 설정으로 재현하고 되돌릴 수 있는 설정도 보관하세요. 로그를 제출하기 전에 구독 주소, 서버 자격 증명, 사용자 식별자를 삭제하고 문제 파악에 필요한 내용만 공유하세요.
코어 선택의 최종 기준은 전체 설정을 올바르게 표현하고 안정적으로 실행할 수 있는지입니다. 프로젝트 연혁, 코어 기능, 클라이언트 화면, 시스템 트래픽 경로를 구분해 기록해 두면 이후 업데이트와 이전, 문제 해결을 체계적으로 진행할 수 있습니다. 처음 설치한다면 설치 및 설정 가져오기 안내를 참고하고, 시작이나 트래픽 처리에 문제가 있다면 도움말 센터를 확인하세요.