V2Ray는 Project V의 모듈형 네트워크 프록시 설계에서 시작했습니다. 인바운드, 아웃바운드, 라우팅, 전송을 분리해 구성하므로 각 요청을 규칙에 따라 서로 다른 출구로 보낼 수 있습니다. 오늘날 V2Ray를 검색하면 V2Fly, Xray, v2rayN, v2rayNG도 함께 접하게 됩니다. 각 이름은 서로 다른 계층을 가리키므로 같은 설치 패키지의 다른 이름으로 보면 안 됩니다. 각 구성 요소의 역할을 먼저 이해하면 문제가 생겼을 때 확인 범위를 올바른 곳으로 좁힐 수 있습니다.
일상적인 사용에서는 그래픽 클라이언트가 주된 조작 창구입니다. 구독은 연결 구성을 제공하고, 코어는 이를 읽어 연결을 수립합니다. 시스템 프록시나 VPN 인터페이스는 어떤 앱의 요청이 클라이언트로 들어올지 결정하고, 라우팅은 요청이 들어온 뒤의 경로를 정합니다. 네 단계는 서로 관련되어 있지만 서로를 대신할 수는 없습니다. 구독에 성공해도 연결된 것은 아니며, 연결에 성공해도 모든 앱이 프록시를 사용하는 것은 아닙니다. 이 순서대로 확인하면 구독을 반복해서 가져오거나 앱을 재설치하는 것보다 문제를 정확히 찾을 수 있습니다.
프로젝트 배경
모듈형 설계로 설정 이해하기
Project V는 모든 네트워크 동작을 하나의 스위치로 묶는 대신, 각 작업을 조합 가능한 모듈로 나누는 방식을 취합니다. 인바운드는 앱 요청을 받고, 아웃바운드는 목적지나 프록시 서버에 연결하며, 라우팅은 출구를 선택하고, 전송 계층은 연결을 어떤 방식으로 전달할지 정합니다. 클라이언트에 구독, 라우팅, DNS, 수신 포트 등 여러 설정 메뉴가 있는 이유도 이런 역할 분담에 있습니다. 메뉴 이름은 많지만 각 설정에는 적용 범위가 있습니다.
예를 들어 로컬 수신 포트를 바꾸면 앱이 클라이언트에 접속하는 위치가 달라집니다. 원격 서버 포트를 바꾸면 클라이언트가 서버에 접속하는 위치가 달라집니다. 둘 다 포트라고 부르지만 서로 대신할 수는 없습니다. 마찬가지로 전역 라우팅은 코어에 들어온 요청의 경로에 영향을 주지만 시스템 프록시를 무시하는 앱이 자동으로 프록시를 사용하게 만들지는 않습니다. 이런 경계를 이해하면 기본 설정으로 연결을 먼저 만든 다음 라우팅과 트래픽 처리 기능을 단계적으로 추가할 수 있습니다.
기술 자료를 찾을 때는 해당 자료가 어떤 클라이언트, 코어, 설정 계층을 다루는지 함께 확인하세요. 코어 설정 파일을 다루는 글이라고 해서 모든 필드를 그래픽 인터페이스의 입력란에 그대로 넣을 수 있는 것은 아닙니다. 먼저 개념을 파악한 뒤 현재 화면과 대조하면 서로 다른 프로젝트의 설명을 섞어 생기는 오류를 줄일 수 있습니다.
전문 용어 살펴보기 →
코어 계열
각기 발전하는 V2Fly와 Xray
V2Fly 커뮤니티는 V2Ray 관련 구현을 계속 유지 관리하고 있으며, Xray는 관련 코드 기반에서 출발해 독립적으로 발전하는 코어 프로젝트가 되었습니다. 두 프로젝트는 기술적 배경을 공유하지만 구현 방식과 기능 개발 주기는 서로 다릅니다. 사용자에게 중요한 것은 어느 쪽이 더 낫다고 순위를 매기는 일이 아니라 현재 노드에 필요한 프로토콜, 전송 방식, 보안 옵션을 실행 중인 코어가 지원하는지 확인하는 것입니다.
v2rayN은 버전과 구성에 따라 적합한 코어를 사용할 수 있습니다. Android의 v2rayNG는 주로 Xray 코어를 연결 기반으로 사용하고, v2flyNG는 V2Fly 코어를 선택할 수 있습니다. 코어 전환이 모든 문제를 해결하는 것은 아닙니다. 구독 링크 만료, 시스템 시간 오류, 로컬 포트 충돌이 원인이라면 코어를 바꿔도 같은 증상이 계속될 수 있습니다. 먼저 로그에서 문제가 발생한 단계를 확인한 다음 구현을 변경할지 결정하세요.
서버에서 제공한 매개변수를 호환성 확인의 기준으로 삼으세요. 오류 메시지를 없애려고 인증서 검증을 함부로 끄거나 인식하지 못하는 필드를 전부 지운 뒤 사용하지 마세요. 먼저 원래 구성을 보존하고 클라이언트와 코어가 서로 맞는지 확인하세요. 매개변수의 의미를 알기 어렵다면 관련 용어 설명과 문제 해결 안내를 살펴보세요.
증상별 문제 진단 →
오픈 소스 라이선스
세 클라이언트와 각각의 라이선스
v2rayN, v2rayNG, v2flyNG는 모두 오픈 소스 그래픽 클라이언트이며 앱 자체는 무료로 사용할 수 있습니다. 오픈 소스란 프로젝트 코드와 해당 라이선스를 확인할 수 있다는 뜻이지, 원격 서버, 구독 용량, 연결 구성이 자동으로 제공된다는 뜻은 아닙니다. 앱을 설치한 뒤 실제로 연결하려면 접근 권한이 있는 구독을 사용하거나 직접 관리하는 서버 구성을 준비해야 합니다.
오픈 소스 생태계의 모든 구성 요소가 같은 라이선스를 사용하는 것은 아닙니다. v2rayN, v2rayNG, v2flyNG 프로젝트는 GPL-3.0을, V2Fly와 Xray 관련 코어 프로젝트는 MPL-2.0을 사용합니다. 배포 패키지에 포함된 다른 구성 요소에는 별도의 라이선스가 적용될 수도 있습니다. 일반적인 사용과 수정·재배포에는 서로 다른 의무가 따르므로, 코드를 수정하거나 다시 배포할 계획이라면 해당 프로젝트와 구성 요소의 라이선스 전문을 확인하세요.
설정 관리와 네트워크 서비스도 구분해서 봐야 합니다. 클라이언트에서 구독을 저장하고 파싱할 수 있어도 구독의 유효성을 결정할 수는 없으며 서버 운영을 대신하지도 않습니다. 연결 문제가 발생하면 앱 설정, 구성 내용, 원격 서버 상태 중 어느 쪽이 원인인지 먼저 확인한 뒤 적절한 방법으로 대응하세요. 기존 설정을 보존하면서 구성 제공자에게 실제 증상을 명확하게 설명하는 데도 도움이 됩니다.
세 클라이언트 비교하기 →
업데이트 및 확인
앱·코어·구독 업데이트를 따로 관리하세요
앱 업데이트는 화면과 설정 관리 방식을 바꿀 수 있고, 코어 업데이트는 프로토콜 기능과 매개변수 지원에 영향을 줄 수 있습니다. 구독 업데이트는 주로 연결 구성을 새로 고칩니다. 세 가지 업데이트는 목적이 다르므로 문제를 진단하는 동안 한꺼번에 실행하지 않는 것이 좋습니다. 원래 연결되던 상태에서 문제가 생겼다면 장애 전에 바꾼 내용을 기록하고 한 단계씩 확인해야 업데이트가 원인이었는지 판단할 수 있습니다.
업그레이드 전에 구독 그룹과 사용자 지정 라우팅을 저장하고 설치 파일이 현재 운영체제와 프로세서 아키텍처에 맞는지 확인하세요. 업그레이드 후에는 기존 구성으로 기본 연결을 먼저 테스트한 다음 시스템 프록시와 필요한 앱을 확인합니다. TUN이나 앱별 프록시 같은 추가 설정은 기본 연결을 확인한 뒤 적용하세요. 새 기능만 문제를 일으킨다면 검증된 모드로 되돌린 다음 로그를 확인해 권한이나 호환성 문제를 점검하세요.
로그는 실패 단계를 찾는 데 유용하지만 서버 주소, 구독 링크, 기타 민감한 매개변수가 포함될 수 있습니다. 문제를 공유할 때는 필요한 오류 정보만 남기고 인증 정보를 가리세요. 기기 플랫폼, 실행 모드, 영향을 받는 앱도 함께 설명하세요. 처리하지 않은 설정 화면을 통째로 공유하는 것보다 재현 단계를 명확히 적는 편이 도움이 되며, 논의 중 접근 정보가 유출되는 일도 막을 수 있습니다.
자주 묻는 질문 보기 →
처음 설정할 때는 확인 경로를 단순하게 유지하세요. 구독을 가져오고 구성을 하나 선택한 뒤 코어가 실행되는지 확인합니다. 그런 다음 시스템 프록시나 모바일 VPN 모드를 켜고 대상 앱을 테스트하세요. 기본 연결이 정상일 때만 라우팅 규칙, 앱별 목록, TUN 설정을 추가합니다. 각 단계는 개별적으로 되돌릴 수 있어야 이후 문제가 생겨도 확인을 시작할 지점을 찾기 쉽습니다.
브라우저는 되지만 다른 앱에서 실패한다면 모든 노드를 즉시 업데이트하지 말고 먼저 해당 앱의 프록시 진입점을 확인하세요. 모든 구성이 동시에 시간 초과되면 로컬 네트워크와 코어 상태를 먼저 점검하고, 구독 업데이트 결과만 비어 있다면 링크 형식과 요청 방식을 다시 확인하세요. 증상별 안내는 문제 해결에서 순서대로 살펴보거나 빠른 시작에서 기본 사용법을 다시 확인할 수 있습니다.