데스크톱에서는 v2rayN을 먼저 살펴보고, 안드로이드에서는 서버 설정에 따라 v2rayNG와 v2flyNG 중 선택하세요. 공유 링크나 구독 주소를 이미 받아 클라이언트를 설치하거나 이전하려는 사용자에게 적합한 글입니다. 먼저 플랫폼과 코어를 구분한 뒤 프로토콜, 전송 방식, 보안 계층, 라우팅 동작을 확인하고, 마지막으로 동일한 점검 절차로 연결을 검증하세요. 이름이나 인터페이스가 비슷하다는 이유만으로 선택해서는 안 됩니다.
1. 플랫폼과 코어: 세 이름의 역할 구분하기
v2rayN, v2rayNG, v2flyNG는 모두 클라이언트이며 서로 다른 세 가지 프록시 프로토콜이 아닙니다. 클라이언트는 노드를 표시하고 구독을 가져오며 설정을 관리하고 코어를 실행합니다. 실제 연결, 프로토콜 처리, DNS와 라우팅은 코어가 담당합니다. 따라서 링크를 가져올 수 있다는 것과 링크에 포함된 모든 매개변수로 연결할 수 있다는 것은 별개의 문제입니다.
v2rayN은 데스크톱용이며 Windows, macOS, Linux에 맞는 배포 패키지를 선택해야 합니다. 데스크톱 버전은 크로스 플랫폼 인터페이스를 사용하고, WPF 버전은 기존 Windows 인터페이스를 유지합니다. v2rayNG와 v2flyNG는 안드로이드용으로, 전자는 Xray를 코어로 사용하고 후자는 V2Fly를 코어로 사용합니다. v2rayN에서 실제로 사용하는 코어는 배포 패키지, 설정 유형, 선택한 옵션에 따라 달라지므로 모든 설치 패키지의 기본값을 하나로 단정할 수 없습니다.
| 비교 항목 | v2rayN | v2rayNG | v2flyNG |
|---|---|---|---|
| 지원 플랫폼 | Windows, macOS, Linux(배포 패키지별로 선택) | 안드로이드 | 안드로이드 |
| 코어 구성 | 버전 및 설정에 따라 Xray / V2Fly 사용 가능 | Xray | V2Fly |
| 설정 추가 방법 | 구독 그룹, 클립보드 가져오기, 수동 설정 | 구독 그룹, 클립보드 가져오기, QR 코드 스캔 | 구독 설정, 클립보드 가져오기, QR 코드 스캔 |
| 트래픽 연결 방식 | 로컬 프록시 포트, 시스템 프록시; TUN은 버전과 권한에 따라 설정 | 일반적으로 안드로이드 VPN 서비스를 통해 트래픽 연결 | 일반적으로 안드로이드 VPN 서비스를 통해 트래픽 연결 |
| 라우팅 및 사용 방식 | 키보드 편집, 일괄 관리, 로그 비교에 적합 | 라우팅 설정과 앱별 프록시 사용 | 라우팅 설정과 앱별 프록시 사용 |
선택 순서: 플랫폼 → 설정 호환성 → 사용 방식
먼저 플랫폼에 맞지 않는 설치 패키지를 제외한 다음, 서버에서 요구하는 코어 기능을 확인하세요. 이 조건을 모두 충족한 뒤에 목록 관리, 구독 관리, 인터페이스 구성을 비교하면 됩니다.
2. 프로토콜 호환성: VLESS와 REALITY는 계층별로 확인
VMess와 VLESS는 프록시 프로토콜 이름이고, TCP와 WebSocket 등은 전송 방식을 나타냅니다. TLS와 REALITY는 연결 보안과 관련된 설정입니다. REALITY는 VMess와 나란히 놓이는 독립 프록시 프로토콜이 아닙니다. 클라이언트에 VLESS 옵션이 있다고 해서 모든 VLESS 조합을 지원한다고 볼 수도 없습니다.
예를 들어 VLESS + REALITY 설정은 주소, 포트, 사용자 식별자뿐 아니라 서버 이름, 공개 키, 짧은 ID, 필요에 따라 지정된 흐름 제어 매개변수도 일치해야 합니다. 이런 설정을 확인할 때는 v2rayNG의 Xray 코어를 우선 살펴보세요. v2flyNG는 V2Fly를 사용하므로 Xray 전용 REALITY 설정을 그대로 적용할 수 없습니다. VMess 노드도 프로토콜 이름만 보지 말고 전송 방식, TLS, 경로를 확인해야 합니다.
- 프로토콜 항목: 공유 링크가
vmess://인지vless://인지 확인하고, 클라이언트가 인식하지 못하는 옵션이 있는지도 살펴보세요. - 전송 항목: WebSocket의 경로와 Host는 서버 설정과 일치해야 합니다. 경로를 임의로
/로 바꾸지 마세요. - 보안 항목: TLS 서버 이름은 인증서 검증 요건에 맞아야 합니다. REALITY 매개변수는 서버에서 제공한 값으로 입력하세요.
- 버전 확인: 클라이언트와 코어의 실제 버전을 기록한 뒤 각 항목의 지원 여부를 판단하세요. 인터페이스에 표시된 버전과 코어 버전은 다를 수 있습니다.
3. 사용 환경별 선택: 데스크톱 관리와 안드로이드 연결
설치할 클라이언트를 정하는 것이 우선이라면 아래 세 가지 사용 환경을 기준으로 선택하세요. 여기서 ‘추천’은 서버 설정이 Xray와 호환되는 안드로이드 일상 사용 환경에 한정되며, 모든 플랫폼을 아우르는 순위가 아닙니다. 데스크톱에서는 데스크톱 클라이언트를 선택해야 합니다.
v2rayNG: 안드로이드에서 사용하는 Xray 방식
추천안드로이드용이며 Xray가 지원하는 설정에 적합합니다. 가져온 뒤에도 전송 방식, 보안 계층, 라우팅, 앱별 설정을 확인하세요. 가져오기에 성공했다고 실제 연결까지 보장되는 것은 아닙니다.
추천 대상: 안드로이드에서 일상적으로 연결하거나, Xray 설정 또는 VLESS + REALITY가 필요한 사용자
v2rayN: 데스크톱 설정 관리
노드 표, 구독 그룹, 로그 창을 데스크톱에서 편리하게 관리할 수 있습니다. 사용 전 운영체제와 프로세서 아키텍처에 맞는 패키지를 선택하고, 코어를 바꾸기 전에 기존 설정을 새 코어가 인식하는지 확인하세요.
추천 대상: Windows, macOS, Linux 데스크톱 사용자, 여러 노드를 관리하거나 연결 문제를 진단하는 사용자
v2flyNG: 안드로이드에서 사용하는 V2Fly 방식
V2Fly 설정 체계를 유지해야 하는 환경에 적합합니다. 기존 서버와 설정의 호환 범위를 기준으로 선택하세요. 이름에 V2Fly가 포함되어 있다고 속도나 안정성이 보장되는 것은 아닙니다.
추천 대상: 검증된 V2Fly 설정을 사용하며 동일한 코어 구현을 이어가려는 안드로이드 사용자
4. 구독 가져오기: 같은 주소를 써도 모든 설정이 공유되지는 않습니다
개별 공유 링크에는 일반적으로 노드 하나의 연결 매개변수가 저장됩니다. 구독 주소는 여러 설정을 가져오며, 업데이트하면 목록에 항목이 추가·삭제되거나 수정될 수 있습니다. 두 클라이언트에서 같은 구독을 사용하려면 응답 내용이 양쪽 파서와 호환되어야 합니다. 같은 구독 노드를 사용하더라도 DNS, 라우팅, 앱별 규칙, 시스템 프록시 상태까지 동기화되는 것은 아닙니다.
- 데스크톱에서 구독 추가: v2rayN에서 ‘구독 그룹’ → ‘구독 그룹 설정’을 열고 그룹을 추가한 뒤 주소를 입력하세요. 저장 후 ‘구독 그룹’ 메뉴에서 업데이트를 실행합니다. 메뉴 이름은 인터페이스 버전에 따라 조금 다를 수 있습니다.
- 안드로이드에서 구독 추가: v2rayNG의 사이드 메뉴에서 ‘구독 그룹 설정’을 열고 주소를 추가해 저장하세요. 메인 화면으로 돌아가 메뉴에서 ‘구독 업데이트’를 실행합니다. 주소만 추가하고 업데이트하지 않으면 노드 목록이 비어 있을 수 있습니다.
- 개별 링크는 따로 가져오기: 전체 링크를 복사한 뒤 ‘클립보드에서 가져오기’와 같은 메뉴를 사용하거나 QR 코드를 스캔하세요. v2flyNG에서도 노드 가져오기와 구독 관리 메뉴를 구분해야 합니다. 웹페이지 주소를 공유 링크로 착각하지 마세요.
- 첫 업데이트 후 확인: 노드 하나의 편집 화면을 열고 서버에서 제공한 프로토콜, 포트, 전송 방식, 보안 설정과 대조하세요. 필수 항목이 빠졌다면 연결하기 전에 형식 호환성 문제부터 해결해야 합니다.
두 기기에서 사용하는 방법: 호환되는 구독을 공유하고 로컬 정책은 따로 관리
데스크톱: v2rayN
- 수동으로 추가한 노드와 섞이지 않도록 구독 전용 그룹을 만드세요.
- 현재 설정에서 사용하는 코어와 로컬 수신 포트를 확인하세요.
- 시스템 프록시, 라우팅, DNS를 각각 설정하세요.
안드로이드: v2rayNG
- 같은 주소를 사용하기 전에 노드 형식을 빠짐없이 파싱할 수 있는지 확인하세요.
- 프록시에 연결할 앱을 실제 사용 목적에 맞게 선택하세요.
- 모바일 네트워크와 Wi-Fi에서 DNS와 연결을 각각 확인하세요.
구독은 노드 목록의 출처를 동기화하는 데 사용됩니다. 업데이트 시점, 파싱 결과, 로컬 정책은 각각 확인해야 하며 두 기기의 설정이 항상 완전히 일치한다고 가정해서는 안 됩니다.
구독 주소에 접속 인증 정보가 포함될 수 있습니다. 문제를 진단할 때는 상태 코드, 오류 메시지, 필요한 항목만 기록하고 전체 주소가 보이는 화면을 공개하지 마세요. 업데이트 전에 구독 노드를 수동으로 수정했다면 먼저 사본을 저장하세요. 이후 업데이트 과정에서 변경 사항이 덮어써질 수 있습니다.
5. 라우팅 및 트래픽 연결: 연결 버튼 외에 확인할 항목
데스크톱에서 ‘코어 실행 중’은 로컬 서비스가 시작되었다는 뜻일 뿐, 모든 앱이 트래픽을 전달하고 있다는 의미는 아닙니다. 시스템 프록시는 시스템 프록시 설정을 따르는 앱에 주로 적용되며, 명령줄 도구는 프록시를 별도로 지정해야 할 수 있습니다. TUN은 더 넓은 범위의 트래픽을 연결하지만 권한, 라우팅, DNS 설정도 필요합니다. 어떤 환경에서든 버튼 하나로 모든 트래픽을 처리한다고 생각해서는 안 됩니다.
안드로이드는 보통 VPN 서비스를 통해 트래픽을 연결하며 시작할 때 시스템 권한을 허용해야 합니다. 같은 시스템 통신 경로를 사용하는 다른 앱이 실행에 영향을 줄 수도 있습니다. 앱별 프록시는 어떤 앱의 트래픽을 이 경로로 보낼지 결정하고, 코어 라우팅은 전달된 연결을 직접 연결할지 프록시로 보낼지 정합니다. 이 두 설정은 서로 다르므로 한쪽을 바꿔도 다른 쪽이 함께 바뀌지는 않습니다.
- 먼저 연결 경로 확인: 데스크톱에서는 시스템 프록시나 앱 자체 프록시를 확인하고, 안드로이드에서는 시스템 연결 상태와 앱별 적용 범위를 확인하세요.
- 다음으로 규칙 확인: 라우팅 규칙의 순서를 확인하세요. 우선 처리해야 하는 특정 도메인은 해당 도메인과 일치하는 포괄적인 규칙보다 앞에 배치해야 합니다.
- 마지막으로 데이터 확인:
geosite는 도메인 분류를 기준으로,geoip는 IP 분류를 기준으로 일치 항목을 찾습니다. 규칙 데이터와 DNS 해석 방식에 따라 결과가 달라질 수 있습니다.
예를 들어 로컬 SOCKS 수신 포트가 실제로 127.0.0.1:10808로 설정된 경우에만 다음 명령을 사용할 수 있습니다. 여기서 10808은 테스트 예시일 뿐, 세 클라이언트의 공통 기본 포트가 아닙니다. socks5h는 대상 도메인의 해석을 프록시에 맡기므로 로컬 DNS 문제를 구분하는 데 도움이 됩니다. 다만 일반 브라우저도 반드시 같은 경로를 사용한다고 볼 수는 없습니다.
curl --proxy socks5h://127.0.0.1:10808 --head --max-time 15 https://example.com/
이전할 때는 먼저 노드를 고정하고 라우팅을 옮기세요
매개변수를 확인한 노드 하나로 연결을 테스트한 다음 DNS, 도메인 규칙, 앱별 정책을 차례로 추가하세요. 한 번에 한 종류의 설정만 변경해야 로그를 통해 어떤 단계에서 동작이 바뀌었는지 파악할 수 있습니다.
6. 인터페이스와 자주 발생하는 문제: 재현 가능한 점검 절차
v2rayN의 데스크톱 표는 여러 항목을 일괄 선택하고 로그를 비교하기에 적합합니다. 안드로이드 클라이언트는 노드 목록, 편집 화면, 연결 버튼을 중심으로 구성됩니다. 일상적인 조작 방식의 차이는 주로 화면 크기와 메뉴 배치에서 비롯되므로 버튼이 적다고 기능이 부족한 것은 아닙니다. 업그레이드 전에는 현재 버전, 코어 버전, 노드 출처, 주요 정책을 기록해 두세요. 인터페이스 변경을 프로토콜 호환성 문제로 오해하지 않는 데 도움이 됩니다.
구독은 업데이트되는데 노드에 연결할 수 없는 이유는?
구독 업데이트로 확인되는 것은 주소에 접근할 수 있다는 점뿐입니다. 노드 편집 화면을 열어 서버 포트, 전송 방식, TLS 또는 REALITY 매개변수를 차례로 확인하세요. 시작 로그에 알 수 없는 항목, 핸드셰이크 실패, 인증 오류가 있는지도 살펴보세요. 구독 업데이트만 반복하지 마세요.
v2rayN은 실행 중인데 브라우저에서 프록시가 작동하지 않는 이유는?
먼저 시스템 프록시가 설정되어 있는지 확인한 뒤 브라우저가 별도의 프록시를 사용하고 있지 않은지도 살펴보세요. 설정에서 로컬 수신 포트를 확인하고 해당 포트로 단일 앱 테스트를 진행하세요. 로그에 포트 충돌이 표시되면 충돌하는 프로세스를 종료하거나 포트를 바꾸고 앱 설정도 함께 수정하세요.
안드로이드에서 일부 앱만 열리지 않으면 클라이언트를 바꿔야 하나요?
먼저 앱별 프록시 목록과 현재 모드가 ‘선택한 앱만 프록시 사용’인지 ‘선택한 앱은 프록시 우회’인지 확인하세요. 그런 다음 문제가 발생한 앱의 도메인 라우팅과 DNS를 살펴보세요. 같은 네트워크에서 옵션 하나만 바꿔 다시 테스트하고, 노드·규칙·클라이언트를 한꺼번에 바꾸지 마세요.
v2rayNG에서 v2flyNG로 바꿀 때 링크만 복사하면 되나요?
먼저 링크 설정에 Xray 전용 기능이 필요한지 확인하세요. 가져오기에 성공해도 실행까지 보장되는 것은 아닙니다. 프로토콜, 전송 방식, 보안 계층을 확인한 뒤 구독과 로컬 규칙을 이전하세요. REALITY 설정을 사용한다면 해당 Xray 기능을 지원하는 클라이언트와 코어를 선택해야 합니다.
7. 설치 전 점검 목록
최종 선택은 플랫폼, 호환성, 관리 방식 세 가지 기준으로 정리할 수 있습니다. 데스크톱에서는 v2rayN을 사용하고, 안드로이드에서 Xray 설정을 쓴다면 v2rayNG를 먼저 확인하세요. 기존 V2Fly 환경이고 설정도 호환된다면 v2flyNG를 고려할 수 있습니다. 서버 조건을 고려하지 않은 채 클라이언트 간 우열을 일괄적으로 정할 수는 없습니다. 재현 가능한 설정과 테스트 기록을 바탕으로 선택하세요.