코어를 고를 때는 먼저 노드 요구 사항을 확인하고, 클라이언트가 설정값을 빠짐없이 보존하는지 살펴보세요. REALITY나 Vision이 포함된 노드에는 Xray를 우선 고려하고, 기존 VMess 노드는 전송 방식과 TLS 설정을 추가로 확인해야 합니다. 아래에서는 프로젝트, 코어, 인터페이스를 구분해 데스크톱과 Android에서 클라이언트를 선택하는 방법과 변경 후 확인 순서를 안내합니다.
계보 살펴보기: V2Ray, V2Fly, Xray
V2Ray는 프록시 도구 생태계 전체를 가리키기도 하고, 특정 코어 프로그램을 뜻하기도 합니다. Project V는 이 도구 체계의 프로젝트 배경이며, 실제 연결을 처리하는 코어는 설정을 읽어 로컬 접속 지점을 만들고, 아웃바운드를 선택해 라우팅을 수행합니다. 이름이 비슷한 클라이언트의 프로토콜 지원도 같을 것이라고 생각하기 쉽지만, 각 명칭은 구분해서 봐야 합니다.
2020년은 두 코어 계보를 이해하는 데 중요한 시점입니다. V2Fly 커뮤니티는 V2Ray 코어의 개발과 유지 관리를 이어갔고, Xray는 당시 V2Ray 코드베이스에서 분기한 뒤 독자적으로 발전했습니다. 두 코어는 일부 역사와 설정 개념을 공유하지만, 같은 프로그램의 테마만 다른 것은 아닙니다. 한쪽의 버전 번호만 보고 다른 쪽의 업데이트 여부를 판단할 수도 없습니다.
- V2Fly: V2Ray 코어를 유지 관리하며 자체 프로토콜 구현, 전송 방식, 설정 체계를 발전시킵니다.
- Xray: Xray-core를 유지 관리하며 이후 REALITY, XTLS Vision 등의 기능을 도입했습니다.
- 그래픽 클라이언트: 구독, 노드 편집, 프록시 전환 기능을 제공하고 설정을 코어에 전달해 실행합니다.
따라서 ‘구독 가져오기 성공’은 인터페이스에서 구독을 파싱하거나 저장했다는 뜻일 뿐, 실행 중인 코어가 모든 항목을 받아들였다는 의미는 아닙니다. 호환성을 판단하려면 클라이언트 버전과 실제로 실행 중인 코어, 노드의 프로토콜 조합을 모두 확인해야 합니다.
프로토콜 지원: VMess와 VLESS만 비교해서는 안 됩니다
노드는 보통 여러 계층의 설정으로 구성됩니다. VMess와 VLESS는 프록시 프로토콜이고, TCP·WebSocket·gRPC는 전송 방식을 나타냅니다. TLS와 REALITY는 연결 보안 계층에 해당하며, Vision은 Xray의 흐름 제어 기능과 관련이 있습니다. 각 항목의 역할은 서로 다르므로 REALITY를 VLESS와 나란히 놓고 대체할 수 있는 프록시 프로토콜로 보면 안 됩니다.
| 노드 특성 | Xray 코어 | V2Fly 코어 | 선택 기준 |
|---|---|---|---|
| VMess | 일반적인 조합 지원 | 일반적인 조합 지원 | 전송 방식, TLS, 서버 설정을 추가로 확인 |
| VLESS 기본 프로토콜 | 지원 | 기본 구현 제공 | VLESS라는 이름만으로 완전한 호환성을 판단할 수 없음 |
| VLESS + REALITY | 지원. 버전과 설정값을 맞춰야 함 | Xray REALITY 설정을 그대로 사용할 수 없음 | 해당 기능을 지원하는 Xray 클라이언트 선택 |
| Vision 흐름 제어 | 지원. 서버와 설정을 맞춰야 함 | Xray의 Vision 흐름 제어는 제공하지 않음 | 서버에서 요구하는 flow 값을 유지 |
| WebSocket + TLS | 일반적인 조합 지원 | 일반적인 조합 지원 | 경로, Host, SNI, 인증서 확인 |
여기서 ‘지원’한다는 말이 모든 과거 버전에서 사용할 수 있다는 뜻은 아닙니다. 구독에 새로운 전송 유형이나 필드가 포함되면 구형 클라이언트는 파싱 단계에서 오류가 날 수 있습니다. 인터페이스에서 항목을 인식하더라도 코어가 오래되었다면 시작 단계에서 오류가 발생할 수 있습니다. 현재 설치된 버전의 기능 안내를 확인하고, 같은 프로토콜 이름이 영구적인 호환성을 보장한다고 여기지 마세요.
결론: 노드 요구 사항을 유지하고 필드를 지워 코어를 바꾸지 마세요
security=reality 또는 flow=xtls-rprx-vision이 보이면 해당 기능을 지원하는 Xray 클라이언트를 우선 선택하세요. 이 필드를 삭제한다고 사용할 수 있는 일반 TLS 노드가 되는 것은 아닙니다. 오히려 서버가 요구하는 연결 방식이 달라집니다.
클라이언트 선택: 데스크톱과 Android를 구분하세요
v2rayN은 데스크톱용 그래픽 클라이언트입니다. 이름에 ‘v2ray’가 들어간다는 이유만으로 실제 코어를 판단할 수는 없습니다. 지원 코어와 전환 메뉴는 배포 버전에 따라 달라질 수 있으므로, 현재 기기의 설정과 시작 로그를 확인하세요. REALITY를 사용해야 한다면 설치 파일에 Xray가 포함되어 있는지만 볼 것이 아니라 해당 노드를 실제로 Xray가 처리하는지 확인해야 합니다.
v2rayNG: Android용 Xray 계열
권장Xray 기능을 사용하는 노드에 적합합니다. 선택 기준은 이름이나 인터페이스, 측정하지 않은 속도 우위가 아니라 프로토콜 호환성입니다. 가져온 뒤에도 REALITY와 흐름 제어 설정이 유지되었는지 확인하세요.
적합한 사용자: 서비스 제공자가 Xray, REALITY 또는 Vision을 명시한 Android 사용자.
v2flyNG: Android용 V2Fly 계열
V2Fly 코어를 사용하며, 호환성을 확인한 노드에 적합합니다. 기존 VMess 연결이 안정적으로 작동한다면 다른 코어 계열에 기능이 더 많다는 이유만으로 바로 옮길 필요는 없습니다.
적합한 사용자: V2Fly 설정을 이미 보유하고 있고 노드 설정을 확인한 Android 사용자.
v2rayN: 데스크톱 설정 관리
구독, 서버, 라우팅을 한곳에서 관리할 수 있습니다. 먼저 사용 중인 배포판의 코어 옵션을 확인한 다음, 로그에서 노드 시작 시 호출된 코어 프로그램을 확인하세요.
적합한 사용자: Windows, macOS, Linux 데스크톱에서 구독과 라우팅을 관리하려는 사용자.
위 권장 사항은 이 글에서 다루는 Xray 기능이 필요한 경우를 위한 것이며, 모든 네트워크 환경에서의 성능 순위가 아닙니다. 클라이언트 인터페이스 업데이트와 코어 업데이트도 별개입니다. 인터페이스에 입력란이 있더라도 현재 실행 중인 코어가 해당 설정을 처리할 수 있다는 뜻은 아닙니다.
구독 확인: 노드 편집 화면에서 설정값 점검
v2rayN에서 ‘구독 그룹’ → ‘구독 그룹 설정’으로 이동해 구독 주소와 그룹을 확인한 뒤, ‘구독 그룹’ 메뉴에서 해당 그룹을 업데이트할 수 있습니다. 업데이트 명령의 이름이나 접미사는 버전에 따라 다를 수 있으므로 현재 메뉴에 표시된 항목을 선택하세요. 업데이트가 끝나면 서버 항목을 두 번 클릭해 프로토콜, 주소, 포트, 전송 설정을 확인하세요. 노드 이름만 보고 판단하면 안 됩니다.
- 먼저 프로토콜을 확인하세요. 항목이 VMess인지 VLESS인지 살펴보세요. 노드 이름에 적힌 ‘고속’, ‘전용 회선’ 같은 문구는 프로토콜 협상에 영향을 주지 않으며 코어 선택 기준이 될 수 없습니다.
- 다음으로 전송 방식을 확인하세요. WebSocket은 경로와 Host를, gRPC는 서비스 이름을 중점적으로 확인합니다. 서버에서 사용하는 전송 방식에 맞는 설정을 클라이언트에 입력해야 합니다.
- 보안 계층을 확인하세요. TLS는 서버 이름과 인증서 검증을 확인하고, REALITY는 서버에서 제공한 공개 키와 short ID 등의 설정값도 점검해야 합니다. 필드 이름은 현재 인터페이스를 기준으로 확인하세요.
- 마지막으로 흐름 제어를 확인하세요. 서버에서 Vision을 요구한다면 flow가
xtls-rprx-vision인지 확인하고, 이를 지원하는 코어를 사용하세요.
v2rayNG나 v2flyNG에서도 구독 그룹 메뉴에서 업데이트한 뒤 해당 항목의 편집 화면을 열어 설정을 확인하세요. 구독 링크가 같아도 목록까지 같다는 보장은 없습니다. 클라이언트 버전, 필터 설정, 구독 서버의 응답 내용이 결과에 영향을 줄 수 있습니다.
두 기기에서 함께 사용하기: 먼저 노드를 검증한 뒤 설정을 맞추세요
데스크톱과 Android에서 같은 구독을 사용할 수 있지만, 실행 설정 전체를 그대로 복사하면 안 됩니다. 데스크톱 시스템 프록시, Android VPN 연결, 앱별 설정, 로컬 수신 주소는 기기 환경에 따라 달라지므로 노드 설정과 함께 복사하지 마세요. 공유할 대상은 서버 정보이지 실행 상태 전체가 아닙니다.
구성 방법: 같은 노드로 두 기기의 호환성 확인
데스크톱: v2rayN
- 대상 구독 그룹을 업데이트하고 노드 하나를 선택합니다.
- REALITY가 필요하다면 시작 로그에서 Xray가 사용되는지 확인합니다.
- ‘설정’ → ‘매개변수 설정’에서 로컬 수신 포트를 확인합니다.
- 먼저 시스템 프록시를 확인한 뒤 라우팅 규칙을 따로 점검합니다.
Android: 노드에 맞는 클라이언트 선택
- Xray 기능이 필요한 노드에는 v2rayNG를 사용합니다.
- V2Fly와 호환되는 노드에는 v2flyNG를 사용할 수 있습니다.
- 같은 구독 그룹을 업데이트하고 주소, 포트, 보안 설정을 확인합니다.
- 시스템 VPN 사용을 허용한 뒤 앱별 프록시 적용 범위를 확인합니다.
각 기기에서 구독을 업데이트하고 연결을 확인하세요. 같은 구독을 사용해도 로컬 설정까지 자동으로 동기화되지는 않습니다.
컴퓨터에서는 연결되지만 휴대전화에서는 안 된다면 먼저 노드 설정을 비교한 다음 휴대전화의 시스템 시간, VPN 권한, 앱별 적용 범위를 확인하세요. 일부 앱에서만 문제가 생긴다면 두 코어 계열의 프로토콜 차이라고 단정하기보다 적용 범위와 DNS를 먼저 살펴보세요.
포트와 문제 해결: 로컬 접속 지점과 서버를 구분하세요
포트 번호는 구체적인 설정값이지 코어를 식별하는 표식이 아닙니다. 아래에서는 로컬 SOCKS 접속 지점의 예로 10808, 원격 서버 포트의 예로 443을 사용합니다. 필수 기본값이 아니며 서로 바꿔 쓸 수도 없습니다. 실제 값은 클라이언트 설정과 노드 편집 화면에서 확인하세요.
예를 들어 앱에 SOCKS 프록시를 직접 입력해야 한다면, 클라이언트가 실제로 해당 포트를 수신 중인 경우 주소로 로컬의 127.0.0.1:10808을 사용할 수 있습니다. 노드 편집 화면의 원격 포트는 제공자가 안내한 값을 그대로 사용하세요. 일반적인 로컬 사용에서는 루프백 주소로 수신하도록 유지하고, 문제 해결을 위해 모든 네트워크 인터페이스에 함부로 개방하지 마세요.
| 증상 | 먼저 확인할 항목 | 다음 단계 |
|---|---|---|
| 구독 업데이트 후 항목이 표시되지 않음 | 업데이트 알림, 그룹 활성화 상태, 형식, 필터 조건 | 구독 파싱을 확인한 다음 코어 호환성을 점검 |
| 시작 직후 알 수 없는 필드 오류 발생 | 클라이언트 로그, 코어 버전, 설정 형식 | 호환되는 클라이언트로 업데이트하고 기존 노드 설정 유지 |
| 연결 시간 초과 | 서버 주소, 원격 포트, 현재 네트워크에서의 접속 가능 여부 | 한 기기에서 네트워크를 바꿔 다시 확인하고, 여러 항목을 동시에 수정하지 마세요. |
| TLS 또는 인증 실패 | 시스템 시간, SNI, UUID, REALITY 설정값 | 제공자가 안내한 설정과 항목별로 대조 |
| 로그는 정상인데 앱에서 접속할 수 없음 | 시스템 프록시, VPN 권한, 라우팅, DNS | 앱 트래픽이 실제로 로컬 접속 지점을 통과하는지 확인 |
전환 여부 판단: 재현 가능한 설정 기준을 보존하세요
코어를 바꾸기 전에 현재 정상 작동하는 노드와 라우팅 설정을 저장하세요. 그래픽 클라이언트는 시작하거나 노드를 전환할 때 config.json을 다시 생성할 수 있습니다. 따라서 임시로 생성된 파일을 직접 수정하기보다 인터페이스에서 설정을 변경하고 기록을 남기는 것을 권장합니다. Xray와 V2Fly는 일부 설정 필드를 공유하지만, JSON 파일 전체를 그대로 서로 바꿔 쓸 수 있는 것은 아닙니다.
- 노드에서 REALITY 또는 Vision을 요구하는 경우: 호환되는 Xray 계열을 사용하고 클라이언트와 코어 버전을 확인하세요.
- 기존 VMess 노드가 안정적으로 작동하는 경우: 현재 구성을 유지하고 명확한 필요가 있을 때만 전환하세요.
- 속도 향상만을 위해 전환하는 경우: 노드, 네트워크, 대상 사이트, 측정 시간을 고정한 뒤 지연 시간과 지속 전송 속도를 비교하세요. 회선이 바뀌어 얻은 차이를 코어의 성능 향상으로 볼 수는 없습니다.
- 전환 후 문제가 생긴 경우: 먼저 기존에 정상 작동하던 설정으로 되돌리고 프로토콜, 전송 방식, 보안 계층, 트래픽 적용 범위, 라우팅을 하나씩 비교하세요. 모든 설정을 동시에 바꾸지 마세요.
결론: 프로토콜 요구를 먼저 충족하고 변수를 줄이세요
코어를 선택할 때 가장 먼저 볼 기준은 노드가 기존 설정값 그대로 작동하는지 여부입니다. 호환성을 확인한 뒤 일상적인 연결 품질을 비교하세요. 문제가 생기면 한 번에 설정 하나만 바꿔야 원인이 구독인지, 코어인지, 트래픽 전달인지 구분할 수 있습니다.