구독은 서버 설정을 한꺼번에 가져올 때 사용하고, 개별 공유 링크는 서버 항목 하나만 가져옵니다. v2rayN에서는 ‘구독 그룹 설정’에서 주소를 추가하고 저장한 다음 구독을 업데이트하세요. v2rayNG에서는 메뉴에서 같은 이름의 설정으로 이동할 수 있습니다. 클립보드 가져오기는 복사한 공유 링크에 적합합니다. 웹페이지 제목을 설정으로 가져올 수는 없습니다. 가져온 뒤 그룹, 프로토콜, 주소를 확인하고 사용할 서버를 선택하세요. 구독 업데이트에 실패해도 기존 항목은 유지하고, 먼저 링크가 온전한지 확인하세요. 그룹을 반복해서 삭제하지 마세요. 구독 주소에는 접속 정보가 포함될 수 있으므로 화면을 공유할 때 가려야 합니다.
v2rayN
구독 그룹 → 구독 그룹 설정 → 추가
그룹 저장 → 구독 업데이트
v2rayNG
메뉴 → 클립보드에서 가져오기
라우팅은 코어에 전달된 연결을 어떤 아웃바운드로 보낼지 결정하며, 앱이 자동으로 프록시를 사용하게 하지는 않습니다. 처음에는 ‘로컬 네트워크 우회’를 선택해 로컬 기기 주소는 직접 연결하고, 필요에 따라 도메인 규칙을 추가하세요. 규칙은 보통 순서대로 적용되므로 조건이 지나치게 넓은 규칙을 앞에 두면 뒤의 세부 규칙이 적용되지 않을 수 있습니다. 사용자 지정 규칙을 편집할 때는 아웃바운드 태그가 현재 설정과 일치하는지 확인하세요. 필드 이름만 복사해서는 안 됩니다. 시스템 프록시와 달리 라우팅은 코어 내부에서 작동합니다. 앱 트래픽이 코어를 거치지 않으면 규칙을 바꿔도 연결 경로는 달라지지 않습니다.
v2rayN의 ‘시스템 프록시 자동 설정’은 시스템 프록시 주소를 클라이언트의 로컬 수신 포트로 지정합니다. 브라우저처럼 이 설정을 따르는 앱의 트래픽은 코어로 전달됩니다. ‘시스템 프록시 해제’는 시스템 프록시 설정을 되돌리는 기능이며 서버 설정을 삭제하지 않습니다. 라우팅의 전역 프록시는 코어에 들어온 트래픽의 아웃바운드를 결정하므로 두 설정은 서로 대체할 수 없습니다. 일부 앱은 프록시를 별도로 설정해야 하며, TUN은 또 다른 트래픽 전달 방식입니다. 처음에는 시스템 프록시 경로부터 확인하고 여러 트래픽 가로채기 방식을 동시에 사용하지 마세요. 종료 후 네트워크에 문제가 생기면 시스템 프록시 설정이 남아 있는지 확인하세요.
시스템 프록시 → 시스템 프록시 자동 설정
라우팅 → 로컬 네트워크 우회
사용을 마쳤을 때:
시스템 프록시 → 시스템 프록시 해제
코어는 프로토콜 핸드셰이크와 전송, 라우팅을 처리하고 클라이언트 UI는 설정을 입력하는 곳입니다. v2rayNG는 주로 Xray를 사용하고, v2flyNG는 V2Fly 코어 생태계를 위한 클라이언트입니다. v2rayN에서 선택할 수 있는 코어는 배포 패키지와 프로토콜 유형에 따라 달라집니다. 코어를 바꾸기 전 프로토콜, 전송 방식, 보안 계층, 확장 필드를 함께 확인하세요. 이름이 비슷하다고 호환된다고 판단해서는 안 됩니다. 예를 들어 REALITY는 보안 계층 관련 기술이며 VMess와 같은 종류의 독립 프로토콜이 아닙니다. 코어를 바꾼 뒤에는 설정을 다시 생성하고 로그를 확인하세요. 기존 사용자 지정 JSON도 별도로 점검해야 합니다.
DNS는 도메인 이름을 IP 주소로 변환합니다. 조회에 사용하는 서버와 최종 연결에 사용하는 아웃바운드는 서로 다른 개념입니다. 브라우저의 보안 DNS, 시스템 리졸버, 코어 내장 DNS가 동시에 작동할 수 있습니다. 클라이언트에서 한 항목만 바꿔도 모든 앱이 같은 조회 경로를 사용한다는 뜻은 아닙니다. 도메인 접속에 실패하면 먼저 오류 내용을 기록하고 앱 트래픽이 프록시로 전달되는지 확인하세요. 그런 다음 DNS 서버에 접근할 수 있는지, 라우팅에 DNS 조회가 필요한지, IPv6를 사용할 수 있는지 점검하세요. 아래 예시는 내장 DNS의 서버 필드만 설명하며, 그 자체로 연결 가능한 설정이 되지는 않습니다. 완전한 라우팅 설정을 대신하지도 않습니다.
v2rayN은 Desktop과 기존 WPF, 두 가지 인터페이스를 제공합니다. Desktop은 크로스 플랫폼 UI를 사용하고 WPF는 익숙한 데스크톱 조작 방식을 유지합니다. 두 버전 모두 구독 가져오기와 프록시 설정을 마쳐야 합니다. 처음 설치할 때는 다운로드 페이지의 안내에 따라 운영체제와 실행 환경을 확인하세요. 한 인터페이스의 설정 경로를 다른 인터페이스에 그대로 적용하지 마세요.
압축 파일은 쓰기 가능한 별도 폴더에 풀고 압축 프로그램 창 안에서 바로 실행하지 마세요. 기존 설정을 옮기기 전에는 이전 인스턴스를 종료하고 설정을 백업한 뒤 로컬 수신 포트가 충돌하는지 확인하세요. 시작 오류가 발생하면 먼저 실행 환경 안내를 확인하고 그다음 프록시 설정을 점검하세요.
먼저 ‘이 Mac에 관하여’에서 칩 정보를 확인하세요. Apple 칩이면 Apple Silicon, Intel 프로세서면 Intel을 선택합니다. 설치 후 앱을 고정된 위치에 두고 시스템에 표시되는 보안 및 네트워크 권한 안내를 처리하세요. 아키텍처를 잘못 선택하면 앱이 실행되지 않을 수 있으며, 구독 설정을 바꿔도 해결되지 않습니다.
시스템 프록시와 더 광범위한 네트워크 트래픽 전달에는 서로 다른 권한이 필요합니다. 처음에는 기본 프록시 연결을 먼저 확인하는 것이 좋습니다. 개발자 확인 안내가 표시되면 설치 출처와 시스템 안내 내용을 확인한 뒤 해당 가이드를 따르세요. 안내를 없애려고 시스템 보호 설정을 한꺼번에 끄지 마세요.
Xray 코어를 사용하는 v2rayNG를 먼저 확인하세요. V2Fly 코어 설정이 필요한 경우 v2flyNG를 고려할 수 있습니다. 비교적 최신 기기는 arm64를 선택할 수 있으며, 아키텍처를 모르면 시스템 정보를 확인하거나 범용 패키지를 선택하세요. 두 클라이언트는 설정을 각각 관리하므로 다른 클라이언트를 설치해도 기존 구독이 자동으로 옮겨지지 않습니다.
처음 연결할 때는 보통 시스템의 VPN 권한 승인이 필요합니다. 백그라운드 연결이 끊기면 먼저 배터리 최적화와 백그라운드 실행 제한을 확인하세요. 프로토콜 매개변수부터 바꿀 필요는 없습니다. 한 번에 VPN 트래픽을 처리하는 앱은 하나로 정해 두세요. 테스트가 끝나면 사용하지 않는 연결을 끄고 앱 간 트래픽 제어 충돌을 서버 문제로 오인하지 않도록 하세요.
배포판의 패키지 관리 방식에 따라 deb 또는 rpm을 선택하고, x64와 arm64 중 아키텍처를 확인하세요. 설치 파일 형식, 프로세서 아키텍처, 데스크톱 실행 환경은 서로 다른 조건입니다. 파일을 다운로드할 수 있다고 해서 현재 시스템에서 반드시 실행되는 것은 아닙니다. 의존성 오류가 발생하면 먼저 패키지 관리자가 표시한 내용을 확인하세요.
시스템 프록시 지원 여부는 데스크톱 환경마다 다르며 일부 프로그램은 프록시 주소를 별도로 설정해야 합니다. 먼저 프록시를 지원하는 앱으로 로컬 수신 포트를 확인한 다음 다른 트래픽 전달 방식을 사용할지 결정하세요. 추가 권한이 필요한 기능은 용도를 이해한 뒤에만 켜고, GUI 클라이언트를 장기간 높은 권한으로 실행하지 않는 것이 좋습니다.
V2Ray는 Project V의 모듈형 프록시 도구 생태계에서 시작했습니다. 트래픽 진입, 아웃바운드 연결, 전송 방식과 라우팅 규칙을 분리해 구성하므로 하나의 코어를 다양한 사용 환경에 적용할 수 있습니다. GUI에서 입력한 서버 정보는 보통 코어가 읽는 설정으로 변환됩니다. 따라서 ‘V2Ray’는 기술 생태계를 가리킬 때도 있고 특정 코어를 가리킬 때도 있습니다. 이를 단순히 데스크톱 창이나 Android 앱 하나로 이해해서는 안 됩니다.
처음 사용하는 사람에게 이런 계층 구조가 유용한 이유는 문제를 단계별로 확인할 수 있기 때문입니다. 앱이 로컬 프록시에 연결되는지, 코어가 정상적으로 시작되는지, 서버 매개변수가 일치하는지는 각각 다른 단계에서 확인해야 합니다. 문제가 어느 계층에서 발생했는지 먼저 파악해야 이후의 변경도 근거를 갖습니다. GUI 앱을 다시 설치해도 서버 측 인증서 문제는 자동으로 해결되지 않으며, 구독을 바꿔도 로컬 포트 충돌은 없어지지 않습니다.
V2Fly와 Xray: 같은 계보에서 발전했지만 기능은 다릅니다
V2Fly는 커뮤니티가 유지·개발하는 V2Ray의 후속 프로젝트이며, Xray는 관련 코드 기반에서 분기해 독자적인 기능 개발 경로를 형성했습니다. 두 코어는 일부 설정 개념을 공유하지만 확장 기능, 필드 지원 범위, 업데이트 주기는 완전히 같지 않습니다. 설정을 읽을 때는 클라이언트 이름에 같은 글자가 들어 있는지만 보지 말고 실제 사용하는 코어를 기준으로 지원 여부를 확인하세요. 기술 참고 자료에서는 프로토콜과 보안 계층을 나누어 비교해 필요한 기능을 확인할 수 있습니다.
VMess, VLESS, Trojan, Shadowsocks는 프로토콜이고 WebSocket 등은 전송 방식이며 TLS와 REALITY는 보안 계층에 해당합니다. 서로 배타적인 같은 종류의 목록이 아닙니다. 구독에 익숙한 프로토콜 이름이 있더라도 설정 전체가 호환된다는 뜻은 아닙니다. 전송 방식, 보안 계층, 서버 이름과 관련 확장 항목도 확인해야 합니다. 서버와 클라이언트 매개변수는 서로 맞아야 하며, 프로토콜만 임의로 바꾸면 보통 연결할 수 없습니다.
오픈 소스 클라이언트 3종: 인터페이스와 코어는 별도로 관리
v2rayN은 데스크톱용으로 서버 목록, 구독 그룹, 시스템 프록시, 라우팅 등을 설정하는 GUI를 제공합니다. v2rayNG는 Android 기기용이며 주로 Xray 코어와 함께 사용합니다. v2flyNG는 V2Fly 코어를 사용하는 Android 환경을 제공합니다. 세 프로젝트 모두 오픈 소스 클라이언트이며 클라이언트 자체가 서버 서비스는 아닙니다. 설치 후에도 접근 권한이 있는 서버 설정이 필요합니다. 클라이언트 이름만으로 구독 출처의 신뢰성을 판단할 수는 없습니다.
오픈 소스 라이선스는 코드의 사용, 수정, 배포 조건을 정할 뿐 모든 네트워크 환경에서 연결을 보장하지는 않습니다. GUI 앱, 코어, 의존 구성 요소에는 서로 다른 라이선스가 적용될 수 있으므로 구체적인 권리와 의무는 해당 배포 자료에서 확인하세요. 오픈 소스 생태계의 실질적인 가치는 구현 방식과 설정 로직을 논의하고 검토하며 개선할 수 있다는 점입니다. 프로젝트가 오픈 소스라는 사실만으로 성능이나 개인정보 보호 수준을 단정할 수는 없습니다.
업데이트 방식: 클라이언트와 구독을 따로 관리
클라이언트 업데이트는 보통 인터페이스, 설정 생성 로직, 의존성, 함께 제공되는 코어를 갱신합니다. 구독 업데이트는 서버 목록을 새로 가져옵니다. 둘은 해결하는 문제가 다릅니다. 특정 프로토콜 기능이 없으면 코어 지원 여부와 클라이언트의 설정 생성 기능을 확인하세요. 주소가 만료되었거나 서버 매개변수가 바뀌었다면 구독을 확인해야 합니다. 구독을 업데이트했다고 클라이언트까지 업그레이드된 것은 아니며, 인터페이스를 업데이트해도 사용자 지정 설정이 모두 자동으로 호환되는 것은 아닙니다.
업데이트 전에는 로컬 설정을 백업하고 현재 사용하는 프록시 방식과 라우팅 규칙을 기록하세요. 업데이트 후에는 기존의 기본 연결부터 확인한 다음 사용자 지정 DNS, 규칙, 고급 트래픽 전달 방식을 차례로 복원하세요. 새로운 오류가 발생하면 로그를 보관하고 업데이트 전후 설정을 비교하세요. 다운로드 페이지에서 설치 파일을 확인할 수 있습니다. 홈페이지에는 특정 버전을 고정해 표시하지 않아 클라이언트 선택과 잦은 릴리스 변경을 혼동하지 않도록 했습니다.
초기 설정 / 빠른 점검
연결 전 자주 묻는 질문
처음 사용하는 순서에 따라 아래 항목을 확인하세요. 한 번에 한 가지만 바꾸고 다시 테스트하면 문제 해결 과정을 명확하게 추적할 수 있습니다.
클라이언트를 설치했는데 서버 목록이 비어 있는 이유는 무엇인가요?
클라이언트는 설정을 관리하고 코어를 실행하는 도구이며, 설치 파일에 서버 정보가 포함되어 있지는 않습니다. 먼저 완전한 공유 링크를 가져오거나 구독 그룹에 구독 주소를 추가한 뒤 업데이트하세요. 업데이트 후에도 목록이 비어 있다면 그룹 필터, 링크 유효성, 응답 형식을 확인하세요. 웹페이지 주소나 설명 문구를 공유 링크로 가져오면 안 됩니다. 가져오기 단계 보기 →
연결됨으로 표시되는데 일부 앱에서 프록시가 작동하지 않는 이유는 무엇인가요?
연결됨 표시는 보통 클라이언트나 코어가 실행 중임을 뜻하며 모든 앱의 트래픽이 전달된다는 의미는 아닙니다. 데스크톱에서는 시스템 프록시가 설정되어 있는지, 대상 앱이 시스템 설정을 따르는지 확인하세요. Android에서는 앱별 라우팅이 켜져 있는지도 확인해야 합니다. 라우팅은 코어에 들어온 트래픽만 처리하므로 진입 경로가 없을 때 라우팅 모드만 바꿔서는 해결되지 않습니다. 프록시 모드 안내 보기 →
연결에 실패하면 DNS와 프로토콜 중 무엇을 먼저 바꿔야 하나요?
먼저 로그에서 오류가 발생한 단계를 확인하세요. 연결 시간 초과, 도메인 조회 실패, 인증서 검증 실패, 설정 파싱 실패는 각각 다른 방식으로 해결해야 합니다. 시스템 시간, 서버 주소, 포트, 보안 계층 매개변수를 확인한 다음 오류에 따라 DNS를 점검하세요. 프로토콜은 서버 설정과 일치해야 하며, 프로토콜을 임의로 바꾸는 것은 일반적인 해결책이 아닙니다. DNS 문제 해결 단계 보기 →
기기를 바꿀 때 클라이언트 설정 전체를 그대로 복사해도 되나요?
먼저 구독이나 호환되는 공유 링크를 옮긴 다음 각 기기의 시스템 프록시, 수신 주소, 라우팅을 따로 설정하세요. 데스크톱 환경과 Android 기기는 디렉터리, 포트 사용 여부, 네트워크 권한이 다릅니다. 사용자 지정 JSON도 특정 코어 필드에 의존할 수 있습니다. 옮긴 뒤에는 기본 설정 하나로 먼저 테스트하고 정상 작동을 확인한 다음 복잡한 규칙을 복원하세요. 설정 호환성 확인 →
사용 팁 / 최근 가이드
설치 및 문제 해결 기록
플랫폼 권한, 구독 업데이트, 설정 구조를 중심으로 사용 방법을 보충합니다. 문제가 생기면 오류 원문을 먼저 보관하고 해당 점검 항목을 확인하세요. 모든 구성 요소를 처음부터 다시 설치할 필요는 없습니다.
구독을 업데이트한 뒤 목록이 비어 있어도 클라이언트 연결이 불가능하다는 뜻은 아닙니다. 링크 유효성, Base64 인코딩 형식, 업데이트 시 프록시 사용 여부, User-Agent, 그룹 설정을 차례로 확인해 가져오기 실패, 콘텐츠 파싱 실패, 목록 필터로 인한 빈 화면을 구분하세요.
로그, DNS, 인바운드, 아웃바운드부터 라우팅까지 클라이언트가 생성한 설정을 단계별로 살펴봅니다. tag와 outboundTag의 참조 관계를 확인하고 각 규칙이 어떤 아웃바운드에 영향을 주는지 파악한 뒤 직접 편집할지 결정하세요. 설정 조각을 그대로 이어 붙여 사용하지 마세요.