데스크톱에서는 v2rayN을 먼저 살펴보고 운영체제에 맞춰 데스크톱 버전이나 WPF 버전을 선택하세요. Android에서 Xray 설정을 사용한다면 v2rayNG를 우선 고려하고, 기존 V2Fly 설정이 있다면 v2flyNG와의 호환성을 확인하세요. 설치·기기 간 이전·프로토콜 호환성 문제를 해결하려는 사용자를 위해 플랫폼과 코어, 트래픽 처리 방식의 차이를 설명하고 구독 가져오기, 라우팅 점검, 기기 간 이전 절차를 안내합니다.
플랫폼 비교: 데스크톱과 Android는 따로 선택
v2rayN, v2rayNG, v2flyNG는 클라이언트 이름이지 프록시 프로토콜 세 종류가 아닙니다. 클라이언트는 노드 관리, 구독 업데이트, 실행 옵션과 화면 조작을 담당하며 실제 연결은 보통 코어가 처리합니다. 이름이 비슷하다고 설치 파일을 서로 사용할 수 있는 것은 아니며, 같은 링크를 가져와도 설정이 완전히 동일하게 생성된다는 뜻도 아닙니다.
| 비교 항목 | v2rayN | v2rayNG | v2flyNG |
|---|---|---|---|
| 주요 플랫폼 | Windows, macOS, Linux 데스크톱 | Android | Android |
| 인터페이스와 버전 | Avalonia 데스크톱 버전은 세 가지 데스크톱 운영체제를 지원하고, WPF 버전은 Windows 전용 | Android 노드 목록 및 설정 화면 | Android 노드 목록 및 설정 화면 |
| 코어 구성 | 버전과 설정에 따라 지원되는 코어를 선택할 수 있으며, Xray가 널리 사용됩니다. | Xray 코어 | V2Fly의 V2Ray 코어 |
| 트래픽 처리 방식 | 로컬 프록시 포트, 시스템 프록시; 지원 버전에서는 TUN도 사용 가능 | 일반적으로 Android VPN 서비스를 통해 트래픽을 처리합니다. | 일반적으로 Android VPN 서비스를 통해 트래픽을 처리합니다. |
| 선택 시 고려 사항 | 운영체제, 아키텍처, 배포 패키지, 데스크톱 트래픽 처리 방식 | Xray 프로토콜 지원, 구독 형식, 앱별 설정 | 기존 V2Fly 설정 및 버전 호환성 |
Windows 사용자는 인터페이스 기술과 코어 기능도 구분해야 합니다. WPF와 Avalonia는 데스크톱 UI 프레임워크를 가리키며 전송 프로토콜이 아닙니다. 다른 UI 버전으로 바꾼다고 서버가 새 프로토콜을 자동으로 지원하는 것도 아닙니다. macOS와 Linux 사용자는 해당 데스크톱 배포 패키지를, Android 사용자는 기기의 프로세서 아키텍처에 맞는 설치 파일을 선택하세요.
- 데스크톱에서 일상적으로 사용: v2rayN부터 시작해 운영체제와 프로세서 아키텍처를 확인한 다음, 현재 배포 패키지의 실행 요구 사항을 살펴보세요.
- Android에서 Xray 노드 사용: v2rayNG부터 시작해 노드에서 요구하는 보안 방식과 전송 설정을 확인하세요.
- Android에서 기존 V2Fly 설정 사용: v2flyNG를 검토하되, 먼저 현재 코어가 기존 설정을 받아들이는지 확인한 뒤 이전 여부를 결정하세요.
코어 비교: 프로토콜 이름뿐 아니라 보안·전송 설정도 확인
Project V는 관련 기술 생태계의 배경이며, V2Fly는 V2Ray를 유지 관리하고 Xray는 별도의 코어 계열입니다. v2rayNG와 v2flyNG의 차이는 UI 색상이나 이름 길이로 단순화할 수 없습니다. 호환성을 판단할 때는 프로토콜, 전송 방식, 보안 설정과 코어 버전을 함께 확인해야 합니다. 클라이언트에 노드가 표시된다고 해서 코어가 연결까지 성공한다는 뜻은 아닙니다.
v2rayN: 데스크톱 설정 및 관리
데스크톱에서 여러 구독 그룹을 관리하고 라우팅을 전환하거나 코어 로그를 확인할 때 적합합니다. 코어는 노드 설정과 현재 버전에서 제공하는 옵션을 기준으로 선택하세요. 여러 코어를 지원한다고 해서 모든 조합이 작동하는 것은 아닙니다.
추천 대상: Windows, macOS, Linux에서 프록시를 일상적으로 사용하거나 설정 문제를 확인하는 사용자
v2rayNG: Android Xray 설정
추천Android에서 Xray 설정을 사용하는 경우 v2rayNG를 우선 고려할 수 있습니다. 노드가 VLESS, REALITY 또는 특정 flow 값을 요구한다면 링크 접두사만 확인하지 말고 클라이언트에 포함된 코어의 지원 여부를 항목별로 확인하세요.
추천 대상: Android에서 일상적으로 사용하거나 Xray 기능을 명시적으로 요구하는 노드
v2flyNG: Android V2Fly 설정
검증된 V2Fly 설정을 계속 사용하려는 경우에 적합합니다. VMess 등 프로토콜의 호환성은 설정 필드와 코어 버전에 따라 달라집니다. Xray 전용 매개변수가 있다면 무작정 가져와 반복해서 재시도하지 말고 먼저 지원 여부를 확인하세요.
추천 대상: 기존 V2Fly 설정을 유지하려는 Android 사용자
예를 들어 같은 VLESS라도 TLS와 REALITY의 설정 요건은 다릅니다. 같은 VMess라도 TCP와 WebSocket의 전송 필드는 서로 다릅니다. WebSocket 경로, TLS 서버 이름, 서버 수신 포트 중 어느 하나라도 맞지 않으면 연결이 실패할 수 있습니다. 인식할 수 없는 필드를 삭제하면 링크 가져오기는 성공할 수 있지만, 연결이 올바르다고 단정할 수는 없습니다.
선택 기준: 노드에 필요한 설정을 파악한 뒤 Android 클라이언트 선택
프로토콜, 전송 방식, 보안 방식, 서버 이름과 flow 요건을 기록하세요. Xray 기능에 의존한다면 v2rayNG를 우선 확인하고, 기존 V2Fly 설정이 정상 작동한다면 v2flyNG에서 현재 설정을 유지한 채 같은 노드로 이전을 테스트하세요.
구독과 인터페이스: 노드 하나 가져오기와 구독 관리는 다릅니다
세 클라이언트 모두 노드 목록을 중심으로 조작하지만, 개별 공유 링크와 구독 주소의 용도는 다릅니다. vmess://, vless:// 공유 링크는 보통 노드 하나를 설명하고, 구독 주소는 여러 노드를 가져오고 이후 업데이트하는 데 사용합니다. 구독 주소를 일반 텍스트 노드처럼 가져오면 목록이 비거나 형식을 인식할 수 없다는 메시지가 표시될 수 있습니다.
- v2rayN에서 구독 추가: 메인 화면의 「구독 그룹」 메뉴에서 「구독 그룹 설정」을 열고 그룹 이름과 구독 주소를 입력한 뒤 저장하고 구독을 업데이트하세요. 버전에 따라 메뉴 이름은 조금 다를 수 있으므로 개별 서버 편집 창이 아니라 구독 주소를 관리하는 메뉴를 선택하세요.
- v2rayNG에서 노드 하나 가져오기: 공유 링크 전체를 복사하고 메인 화면 오른쪽 위의 「+」→「클립보드에서 가져오기」를 누르세요. 가져온 뒤 노드 편집 화면에서 주소, 포트, 전송 방식과 보안 매개변수를 확인하세요.
- v2rayNG에서 구독 추가: 메인 화면 메뉴에서 「구독 설정」으로 이동해 이름과 주소를 추가하고 저장한 다음, 목록으로 돌아와 「구독 업데이트」를 실행하세요. 현재 버전에서 업데이트 방식이 여러 가지라면 구독 주소에 직접 연결할 수 있는지에 따라 적절한 메뉴를 선택하세요.
- v2flyNG에서 구독 관리: 현재 버전의 구독 설정 메뉴에서 주소를 추가하고 업데이트를 실행하세요. 이전하기 전에 반환된 형식을 파싱할 수 있는지 확인하세요. 다른 클라이언트의 그룹 설정까지 주소와 함께 가져올 수 있다고 가정하지 마세요.
데스크톱의 v2rayN은 마우스와 키보드로 그룹, 노드와 로그를 확인하기 편리하고, Android에서는 목록, 메뉴와 연결 버튼을 중심으로 조작합니다. 인터페이스 사용성은 관리 효율에 영향을 주지만 연결 품질은 서버, 네트워크 경로와 코어 설정에 달려 있습니다. 화면 전환이 매끄럽다는 이유만으로 어느 클라이언트가 더 빠르다고 판단할 수는 없습니다.
라우팅과 포트: 연결 후 트래픽 경로 확인
라우팅 분기는 특정 트래픽을 프록시로 보낼지, 직접 연결할지, 차단할지를 결정합니다. 노드 속도 측정이나 구독 그룹과는 다릅니다. 데스크톱 시스템 프록시는 시스템 프록시 설정을 따르는 앱에만 적용되는 경우가 많습니다. TUN은 트래픽 처리 범위가 다르며 권한, 라우팅과 DNS 설정이 관련될 수 있습니다. Android 클라이언트가 VPN 서비스로 트래픽을 처리한다면 앱별 설정에서 대상 앱이 제외되지 않았는지도 확인하세요.
위 숫자는 문제 해결을 위한 예시이며 세 클라이언트의 공통 기본값이 아닙니다. 데스크톱 클라이언트가 실제로 127.0.0.1:10808에서 수신한다고 가정하면 이 포트는 로컬 앱이 프록시에 연결할 때 사용합니다. 서버 주소의 :443은 원격 서버 포트입니다. 용도가 다르므로 ‘일치시킨다’는 이유로 같은 값으로 바꾸면 안 됩니다. 로컬 포트가 이미 사용 중이라면 수신 포트를 바꾸고 앱의 프록시 설정도 함께 수정하세요.
- 데스크톱에서 확인: v2rayN의 「설정」→「매개변수 설정」에서 로컬 수신 설정을 확인한 다음 메인 화면에서 시스템 프록시 상태를 살펴보세요. 버전에 따라 메뉴 구성이 달라지면 현재 화면에 표시된 수신 주소와 포트를 기준으로 확인하세요.
- Android에서 확인: 연결을 시작한 뒤 시스템 VPN 권한이 승인되었는지 확인하고, 클라이언트 설정에서 앱별 프록시를 살펴보세요. 다른 VPN 서비스가 실행 중이라면 보통 먼저 종료해야 합니다.
- 규칙 적용 확인: 현재 라우팅 프리셋, 규칙 순서와 기본 출구를 확인하세요. 규칙은 보통 순서대로 적용되므로 앞쪽에 지나치게 포괄적인 규칙이 있으면 대상 트래픽에 먼저 적용될 수 있습니다.
- DNS 확인: 도메인 해석, 도메인 규칙과 IP 규칙은 서로 영향을 줍니다. IP 주소 하나만 테스트해서는 도메인별 라우팅이 올바른지 확인할 수 없습니다. 실제 접속하려는 도메인을 사용하고 로그를 확인하세요.
Android의 앱별 프록시와 도메인 라우팅은 서로 다른 설정입니다. 앱별 프록시는 어떤 앱의 트래픽을 클라이언트로 보낼지 결정하고, 도메인 라우팅은 클라이언트로 들어온 트래픽이 어느 출구를 사용할지 결정합니다. 앱을 VPN 처리 범위에서 제외한 뒤 클라이언트의 도메인 규칙을 바꿔도 보통 해당 앱의 트래픽 경로는 달라지지 않습니다.
두 기기 함께 사용하기: 구독은 공유하고 라우팅은 따로 설정
데스크톱과 Android에서 같은 구독 주소를 사용할 수 있지만, 구독 서비스가 해당 기기 사용을 허용하고 양쪽 클라이언트가 반환된 노드 형식을 지원해야 합니다. 주소를 공유해도 라우팅, DNS, 앱별 목록과 시스템 프록시 상태까지 동기화되는 것은 아닙니다. 두 기기의 업데이트 시점이 다르면 노드 목록이 일시적으로 서로 다를 수 있습니다.
권장 구성: 데스크톱 v2rayN과 Android v2rayNG를 각각 확인
데스크톱: v2rayN
- 운영체제와 아키텍처에 맞는 배포 패키지를 선택하고 구독 그룹을 추가한 뒤 수동으로 한 번 업데이트하세요.
- 노드 설정에 맞는 코어를 선택하고 실제 로컬 수신 포트를 기록하세요.
- 먼저 시스템 프록시로 브라우저 접속을 확인한 뒤 필요에 따라 TUN 사용을 검토하세요.
- 라우팅 프리셋과 DNS 설정은 별도로 저장하세요. 구독이 로컬 설정까지 대신한다고 가정하지 마세요.
Android: v2rayNG
- 같은 구독 주소를 추가하고 대상 노드의 보안 및 전송 매개변수를 확인하세요.
- VPN 권한을 승인하고 테스트 앱을 우선 트래픽 처리 범위에 포함하세요.
- 기본 연결을 확인한 뒤 앱별 프록시와 사용자 지정 라우팅을 설정하세요.
- 기존 V2Fly 설정이 있다면 v2flyNG에서 작동하는 구성을 우선 유지하세요.
구독을 공유하면 노드를 일일이 입력하는 수고는 줄지만, 양쪽에서 각각 업데이트하고 설정과 트래픽 경로를 확인해야 합니다.
이전 검증: 한 번에 변수 하나만 변경
- 기존 클라이언트에서 작동하는 노드의 프로토콜, 주소, 포트와 전송 설정을 기록하고 원래 설정도 보관하세요.
- 새 클라이언트에서 같은 노드를 가져온 뒤, 사용자 지정 규칙을 추가하기 전에 단순한 라우팅 설정으로 시작하세요.
- 같은 테스트 페이지에 접속해 DNS 해석, 연결, 콘텐츠 로딩 여부를 기록하세요. 실패하면 해당 코어의 로그를 확인하세요.
- 기본 연결이 확인되면 라우팅 분기, 앱별 설정과 DNS를 복원하세요. 설정을 하나씩 바꿀 때마다 다시 테스트하면 문제를 일으킨 항목을 찾기 쉽습니다.
속도를 비교하려면 같은 기기, 같은 네트워크, 같은 노드와 비슷한 시간대를 사용하고 여러 차례 측정하세요. 데스크톱 유선 네트워크와 휴대전화 모바일 네트워크의 결과 차이를 클라이언트 차이로 볼 수는 없습니다. 이 글에서는 동일한 조건으로 측정하지 않은 속도 수치를 선택 기준으로 사용하지 않습니다.
선택 관련 질문: 가져오기 실패, 웹페이지 접속 불가, 이전 시 유지할 설정
v2rayNG와 v2flyNG는 서로 바꿔 써도 되나요?
먼저 노드에 필요한 코어 기능을 확인하세요. 같은 공유 링크를 대상 클라이언트에 복사하고 프로토콜, 전송 방식, 보안 방식과 flow를 하나씩 확인하세요. 대상 코어에서 지원하지 않는 매개변수가 있다면 클라이언트를 바꾸거나 서버에서 제공하는 호환 설정을 사용하세요. 해당 필드를 임의로 삭제하지 마세요.
구독 주소는 열리는데 업데이트 후 목록이 비어 있는 이유는 무엇인가요?
계정 페이지 링크가 아니라 구독 주소를 추가했는지 확인하고 업데이트 메시지를 살펴보세요. 브라우저에 로그인 페이지나 오류 페이지가 표시된다고 해서 구독이 유효한 것은 아닙니다. 서비스 제공업체에 현재 클라이언트가 파싱할 수 있는 구독 형식인지 확인한 다음 다시 업데이트하세요.
v2rayN은 실행 중인데 브라우저에서 웹페이지가 열리지 않으면 어떻게 하나요?
먼저 시스템 프록시 상태를 확인한 뒤 브라우저가 시스템 프록시를 따르는지, 별도 프록시를 설정했는지 살펴보세요. 127.0.0.1:10808을 직접 지정했다면 해당 포트가 실제로 수신 중이고 프록시 프로토콜 유형도 올바른지 확인해야 합니다. 그런 다음 코어 로그에서 연결 및 DNS 해석 오류를 확인하세요.
Android에서 연결한 뒤 특정 앱 하나만 접속할 수 없다면 클라이언트를 바꿔야 하나요?
먼저 설정에서 앱별 프록시를 열고 해당 앱이 제외되지 않았는지, 앱 자체에 별도 네트워크 설정이 있는지 확인하세요. 같은 노드를 유지한 채 라우팅 규칙을 간단히 줄여 다시 테스트하세요. 로그에서 설정에 필요한 코어 기능을 지원하지 않는 것으로 확인된 경우에만 클라이언트 변경을 우선 고려하세요.
클라이언트를 바꿀 때 구독 주소만 복사하면 되나요?
주소를 복사한 뒤 구독을 다시 업데이트하고 선택한 노드도 확인해야 합니다. 라우팅 프리셋, DNS, 앱별 목록, 로컬 포트와 직접 수정한 항목도 따로 기록하세요. 이런 설정은 보통 구독에 포함되지 않으므로 노드 목록과 함께 자동으로 이전된다고 기대하면 안 됩니다.
선택 기준은 세 가지로 정리할 수 있습니다. 기기 플랫폼에 따라 클라이언트를 고르고, 노드 매개변수에 따라 코어 계열을 선택하며, 앱 사용 방식에 따라 트래픽 처리와 라우팅을 설정하세요. 데스크톱에서는 v2rayN부터 시작하고, Android의 Xray 환경에서는 v2rayNG를 우선 확인하세요. 기존 V2Fly 설정이 있다면 v2flyNG에서 작동하는 결과를 기준으로 삼으세요. 먼저 재현 가능한 정상 연결을 확인한 뒤 복잡한 설정을 조정하세요.