v2rayN, v2rayNG, v2flyNG 비교: V2Ray 클라이언트별 커널과 지원 플랫폼

v2rayN, v2rayNG, v2flyNG의 지원 플랫폼과 내장 커널, 구독·라우팅 기능을 비교하고 데스크톱과 안드로이드 사용 환경에 맞는 클라이언트를 안내합니다.

핵심 내용

데스크톱에서는 v2rayN의 운영체제와 아키텍처 지원 여부를 먼저 확인하세요. 안드로이드에서 Xray 노드를 사용한다면 v2rayNG를 우선 고려하고, V2Fly 커널이 꼭 필요한 경우 v2flyNG를 검토하면 됩니다. 이 글에서는 클라이언트와 커널, 노드 프로토콜의 차이를 구분하고, 같은 구독 주소에서도 가져오기 결과가 달라질 수 있는 이유를 설명합니다. 두 기기에서의 설정과 포트 확인, 마이그레이션 절차도 함께 살펴봅니다. 기능 지원 여부를 먼저 확인한 뒤 실제 네트워크 성능을 비교하고, 이름이 비슷하다는 이유만으로 호환성을 판단하지 마세요.

플랫폼과 커널: 설치할 클라이언트부터 확인

v2rayN, v2rayNG, v2flyNG는 모두 클라이언트이며 노드 서버가 아닙니다. 클라이언트는 서버 정보를 관리하고 설정을 생성한 뒤 커널을 실행해 운영체제나 앱에 프록시 연결을 제공합니다. 커널은 프로토콜과 전송, DNS, 라우팅 규칙을 처리합니다. 클라이언트를 설치해도 사용할 수 있는 서버가 자동으로 생기지는 않으며, 구독 주소도 신뢰할 수 있는 출처에서 받아야 합니다.

이름은 비슷하지만 데스크톱 버전과 안드로이드 버전이 완전히 짝을 이루는 것은 아닙니다. v2rayN은 데스크톱용으로, 인터페이스와 사용할 수 있는 커널은 배포 패키지에 따라 다릅니다. v2rayNG는 안드로이드용이며 Xray 커널을 사용하고, v2flyNG도 안드로이드용이지만 V2Fly 커널을 사용합니다. 안드로이드 클라이언트 두 제품은 인터페이스가 비슷하더라도 모든 설정을 서로 바꿔 쓸 수 없습니다.

클라이언트 지원 플랫폼 커널 선택 전 확인 사항
v2rayN Windows、macOS、Linux Xray, sing-box 등의 커널을 관리할 수 있으며, 지원 여부는 배포 패키지에 따라 다릅니다 운영체제, 프로세서 아키텍처, 데스크톱 인터페이스, 실제로 실행되는 커널
v2rayNG Android Xray 커널 노드 프로토콜, 전송 매개변수, Android 시스템 요구 사항
v2flyNG Android V2Fly 커널 노드에서 해당 커널이 지원하는 프로토콜과 설정 형식을 사용하는지 확인

Windows는 인터페이스가 다르더라도 이를 서로 다른 노드 프로토콜로 보면 안 됩니다. macOS와 Linux도 해당 운영체제용 설치 패키지를 선택해야 합니다. 먼저 다운로드 페이지에서 운영체제와 x64, arm64 등의 아키텍처를 확인한 다음, 클라이언트 실행 로그에서 커널 이름과 버전을 확인하세요. 클라이언트 버전과 커널 버전은 별개의 정보이므로 문제를 해결할 때 각각 기록해야 합니다.

노드 프로토콜: V2Ray 클라이언트라고 설정까지 모두 호환되는 것은 아닙니다

‘V2Ray 지원’은 포괄적인 표현일 뿐, 구체적인 설정을 대신하지 않습니다. 가져오기 전에 프로토콜, 서버 주소와 포트, 인증 정보, 전송 방식, 보안 설정을 확인하세요. VMess와 VLESS는 프록시 프로토콜이고 WebSocket과 gRPC는 전송 방식입니다. TLS와 REALITY는 연결 보안 설정에 해당합니다. 각 항목은 서로 다른 계층에 있으므로 서로 대체할 수 없습니다.

v2rayNG: 안드로이드용 Xray 설정

추천

안드로이드에서 Xray가 지원하는 VLESS 및 REALITY 설정을 사용해야 한다면 v2rayNG를 우선 확인하세요. 연결 여부는 포함된 커널 버전과 공개 키, serverName, shortId 등의 매개변수가 제대로 입력되었는지에 따라 달라집니다.

추천 용도: 안드로이드 일상 사용, Xray 노드 매개변수가 이미 정해진 경우

v2flyNG: 안드로이드용 V2Fly 설정

기존 V2Fly 설정을 사용하거나 V2Fly 환경에서의 동작을 확인할 때 적합합니다. VMess와 WebSocket 등의 조합도 항목별로 확인해야 하며, Xray의 REALITY 설정을 이 커널에 그대로 적용할 수는 없습니다.

추천 용도: 특정 V2Fly 환경, 기존 호환 설정 유지

v2rayN: 데스크톱 설정 관리

데스크톱에서 구독, 노드, 라우팅을 한곳에서 관리할 수 있습니다. 가져오기는 성공했지만 노드가 시작되지 않는다면 노드 목록에 이름이 표시되는지만 볼 것이 아니라 실제로 호출되는 커널을 확인하세요.

추천 용도: 데스크톱 브라우저, 개발 도구, 여러 구독 관리

예를 들어 서버 포트가 443이라고 해서 TLS를 반드시 활성화해야 하는 것은 아니며, 도메인을 임의로 입력해도 된다는 뜻도 아닙니다. WebSocket의 path, 요청 Host, TLS의 serverName은 각각 용도가 다릅니다. 값이 같을 수도, 다를 수도 있으므로 서버에서 제공한 매개변수대로 입력하고 노드 이름만 보고 추측하지 마세요.

결론: 커널을 먼저 확인한 다음 가져오기 결과를 점검하세요

가져오기에 실패하면 공유 형식과 지원 필드를 확인하세요. 가져오기는 됐지만 커널이 시작되지 않는다면 프로토콜과 커널의 호환성을 살펴보세요. 안드로이드 노드에 REALITY가 명시되어 있다면 v2rayNG의 커널과 매개변수부터 확인하세요. 노드 별칭을 바꾸거나 QR 코드를 반복해서 스캔해도 해결되지 않습니다.

구독 관리: 주소를 공유해도 모든 설정이 동기화되지는 않습니다

구독은 보통 여러 노드를 한꺼번에 가져오는 데 사용됩니다. 같은 주소라도 클라이언트에 따라 결과가 달라질 수 있습니다. 구독 서비스가 클라이언트 유형에 따라 다른 내용을 반환하거나, 클라이언트 파서가 지원되지 않는 프로토콜을 제외할 수 있기 때문입니다. 노드 수가 다르다고 바로 네트워크 문제로 단정하지 말고 다운로드 실패, 파싱 실패, 일부 노드 미지원 여부를 구분하세요.

  1. 노드 하나부터 확인하세요. 신뢰할 수 있는 출처에서 받은 공유 링크를 클라이언트에서 클립보드로 가져오거나 QR 코드로 스캔하세요. 연결이 성공한 뒤 전체 구독을 추가하면 문제 범위를 좁히기 쉽습니다.
  2. 그다음 구독 그룹을 만드세요. v2rayN에서는 보통 ‘구독 그룹’ → ‘구독 그룹 설정’을, v2rayNG에서는 사이드 메뉴 → ‘구독 그룹 설정’을 선택합니다. 그룹 이름과 주소를 입력한 다음 업데이트하세요. 버전에 따라 메뉴 문구가 다를 수 있으므로 현재 화면의 구독 그룹 관리 메뉴를 기준으로 진행하세요.
  3. 직접 연결 업데이트와 프록시 업데이트를 구분하세요. 주소에 직접 접속할 수 있으면 먼저 직접 연결로 업데이트하세요. 기존 연결을 통해서만 접근할 수 있다면 프록시를 통한 업데이트를 선택하면 됩니다. 프록시 업데이트에는 작동하는 노드가 필요하므로 모든 노드가 끊긴 상태에서는 스스로 복구할 수 없습니다.
  4. 구독 인증 정보를 보호하세요. 구독 URL에 액세스 토큰이 포함될 수 있으므로 전체 주소를 공개 스크린샷이나 문제 해결 기록에 올리지 마세요. 도움을 요청할 때는 오류 유형과 응답 상태, 일부를 가린 도메인 정보만 남기세요.

구독 업데이트는 일반적으로 시스템 프록시, 앱별 목록, 라우팅 우선순위, 로컬 리스닝 포트를 동기화하지 않습니다. 컴퓨터와 휴대폰에서 같은 구독을 사용해도 연결 방식과 DNS 정책은 서로 다를 수 있습니다. 업데이트 후에는 현재 활성 노드가 그대로 있는지도 확인해 목록만 갱신되고 실제 선택은 바뀌지 않는 상황을 방지하세요.

두 기기에서 사용하기: 같은 구독을 쓰고 연결은 각각 설정

데스크톱: v2rayN
  • 구독을 추가한 뒤 호환되는 커널과 노드를 선택하세요.
  • 먼저 시스템 프록시를 사용해 브라우저 연결을 확인하세요.
  • 필요한 경우 개발 도구에 로컬 프록시 주소를 입력하세요.
안드로이드: v2rayNG
  • 같은 출처에서 제공하는 호환 구독 주소를 사용하세요.
  • 시스템 VPN 연결 권한을 승인하세요.
  • 앱별 필요에 따라 연결 대상 앱을 따로 설정하세요.

노드 출처는 공유할 수 있지만 목록이 같은지는 구독 응답과 프로토콜 지원 여부에 달려 있습니다. 라우팅과 앱별 설정은 두 기기에서 각각 관리해야 합니다.

라우팅과 연결 범위: 데스크톱 시스템 프록시와 안드로이드 VPN 모드의 차이

v2rayN의 시스템 프록시는 시스템 설정을 따르는 앱에 로컬 프록시를 사용하도록 알리는 기능이며, 모든 트래픽을 가로채는 것은 아닙니다. 일부 명령줄 도구와 게임, 자체 네트워크 스택을 사용하는 프로그램은 시스템 프록시를 따르지 않을 수 있습니다. 데스크톱 TUN 모드는 더 많은 트래픽을 연결할 수 있지만 권한, 가상 네트워크 어댑터, 라우팅 설정도 필요합니다. 일반 프록시가 정상 작동하는 것을 확인한 뒤 사용하는 편이 좋습니다.

안드로이드의 v2rayNG와 v2flyNG는 VpnService를 통해 로컬 VPN 인터페이스를 만들고, 선택한 앱의 트래픽을 클라이언트에서 처리할 수 있습니다. 시스템에 VPN 아이콘이 표시된다는 것은 로컬 인터페이스가 만들어졌다는 뜻일 뿐, 원격 노드 연결까지 확인된 것은 아닙니다. 앱별 목록에 따라 이 경로를 이용할 앱이 정해지고, 연결된 트래픽을 프록시로 보낼지 직접 연결할지는 라우팅 규칙이 결정합니다.

로컬 포트: 정확한 주소로 데스크톱 연결 확인

포트 확인은 ‘클라이언트는 실행 중으로 표시되지만 특정 도구가 인터넷에 연결되지 않는’ 문제를 진단하는 데 유용합니다. 다음 예시에서는 SOCKS 주소를 127.0.0.1:10808, HTTP 주소를 127.0.0.1:10809로 직접 설정했습니다. 이 값이 모든 배포판의 기본값은 아닙니다. 현재 버전에서 혼합 포트나 다른 포트를 사용한다면 설정 화면과 시작 로그를 기준으로 확인하세요.

10808
이 예시에서 직접 설정한 SOCKS 리스닝 포트
10809
이 예시에서 직접 설정한 HTTP 리스닝 포트

v2rayN의 ‘설정’ → ‘매개변수 설정’에서 로컬 리스닝 관련 항목을 확인하세요. 인터페이스 버전에 따라 메뉴 그룹 이름이 다를 수 있습니다. 도구가 HTTP 프록시만 지원한다면 SOCKS 포트를 임의로 입력하지 말고 실제 HTTP 서비스 주소를 사용하세요. 아래 명령은 예시에 나온 포트가 리스닝 중인지 확인할 뿐, 원격 노드가 작동하는지는 확인하지 않습니다.

# Windows PowerShell: 이 예시의 로컬 연결 지점 두 곳 확인
Get-NetTCPConnection -State Listen -LocalPort 10808,10809

# Linux: 로컬 리스닝 포트 확인
ss -lnt

# macOS: 로컬 TCP 리스닝 확인
lsof -nP -iTCP -sTCP:LISTEN

리스닝 포트가 없으면 커널이 정상적으로 시작됐는지, 설정 오류가 있는지, 다른 프로세스가 포트를 사용 중인지 먼저 살펴보세요. 리스닝 중인데도 대상 도구가 연결되지 않으면 도구에 입력한 프록시 유형과 주소를 확인하세요. 기본적으로 연결 주소는 루프백으로 제한하세요. LAN 기기에서 사용해야 한다면 리스닝 주소와 방화벽, 접근 제어를 별도로 검토하고 로컬 포트를 인터넷에 직접 공개하지 마세요.

마이그레이션 및 문제 해결: 설정값은 보존하고 항목별로 확인

v2rayN에서 안드로이드 클라이언트로 옮길 때는 데스크톱 실행 설정 전체보다 구독 주소나 단일 노드 공유 링크를 가져오는 편이 좋습니다. 생성된 전체 설정에는 데스크톱 인바운드, 파일 경로, 규칙 리소스 위치, 특정 커널 전용 필드가 포함될 수 있습니다. 원래 기기에서 작동한다고 해서 휴대폰에 그대로 가져올 수 있는 것은 아닙니다.

  1. 기존 노드의 프로토콜, 전송 방식, 보안 설정과 주요 필드를 기록하고, 공개하지 않을 설정 백업을 보관하세요.
  2. 새 클라이언트에 노드 하나를 먼저 가져오고 기본 연결 설정을 유지한 상태에서 실제 웹페이지나 서비스 요청을 테스트하세요.
  3. 그다음 구독을 추가하고 라우팅과 앱별 목록을 설정하세요. 설정 항목을 하나씩 바꿀 때마다 다시 테스트해 여러 변수를 동시에 추가하지 않도록 하세요.
  4. 속도를 비교할 때는 노드와 대상, 네트워크, 테스트 시간을 동일하게 맞추세요. 안드로이드에서는 같은 Wi-Fi 또는 모바일 네트워크를 사용해 네트워크 차이를 커널 차이로 오해하지 않도록 해야 합니다.

컴퓨터에서는 되는데 휴대폰에서 가져온 뒤 노드 수가 줄어드는 이유는 무엇인가요?

두 기기의 구독 주소와 업데이트 시간을 먼저 확인한 다음, 업데이트 로그에서 파싱 실패 여부를 살펴보세요. 특정 프로토콜의 노드만 누락됐다면 안드로이드 클라이언트의 커널이 해당 프로토콜을 지원하는지 확인하세요. 목록 전체가 비어 있다면 응답이 정상적인 구독 데이터인지, 로그인 페이지나 오류 페이지가 반환된 것은 아닌지 먼저 확인해야 합니다.

v2rayNG가 연결됐는데 특정 앱 하나만 열리지 않으면 어떻게 해야 하나요?

설정에서 앱별 프록시 페이지를 열어 목록 모드와 해당 앱의 포함 여부를 확인하세요. 이어서 라우팅 규칙과 로그를 살펴보세요. 다른 앱은 정상이라면 모든 노드를 바로 바꾸기보다 앱 연결 설정의 차이부터 해결하세요.

v2flyNG에서 Xray 전체 설정을 그대로 가져올 수 있나요?

전체 설정이 호환된다고 전제해서는 안 됩니다. 먼저 노드 프로토콜이 V2Fly에서 지원되는지 확인하고, 공유 링크를 사용하거나 수동으로 입력해 노드를 다시 구성하세요. REALITY처럼 Xray 전용 설정이 필요하다면 이를 지원하는 클라이언트와 커널을 선택해야 합니다. 보안 필드를 삭제한 채 강제로 실행하지 마세요.

v2rayNG로 바꾸면 v2flyNG보다 항상 빠른가요?

그렇게 판단할 수는 없습니다. 두 클라이언트가 모두 지원하는 같은 노드 조합을 같은 네트워크에서 사용해 실제 요청과 연결 안정성, 지속 전송을 비교하세요. 프로토콜이나 회선이 서로 다르면 테스트 결과만으로 클라이언트 성능을 평가할 수 없습니다.

클라이언트 선택은 세 단계로 정리할 수 있습니다. 먼저 데스크톱과 안드로이드 중 사용할 플랫폼을 정하고, 노드 프로토콜에 맞는 커널을 확인한 다음, 앱 범위에 따라 연결과 라우팅을 설정하세요. 데스크톱에서는 v2rayN을, 안드로이드에서 Xray 기능이 필요하면 v2rayNG를 우선 확인하세요. V2Fly에 의존하는 환경이라면 v2flyNG를 사용하면 됩니다. 용어를 더 확인하려면 용어 안내서를, 연결과 트래픽 분할 설정은 사용 설명서를 참고하세요.

클라이언트 다운로드