핵심 내용

노드의 프로토콜, 전송 방식, 보안 계층, flow를 먼저 확인한 뒤 클라이언트를 선택하세요. VLESS + REALITY 또는 XTLS Vision이 필요하다면 Android에서는 v2rayNG를 우선 고려하는 것이 좋습니다. VMess, WebSocket + TLS 노드를 사용하고 서버가 V2Fly 설정을 기준으로 운영된다면 v2flyNG도 선택할 수 있습니다. 이 글에서는 프로젝트 분기 관계와 설정 호환 범위, 가져온 뒤 확인할 사항을 설명합니다. Android 클라이언트 두 가지를 비교하거나 데스크톱과 Android에서 같은 구독을 사용하려는 경우에 참고하세요.

1. Project V, V2Fly, Xray의 관계

Project V는 네트워크 프록시를 위한 도구와 기술 체계이며, V2Ray는 그 핵심 프로젝트입니다. V2Fly 커뮤니티는 V2Ray 코어를 계속 유지 관리하고 있으며, Xray는 2020년에 V2Ray 코드를 기반으로 분기해 발전했습니다. 두 프로젝트는 같은 역사를 공유하지만 현재는 각자 발전하는 별개의 코어입니다. 설정 파일이 비슷해 보여도 모든 기능을 서로 바꿔 쓸 수 있는 것은 아닙니다.

코어는 연결을 설정하고 라우팅을 실행하며 DNS와 전송 데이터를 처리합니다. 클라이언트는 노드 목록과 구독을 관리하고 설정 화면을 제공하며 코어를 실행합니다. Android용 v2rayNG는 Xray 코어를, v2flyNG는 V2Fly 코어를 사용합니다. 데스크톱용 v2rayN은 클라이언트이며, 이름이 비슷한 별도의 프로토콜이나 특정 코어의 다른 이름이 아닙니다.

따라서 노드에 “V2Ray”라고 적혀 있다는 이유만으로 설치할 앱을 결정할 수는 없습니다. 서비스 제공자가 여러 설정을 통칭해 V2Ray 노드라고 부를 수 있기 때문입니다. 노드 상세 정보의 필드와 서버에서 요구하는 코어 기능을 확인해야 합니다.

2. 프로토콜 지원 비교: VLESS와 REALITY는 다릅니다

VLESS, REALITY, XTLS를 같은 기능으로 혼동하기 쉽습니다. VLESS는 프록시 프로토콜이며, 연결 전체를 보호하는 암호화 계층을 자체적으로 제공하지 않습니다. TLS나 REALITY는 별도로 선택하는 보안 계층입니다. XTLS Vision은 흐름 제어와 데이터 처리 방식에 관련되며, 흔히 사용하는 설정 필드는 flow=xtls-rprx-vision입니다.

노드 기능 Xray 코어 V2Fly 코어 선택 시 확인할 사항
VMess 지원 지원 전송 유형, TLS, 경로, 서버 호환성 요구사항
기본 VLESS 지원 기본 VLESS 구현을 지원하지만, 사용 중인 버전과 설정 형식을 확인해야 합니다 vless:// 접두사만 보지 말고 보안 계층과 flow도 확인하세요
WebSocket + TLS 일반적인 조합 지원 일반적인 조합 지원 Host, 경로, 서버 이름, 인증서 검증
REALITY 지원 Xray의 REALITY 설정과 같은 방식으로 사용할 수 없습니다 서버 이름, 공개 키, short ID, 지문
XTLS Vision 호환되는 VLESS 조합 지원 Xray의 Vision flow와 호환되지 않습니다 xtls-rprx-vision이 서버 요구사항과 일치하는지 확인

“기본 VLESS 지원”이 모든 VLESS 공유 링크를 지원한다는 뜻은 아닙니다. 하나의 링크에 security=reality, type=tcp, flow=xtls-rprx-vision이 함께 포함될 수 있습니다. 이 중 하나라도 핵심 기능이 맞지 않으면 링크를 가져와도 실행되지 않거나, 실행 후 핸드셰이크에 실패할 수 있습니다.

결론: REALITY 또는 Vision이 필요하면 Xray 지원 여부를 기준으로 선택하세요

노드 상세 정보에서 보안 계층과 flow를 확인하세요. REALITY 또는 xtls-rprx-vision이 명시되어 있다면 Android에서는 v2rayNG를 우선 선택하고, 앱에 포함된 코어가 충분히 최신인지 확인하세요. VLESS라는 표시만 보고 v2flyNG를 시도하지 않는 것이 좋습니다.

3. v2rayNG와 v2flyNG: 현재 노드에 맞는 클라이언트 선택

두 앱의 이름은 비슷하지만 선택 기준은 간단합니다. 먼저 노드 제공자가 요구하는 설정을 확인하고, 그다음 본인의 관리 방식을 고려하세요. 지원 범위가 넓다고 모든 연결이 더 빨라지는 것은 아닙니다. 일반 VMess 노드에서는 클라이언트 이름보다 연결 품질, 출구 혼잡도, 라우팅 결과가 속도에 더 큰 영향을 주는 경우가 많습니다.

v2rayNG · Xray 코어

추천

VLESS + REALITY, XTLS Vision이 필요하거나 구독에 여러 Xray 호환 노드가 섞여 있다면 우선 고려하세요. 가져온 뒤에도 보안 계층과 flow, 코어 버전을 확인해야 합니다. 클라이언트가 링크를 인식했다고 해서 서버 연결까지 성공하는 것은 아닙니다.

적합한 경우: 첫 클라이언트 선택, REALITY 노드, Xray 전용 기능이 필요한 일상적인 사용

v2flyNG · V2Fly 코어

안정적으로 사용 중인 VMess 또는 일반적인 WebSocket + TLS 설정이 있고, 서버 안내와 설정 관리 절차가 V2Fly를 기준으로 한다면 계속 사용할 수 있습니다. 이는 별도의 코어 개발 경로이며, 반드시 Xray로 바꿔야 하는 “구형 앱”이 아닙니다.

적합한 경우: 기존 V2Fly 배포 환경, 검증된 설정, 현재 설정 체계 유지

현재 클라이언트가 정상적으로 작동한다면 먼저 변경으로 해결하려는 문제가 무엇인지 확인하세요. 새 노드에 REALITY가 필요하거나 기존 코어가 flow를 인식하지 못하는 경우는 분명한 기능 요구사항입니다. 반면 특정 코어가 “더 빠르다”는 말만으로는 변경할 이유가 충분하지 않습니다. 업그레이드하거나 기기를 바꾸기 전에는 구독 주소와 필요한 라우팅 설정을 보관하되, 계정 정보가 포함된 링크를 공개 게시판에 올리지 마세요.

4. 공유 링크에서 호환성을 좌우하는 필드

구독은 노드 목록을 배포하는 방식이지 연결 프로토콜이 아닙니다. Base64는 전체 목록을 인코딩할 때 흔히 사용하며, vmess://와 vless://는 노드 공유 형식입니다. Base64는 텍스트 표현만 처리할 뿐, REALITY를 지원하지 않는 코어에 REALITY 기능을 추가하지 않습니다. 보안 수단으로 간주해서도 안 됩니다.

VLESS 노드를 확인할 때는 필드를 아래 네 그룹으로 나눠 살펴보세요. 표는 각 매개변수의 의미를 설명하며, 그대로 사용할 수 있는 노드 링크가 아닙니다. 실제 값은 반드시 노드 제공자에게 받아야 하며, 경험에 따라 임의로 조합하지 마세요.

필드 그룹 일반적인 표기 확인할 사항
대상 및 인증 정보 서버 주소, 포트, UUID 서버 설정과 일치해야 합니다. 포트가 443이라고 해서 다른 매개변수까지 올바른 것은 아닙니다
전송 type=tcp、type=ws、path、host WebSocket 경로와 Host를 임의로 삭제하거나 수정하지 마세요
보안 계층 security=tls 또는 security=reality, sni, fp 서버 이름과 연결 주소를 구분하고, 지문은 제공자가 안내한 값으로 설정하세요
REALITY 및 흐름 제어 pbk、sid、flow=xtls-rprx-vision 공개 키, short ID, flow를 확인하세요. 일반 TLS 매개변수로 대체하면 안 됩니다

REALITY 클라이언트는 서버가 제공한 공개 키 정보를 사용하며, 개인 키는 서버에 보관됩니다. 버전에 따라 편집 화면의 필드 이름이 다를 수 있으므로 해당 버전의 안내에서 대응 관계를 확인하세요. 공유 링크의 공개 키는 사용자가 새로 생성할 값이 아닙니다. 임의로 바꾸면 핸드셰이크에 필요한 키 관계가 깨집니다.

  1. 전체 링크나 구독을 통해 가져와 수동 복사 중 쿼리 매개변수가 잘리지 않도록 하세요.
  2. 노드 편집 화면에서 프로토콜, 전송 방식, 보안 계층, flow가 모두 유지되었는지 확인하세요.
  3. 항목을 건너뛰었다면 먼저 가져오기 형식과 앱 버전을 확인하세요. 노드가 표시되지 않는다는 이유만으로 서버가 작동하지 않는다고 판단하면 안 됩니다.
  4. 항목은 정상적으로 표시되지만 연결에 실패한다면 실제 코어 로그와 서버 매개변수를 확인하세요.

5. Android에서 가져오기 및 검증: 포트와 연결 테스트 구분하기

일반적인 한국어 인터페이스의 v2rayNG에서는 구독 관리가 보통 사이드 메뉴의 ‘구독 그룹 설정’에 있습니다. 주소를 추가한 뒤 메인 화면 메뉴에서 ‘구독 업데이트’를 실행하세요. 단일 공유 링크는 보통 오른쪽 위의 ‘+’ → ‘클립보드에서 가져오기’로 추가합니다. 버전에 따라 메뉴 이름이 조금 다를 수 있으며, v2flyNG도 현재 화면을 기준으로 확인해야 합니다. 특정 버전의 메뉴 경로를 모든 버전에 적용되는 고정 경로로 보지 마세요.

443
일반적으로 사용하는 원격 TLS 포트. 실제 값은 노드 설정을 따르세요
10808
로컬 SOCKS 리스너 설정 예시
10809
로컬 HTTP 리스너 설정 예시

위 항목은 속도 측정 결과도, 모든 버전의 기본값도 아닙니다. 원격 포트는 서버에 연결할 때 사용하는 진입점이고, 로컬 리스너 포트는 앱이 클라이언트로 트래픽을 전달할 때 사용합니다. 두 포트를 혼동해 설정하면 안 됩니다. 일부 버전은 혼합 리스너 포트를 사용하므로 실제 설정을 확인하세요. 가이드를 그대로 따라 하려고 존재하지 않는 HTTP 진입점을 추가로 설정하지 마세요.

  1. 버전 기록: ‘정보’ 화면이나 시작 로그에서 앱 버전과 코어 버전을 확인하세요. 문제를 신고할 때 두 버전을 모두 제공해야 합니다. 앱 버전으로 코어 버전을 대신할 수 없습니다.
  2. 노드 확인: 가져온 노드를 선택해 서버 포트와 보안 계층을 확인하세요. 10808 같은 로컬 포트를 서버 포트로 입력하면 안 됩니다.
  3. 서비스 시작: VPN 모드로 처음 시작할 때는 Android 시스템 안내에 따라 권한을 허용하세요. 테스트 전에 시스템 VPN 채널을 사용 중인 다른 서비스를 중지하세요.
  4. 접속 확인: 프록시를 통해 접속해야 하는 대상을 열고 로그에 연결 및 라우팅 기록이 있는지 확인하세요. 실행 중으로 표시되어도 대상 트래픽이 프록시를 통과한다는 뜻은 아닙니다.
  5. 테스트 결과 해석: TCP 지연 시간은 특정 연결 테스트의 결과만 보여 줍니다. 인증, TLS, REALITY 또는 실제 앱 접속이 정상인지 모두 검증하지는 못합니다.

6. 데스크톱 v2rayN과 Android에서 구독 함께 사용하기

같은 구독을 사용하면 노드를 중복 입력할 필요는 없지만, 모든 로컬 설정이 동기화되는 것은 아닙니다. 데스크톱의 시스템 프록시, Android의 VPN 권한, 앱별 규칙, DNS 정책은 각각 따로 관리됩니다. 양쪽에서 이름이 같은 노드를 선택해도 라우팅 규칙에 따라 같은 대상에 서로 다른 출구로 접속할 수 있습니다.

권장 방식: 노드 출처는 공유하고 로컬 설정은 각 기기에서 확인

데스크톱 · v2rayN
  • 같은 구독 주소를 추가하고 수동으로 업데이트해 노드를 확인하세요.
  • REALITY 또는 Vision이 필요하다면 현재 설정이 해당 기능을 지원하는 Xray 코어에서 실행되는지 확인하세요.
  • 시스템 프록시 또는 TUN이 활성화되어 있는지, 대상이 프록시 규칙에 해당하는지 각각 확인하세요.
Android · v2rayNG 또는 v2flyNG
  • 노드 기능에 맞는 클라이언트를 선택한 뒤 같은 구독을 가져오세요.
  • 대상 앱이 앱별 규칙에서 제외되어 있지 않은지 확인하세요.
  • VPN 서비스, DNS 설정, 백그라운드 실행 상태를 확인하세요.

같은 구독은 동일한 노드 출처를 제공하지만, 업데이트 시점과 가져오기 지원 범위, 로컬 규칙은 다를 수 있습니다. 양쪽에서 각각 검증하세요.

네트워크를 바꾼 뒤 “데스크톱에서는 되는데 Android에서는 안 된다”면 먼저 양쪽에서 실제로 선택한 노드와 코어 기능을 비교한 다음, Android의 앱 라우팅과 DNS 조회 경로를 확인하세요. 구독이 같다는 이유로 이 단계를 건너뛰면 안 됩니다. 구독 주소에 액세스 토큰이 포함될 수 있으므로 문제 해결용 스크린샷에서는 전체 주소와 UUID, 기타 계정 정보를 가리세요.

7. 가져오기 실패, 핸드셰이크 실패, 속도 저하 해결 순서

코어 선택으로 해결할 수 있는 것은 기능 호환성이지 모든 네트워크 문제는 아닙니다. 오류가 발생한 단계는 “어느 코어가 더 강한가”보다 진단에 더 유용합니다. 먼저 가져올 수 있는지 확인한 뒤 실행 여부, 원격 핸드셰이크와 대상 접속을 차례로 점검하고, 성능 비교는 마지막에 진행하세요.

증상 먼저 확인할 항목 다음 단계
구독 업데이트 후 일부 노드가 보이지 않음 응답 내용, 공유 형식, 클라이언트의 파싱 지원 여부 완전한 단일 링크로 확인하고 앱 버전을 점검하세요
시작하자마자 설정 오류가 표시됨 알 수 없는 필드, 지원되지 않는 flow, 사용자 지정 설정 구조 시작 로그를 확인해 실제 실행 중인 코어를 파악하세요
REALITY 핸드셰이크 실패 공개 키, short ID, 서버 이름, 지문, 시스템 시간 서버에서 제공한 원래 매개변수와 하나씩 대조해 복원하세요
브라우저에서는 되지만 특정 앱에서는 안 됨 앱별 프록시, 라우팅 규칙 적용 여부, DNS, 대상 프로토콜 해당 앱의 트래픽이 클라이언트로 들어오는지 확인하세요. 곧바로 코어를 바꾸지 마세요
접속은 되지만 속도가 느림 회선 혼잡, 패킷 손실, 출구 제한, 기기 부하 노드와 대상을 고정해 반복 측정하고 서로 다른 회선은 비교하지 마세요

속도를 높이려면 V2Fly에서 Xray로 바꿔야 할까요?

일률적인 답은 없습니다. Vision의 처리 방식은 적절한 환경에서 다른 결과를 낼 수 있지만, 모든 네트워크에서 더 빠르다고 단정할 수는 없습니다. 유효하게 비교하려면 같은 기기와 네트워크, 서버, 유사한 설정을 사용하고 핸드셰이크 시간, 다운로드 처리량, 안정성을 따로 기록해야 합니다. 프로토콜이나 회선이 바뀐 테스트 결과를 모두 코어 차이로 돌릴 수는 없습니다.

노드에 VLESS만 표시되어 있다면 무엇을 먼저 물어봐야 할까요?

결론: 먼저 설정 호환성을 맞춘 뒤 성능을 비교하세요

REALITY 또는 Vision 노드에는 먼저 v2rayNG를 선택하세요. 기존 V2Fly 설정을 사용한다면 먼저 v2flyNG의 호환성을 확인하세요. 연결이 성공한 뒤 라우팅, DNS, 회선 상태를 점검하고 기능 선택과 속도 테스트는 별도로 진행하세요.