v2rayN·v2rayNG·v2flyNG 비교: V2Ray 클라이언트별 코어와 사용 환경

v2rayN, v2rayNG, v2flyNG의 코어와 플랫폼, 구독 관리, 라우팅 설정을 비교하고 데스크톱·안드로이드별 선택 기준을 안내합니다.

핵심 내용

데스크톱에서는 먼저 v2rayN의 플랫폼과 시스템 아키텍처를 확인하고, 안드로이드에서는 노드에 필요한 코어에 따라 v2rayNG와 v2flyNG를 선택하세요. 이 글에서는 클라이언트·코어·프로토콜의 차이, 구독으로 동기화되는 항목, 라우팅·포트·기기 간 연결 확인 방법을 설명합니다. 노드나 구독 주소가 있다면 클라이언트를 하나씩 설치해 차이를 확인하지 않아도 선택지를 좁힐 수 있습니다.

1. 클라이언트, 코어, 노드 프로토콜의 차이

v2rayN, v2rayNG, v2flyNG는 클라이언트 이름이지 노드 프로토콜의 종류가 아닙니다. 클라이언트는 노드를 가져오고 구독을 저장하며 설정을 생성하고 연결을 제어합니다. 코어는 설정에 따라 프로토콜 연결, DNS 조회, 라우팅을 처리합니다. VMess와 VLESS는 프록시 프로토콜입니다. 이름이 비슷하다고 해서 같은 설정을 가져왔을 때 동작까지 같다고 볼 수는 없습니다.

v2rayNG는 Xray 코어를 기반으로 하며, v2flyNG는 V2Fly가 유지 관리하는 V2Ray 코어를 사용합니다. v2rayN은 데스크톱 설정 관리 도구로, 사용할 수 있는 코어는 배포 패키지와 버전에 따라 달라집니다. 호환성을 확인할 때는 프로그램 이름만 기록하지 말고 클라이언트 버전과 실제 실행 중인 코어 버전을 함께 확인하세요.

클라이언트 선택 기준 비교
클라이언트지원 플랫폼코어 구성우선 확인할 항목
v2rayNWindows, macOS, Linux(배포 패키지에 따라 다름)버전, 코어 설정, 노드 유형에 따라 결정시스템 아키텍처, 실제 코어, 시스템 프록시 상태
v2rayNGAndroidXray 코어노드 필드, VPN 권한, 앱별 프록시 범위
v2flyNGAndroidV2Fly의 V2Ray 코어V2Fly 설정 호환성, 전송 방식, 실행 로그

Xray와 V2Fly는 공통된 기술적 기반을 공유하지만, 이후 기능이 완전히 동일하게 개발되는 것은 아닙니다. VMess나 VLESS 지원 여부는 호환성 확인의 시작일 뿐입니다. 전송 방식, TLS 매개변수, 확장 필드도 확인해야 합니다. 예를 들어 노드에서 Xray의 REALITY 기능이 필요하다면 해당 필드를 지원하는 Xray 코어와 클라이언트 버전을 선택하세요. 화면에 ‘VLESS’ 옵션이 있다는 이유만으로 사용할 수 있다고 판단하면 안 됩니다.

2. 플랫폼과 기존 설정으로 선택지 좁히기

‘운영체제 → 노드 요구 사항 → 관리 방식’ 순서로 선택하세요. 데스크톱에서 여러 노드를 전환하고 로그를 확인하거나 라우팅을 편집해야 한다면 먼저 v2rayN을 확인합니다. 안드로이드에서는 노드가 Xray 전용 기능을 필요로 하는지, 또는 V2Fly에서 이미 검증한 설정을 재사용해야 하는지부터 살펴보세요. 아래 권장 사항은 안드로이드에서 새 설정을 만드는 경우를 위한 것이며, 세 프로그램의 성능 순위가 아닙니다.

v2rayNG: 안드로이드에서 새 설정 만들기

추천

노드에서 Xray 또는 REALITY를 명시적으로 요구한다면 v2rayNG를 먼저 확인하세요. 가져온 뒤에도 서버 주소, 포트, 전송 방식, 보안 매개변수가 모두 입력되었는지 확인해야 합니다. 구버전 클라이언트는 최신 공유 링크의 필드를 인식하지 못할 수 있습니다.

추천 용도: 안드로이드에서 일상적으로 연결할 때, Xray 노드, 앱별 프록시 설정

v2rayN: 데스크톱 노드 및 설정 관리

Windows, macOS, Linux에서 해당 시스템 아키텍처에 맞는 배포 패키지를 선택한 다음 코어 설정을 확인하세요. 데스크톱 시스템 프록시, 브라우저 프록시, TUN은 서로 다른 연결 방식입니다. 노드가 실행 중이라고 해서 모든 프로그램의 트래픽이 프록시를 통과하는 것은 아닙니다.

추천 용도: 데스크톱 사용, 여러 구독 관리, 실행 로그를 꾸준히 확인해야 할 때

v2flyNG: 기존 V2Fly 설정 유지

사용 중인 V2Fly 노드나 사용자 지정 설정이 있다면 v2flyNG도 선택지에 포함할 수 있습니다. 기존 프로토콜과 전송 매개변수는 그대로 유지하고, 현재 버전에서 해당 형식을 가져올 수 있는지 확인하세요. 인터페이스를 바꾸려는 이유만으로 코어를 옮기지는 않는 편이 좋습니다.

추천 용도: 안드로이드에서 기존 V2Fly 환경을 이어서 사용하거나 기존 설정의 동작 방식을 유지해야 할 때

판단 방법: 필수 필드를 확인한 뒤 인터페이스 비교

노드 세부 정보에서 프로토콜, 전송 방식, 보안 유형을 확인하세요. 이 중 하나라도 현재 코어에서 지원하지 않는 기능에 의존한다면 호환되는 코어 또는 클라이언트로 먼저 바꿔야 합니다. 테마, 구독 그룹, 속도 측정 설정을 조정해도 프로토콜 호환성 문제는 해결되지 않습니다.

코어 이름만 보고 속도를 판단하지 마세요. 실제 처리량은 네트워크 경로, 서버 부하, 전송 매개변수, 기기 리소스에도 영향을 받습니다. 두 환경의 성능을 비교하려면 동일한 노드와 네트워크, 테스트 대상을 사용하고 로그에 표시된 오류 유형을 기록하세요. 조건이 통일되지 않은 데이터로 클라이언트 순위를 매길 수는 없습니다.

3. 구독은 공유할 수 있지만 로컬 설정은 함께 옮겨지지 않습니다

구독 주소는 대개 노드 목록을 제공할 뿐, 기기의 전체 설정을 담지는 않습니다. 같은 주소를 v2rayN과 v2rayNG에 각각 추가하면 서버 주소, 포트, 인증 정보를 수동으로 관리하는 수고를 줄일 수 있습니다. 하지만 시스템 프록시 상태, 안드로이드 앱별 목록, DNS 구성, 로컬 라우팅 규칙은 자동으로 동기화되지 않습니다.

기기 간 사용: 구독은 공유하고 연결 설정은 각각 관리

데스크톱: v2rayN
  • ‘구독 그룹’에 주소를 저장하고 업데이트합니다.
  • 사용할 노드를 선택하고 실제 사용 중인 코어를 확인합니다.
  • 시스템 프록시와 로컬 리스닝 포트를 별도로 설정합니다.
  • 사용자 지정 라우팅은 별도 설정으로 관리합니다.
안드로이드: v2rayNG
  • ‘구독 그룹 설정’에서 같은 주소를 추가한 뒤 구독을 업데이트합니다.
  • 가져온 노드의 프로토콜과 전송 매개변수를 확인합니다.
  • 처음 실행할 때 시스템 VPN 연결 권한을 허용합니다.
  • 필요에 따라 ‘앱별 프록시’와 적용 범위를 설정합니다.

두 기기에서 모두 업데이트가 성공하고, 구독 응답이 같으며, 모든 필드가 지원되어야 노드 목록을 동일하게 유지할 수 있습니다. 로컬 규칙은 각 기기에서 따로 확인해야 합니다. 메뉴 이름은 클라이언트 버전에 따라 달라질 수 있습니다.

공유 링크나 QR 코드는 노드 하나를 임시로 옮길 때 적합합니다. 가져온 노드는 대개 별개의 사본이므로 원본 노드의 서버 주소나 인증 정보가 바뀌어도 다른 기기에 자동으로 반영되지 않습니다. 사용자 지정 설정을 내보내면 더 많은 필드를 보존할 수 있지만, 인바운드 설정이나 파일 경로, 플랫폼별 옵션은 다른 시스템에서 그대로 사용할 수 없을 수 있습니다.

4. 라우팅 분기와 트래픽 연결은 따로 확인

라우팅 규칙은 클라이언트 코어에 이미 전달된 트래픽에만 적용됩니다. 데스크톱에서 시스템 프록시를 켜면 시스템 프록시 설정을 따르는 프로그램에 주로 영향을 줍니다. 자체 네트워크 설정을 사용하는 앱은 프록시를 별도로 지정해야 할 수 있습니다. 안드로이드 클라이언트가 시스템 VPN 인터페이스로 트래픽을 처리하는 경우에는 앱별 설정에 따라 어떤 앱의 트래픽이 해당 경로로 들어갈지가 결정됩니다.

따라서 ‘규칙에서 특정 도메인을 프록시로 지정했다’는 것과 ‘해당 도메인 접속이 반드시 프록시를 통과한다’는 것은 다릅니다. 먼저 앱 트래픽이 코어에 들어오는지 확인하고, 그다음 규칙 순서와 대상 아웃바운드, DNS 동작을 점검하세요. TUN 연결은 제외 항목, 라우팅 충돌, 권한 제한의 영향을 받을 수도 있으므로 스위치가 켜져 있는지만 보고 적용 범위를 판단하면 안 됩니다.

  1. 연결 경로 확인: 데스크톱에서는 시스템 프록시나 앱 내 프록시를 확인하고, 안드로이드에서는 VPN 상태와 앱별 목록을 확인하세요.
  2. 대상 아웃바운드 확인: 노드 목록에서 선택된 항목만 보지 말고 로그나 연결 기록에서 요청에 실제로 사용된 아웃바운드를 확인하세요.
  3. 규칙 순서 확인: 하나의 요청이 여러 조건에 해당할 수 있습니다. 규칙은 보통 순서대로 적용되므로 앞쪽의 지나치게 포괄적인 규칙이 뒤쪽의 세부 규칙을 가릴 수 있습니다.
  4. 도메인 조회 방식 확인: routing.domainStrategy는 라우팅 매칭에 사용할 도메인 조회 방식을 제어합니다. DNS 서버 선택이나 아웃바운드 연결의 도메인 처리 방식과는 다릅니다.

처음 설정한다면 원인을 파악하기 쉬운 규칙부터 유지하는 편이 좋습니다. 프록시를 통과해야 하는 명확한 대상 하나를 먼저 확인한 다음, 직접 연결이나 차단 조건을 추가하세요. DNS, 라우팅 모드, 코어를 한꺼번에 바꾸면 실패 원인을 찾기 어렵습니다. 필드별 확인이 필요하다면 사이트의 설정 레퍼런스를 참고하세요.

5. 포트 설정으로 데스크톱 연결 확인

포트는 로컬 앱이 클라이언트에 연결하는 진입점이며 원격 서버 포트가 아닙니다. 다음은 수동 설정 예시입니다. SOCKS 리스닝 포트는 10808, HTTP 리스닝 포트는 10809, 리스닝 주소는 127.0.0.1입니다. 이 숫자가 세 클라이언트의 공통 기본값은 아닙니다. 실제 값은 ‘설정’ → ‘매개변수 설정’의 로컬 리스닝 항목과 시작 로그를 기준으로 확인하세요. 메뉴 이름은 버전에 따라 다를 수 있습니다.

10808
예시 SOCKS 인바운드 포트
10809
예시 HTTP 인바운드 포트
127.0.0.1
로컬 기기에서만 접근 가능한 IPv4 루프백 주소

프로그램에서 혼합 인바운드 포트 하나만 활성화했다면 호출하는 앱은 실제 해당 포트를 사용해야 합니다. 별도의 HTTP 리스너가 있다고 가정하지 마세요. 127.0.0.1은 휴대전화에서 이 주소로 컴퓨터의 프록시에 직접 접속할 수 없다는 뜻이기도 합니다. 휴대전화에서 루프백 주소는 휴대전화 자신을 가리킵니다.

실행 로그에서 연결 거부, TLS 핸드셰이크 오류, 설정 파싱 실패는 서로 다른 단계의 문제입니다. 클라이언트를 계속 바꾸기보다 구체적인 오류와 발생 시간을 기록하고 해당 설정을 수정하세요. 문제 기록에는 클라이언트 버전, 코어 버전, 연결 방식, 노드 유형도 함께 남기는 것이 좋습니다.

6. 클라이언트 선택 관련 자주 묻는 질문

같은 구독이 v2rayN에서는 작동하는데 v2rayNG에서 가져오면 실패하는 이유는 무엇인가요?

먼저 두 클라이언트에서 동일한 노드의 서버, 포트, 프로토콜, 전송 방식, TLS 설정을 비교한 다음 코어 버전을 확인하세요. 구독에 현재 클라이언트가 인식하지 못하는 필드가 있다면 해당 필드를 지원하는 버전으로 업데이트하세요. 로그에 핸드셰이크 실패가 표시되면 모든 설정을 한꺼번에 초기화하지 말고 기기 시간과 서버에서 요구하는 서버 이름을 확인하세요.

VMess만 사용하는데 v2flyNG에서 v2rayNG로 반드시 바꿔야 하나요?

VMess라는 이유만으로 반드시 옮겨야 하는 것은 아닙니다. 현재 버전이 노드의 전송 및 보안 설정을 지원하는지, 연결이 안정적인지 먼저 확인하세요. 옮겨야 한다면 노드 하나를 먼저 가져와 검증한 뒤 나머지 노드와 라우팅을 이전하세요. 확인이 끝나기 전에 기존 설정을 삭제하지 마세요.

안드로이드에서 연결은 시작됐는데 일부 앱만 프록시를 사용하는 이유는 무엇인가요?

‘설정’에서 ‘앱별 프록시’를 열고 선택한 앱의 트래픽을 프록시로 보내는 설정인지, 선택한 앱을 제외하는 설정인지 확인하세요. 대상 앱이 해당 범위에 포함되는지도 점검합니다. 그런 다음 라우팅에서 대상 트래픽이 직접 연결로 지정되어 있지 않은지 확인하세요. 앱별 적용 범위와 도메인 라우팅은 별도의 설정이므로 한쪽만 변경해서는 결과를 판단할 수 없습니다.

구독 업데이트 시간이 초과되면 클라이언트를 바꿔야 하나요?

먼저 구독 주소가 완전하고 아직 유효한지 확인하세요. 현재 버전에 ‘프록시를 통해 업데이트’ 옵션이 있다면 이미 연결 가능한 상태에서 해당 경로를 시도할 수 있습니다. 사용할 수 있는 노드가 없다면 아직 연결되지 않은 프록시로 최초 업데이트를 진행할 수는 없습니다. 연결 시간 초과, 인증 실패, 구독 내용 파싱 실패를 구분한 뒤 가져오기 방식을 바꿀지 결정하세요.

최종 선택 기준은 세 가지로 정리할 수 있습니다. 데스크톱에서는 운영체제에 맞는 v2rayN 배포 패키지를 먼저 확인하고, 안드로이드에서 Xray 노드를 사용한다면 v2rayNG를 우선 살펴보세요. 기존 V2Fly 설정이 필요한 경우에는 v2flyNG를 선택할 수 있습니다. 클라이언트, 코어, 구독, 트래픽 연결을 각각 기록해 두면 이후 이전과 문제 해결 과정에서 추측을 줄일 수 있습니다.

클라이언트 다운로드