VMess
V2Ray 생태계에서 사용하는 프록시 프로토콜로, 사용자 식별자로 인증하며 자체 데이터 보호 기능도 갖추고 있습니다. 설정할 때는 사용자 식별자, 프로토콜 옵션, 하위 전송 설정을 각각 확인해야 합니다. 서버 주소만 입력해서는 충분하지 않습니다. 오래된 튜토리얼의 호환성 옵션이 현재 구현에 적용되지 않을 수 있으므로, 연결 오류가 발생하면 먼저 코어 버전과 서버 요구 사항을 확인하세요.
용어 참고 / CONCEPT REFERENCE
프로토콜, 코어, 설정, 라우팅의 개념과 경계를 정리합니다. 용어가 어느 계층에 속하는지 확인한 뒤 클라이언트 설정과 JSON 필드를 살펴보세요.
01 / PROTOCOL & TRANSPORT
프록시 프로토콜은 인증과 데이터 형식을 정하고, 전송 방식은 연결을 전달하며, 보안 계층은 통신을 보호합니다. 노드 설정에는 보통 이 세 종류의 매개변수가 함께 들어갑니다. 이름이 비슷해도 서로 바꿔 쓸 수 있는 것은 아닙니다.
V2Ray 생태계에서 사용하는 프록시 프로토콜로, 사용자 식별자로 인증하며 자체 데이터 보호 기능도 갖추고 있습니다. 설정할 때는 사용자 식별자, 프로토콜 옵션, 하위 전송 설정을 각각 확인해야 합니다. 서버 주소만 입력해서는 충분하지 않습니다. 오래된 튜토리얼의 호환성 옵션이 현재 구현에 적용되지 않을 수 있으므로, 연결 오류가 발생하면 먼저 코어 버전과 서버 요구 사항을 확인하세요.
간결한 인증 구조가 특징인 프록시 프로토콜입니다. 프로토콜 자체는 페이로드를 암호화하지 않으며, TLS 또는 REALITY와 함께 사용하는 경우가 많습니다. VLESS, 전송 방식, 보안 계층은 서로 다른 설정 항목이므로 하나를 선택한다고 나머지 매개변수가 자동으로 설정되지는 않습니다. 특정 흐름 제어 옵션을 사용한다면 양쪽 코어의 지원 여부도 확인해야 합니다.
일반적으로 TLS 연결을 기반으로 하며 비밀번호로 인증하는 프록시 프로토콜입니다. 연결 성공 여부는 비밀번호뿐 아니라 포트, 서버 이름, 인증서 검증 설정에도 달려 있습니다. 인증서 오류가 나면 이름 일치, 신뢰 체인, 기기 시간을 확인하세요. 검증을 바로 끄는 것은 바람직하지 않습니다.
정해진 암호화 방식과 자격 증명으로 프록시 트래픽을 전송하는 프로토콜 계열입니다. 규격과 암호화 방식에 따라 키 형식이나 구현 버전 요구 사항이 다를 수 있으므로, 가져온 뒤에도 방식 이름을 확인해야 합니다. VMess, VLESS와는 별개의 프로토콜이며 표시 이름만 바꿔 변환할 수 없습니다.
연결에 암호화, 무결성 보호, 인증을 제공하는 보안 프로토콜이며 프록시 프로토콜 자체와는 다릅니다. 클라이언트에는 올바른 서버 이름이 필요하며 인증서의 신뢰 여부도 검증해야 합니다. SNI는 핸드셰이크에서 대상 이름을 전달합니다. 실제 연결 주소와 다를 수 있지만, 그 차이는 서버 배포 방식에 부합해야 합니다.
Xray 생태계의 전송 보안 방식으로, VLESS와 조합한 연결 설정에서 자주 사용됩니다. 클라이언트에는 서버가 제공한 정보를 바탕으로 공개 키, 서버 이름, 기타 연결 매개변수를 입력해야 합니다. 일반 TLS 설정을 그대로 적용할 수는 없습니다. 인터페이스에서 링크를 인식하더라도 코어가 실행할 수 있다는 뜻은 아니므로 현재 코어 버전의 지원 여부를 확인하세요.
02 / CORE & CLIENT
인터페이스는 설정을 관리하고 코어는 연결을 처리합니다. 시스템 프록시와 TUN은 트래픽이 클라이언트로 들어오는 방식이지, 원격 프록시 프로토콜의 종류가 아닙니다.
네트워크 프록시와 통신 도구를 둘러싼 프로젝트 생태계를 가리키며, V2Ray는 그중 중요한 구성 요소입니다. 이 이름은 특정 GUI 클라이언트를 뜻하지 않으며, 생태계의 모든 구현이 기능을 완전히 공유한다는 의미도 아닙니다. 자료를 읽을 때는 프로젝트 배경, 구체적인 코어, 클라이언트 인터페이스 중 무엇을 가리키는지 확인하세요.
V2Ray 관련 코어 구현을 관리하는 커뮤니티 프로젝트입니다. 코어는 프로토콜 처리, 인바운드 수신, 아웃바운드 연결, 라우팅, DNS 등을 담당합니다. v2flyNG는 이 코어 계열을 사용하는 Android 클라이언트입니다. 설정을 비교할 때는 구체적인 버전을 확인하세요. 파일 이름이 같다고 필드까지 완전히 호환되는 것은 아닙니다.
V2Ray와 역사적 연관이 있는 독립 코어 프로젝트로, 프로토콜 지원과 설정 세부 사항이 자체적으로 발전해 왔습니다. v2rayNG는 Xray 코어를 사용하며, v2rayN의 실제 기능은 선택한 코어를 기준으로 확인해야 합니다. Xray 자료에 설명된 기능이 다른 코어에서도 동일한 설정으로 지원된다고 볼 수는 없습니다.
구독 관리, 노드 선택, 매개변수 설정 화면을 제공하며, 보통 설정 파일을 생성해 하위 코어를 실행하는 앱입니다. v2rayN, v2rayNG, v2flyNG는 클라이언트 이름이지 프로토콜 이름이 아닙니다. 인터페이스 옵션과 연결 기능은 서로 다른 구성 요소가 결정할 수 있으므로 문제를 진단할 때는 클라이언트와 코어 버전을 각각 기록하세요.
운영체제가 앱에 제공하는 프록시 설정으로, 보통 클라이언트의 로컬 수신 주소와 포트를 가리킵니다. 이 설정을 따르는 앱만 해당 진입점을 사용합니다. 명령줄 프로그램이나 자체 네트워크 설정이 있는 앱은 다른 경로를 이용할 수 있습니다. 시스템 프록시를 켜면 진입점은 설정되지만, 요청이 코어에 들어온 뒤 어떤 아웃바운드를 사용할지는 결정되지 않습니다.
가상 네트워크 인터페이스로 IP 패킷을 받는 연결 방식입니다. 시스템 프록시를 따르지 않는 앱의 트래픽 일부를 처리하는 데 사용할 수 있습니다. 실제 적용 범위는 클라이언트 구현, 시스템 권한, 라우팅, 제외 규칙에 따라 달라집니다. 활성화한 뒤에는 DNS 처리와 로컬 네트워크 접근도 확인하세요. 문제가 생기면 다른 네트워크 도구와 라우팅을 놓고 충돌하는지 먼저 살펴보세요.
03 / CONFIGURATION STRUCTURE
설정은 “연결 수신 → 규칙 일치 → 출구 선택” 순서로 읽으면 문제를 찾기 쉽습니다. 아래 이름은 자주 쓰이는 JSON 필드입니다. 전체 예시는 JSON 설정 가이드에서 확인하세요.
객체, 배열, 키-값으로 코어 동작을 정의하는 설정 형식입니다. 문자열과 필드 이름은 큰따옴표로 묶습니다. 문법을 파싱할 수 있다는 것은 형식이 올바르다는 뜻일 뿐, 현재 코어가 해당 필드를 지원한다는 의미는 아닙니다. 클라이언트가 자동 생성한 실행 설정은 다음 저장 때 덮어쓸 수도 있으므로, 수정 전에 설정을 지속적으로 저장하는 위치를 확인하세요.
실행 상태와 오류를 기록하는 설정 항목으로, 파싱 실패, 핸드셰이크 실패, 연결 시간 초과를 찾을 때 주로 사용합니다. 로그 수준에 따라 세부 정보의 양이 달라집니다. 문제를 진단하는 동안 로그 수준을 일시적으로 높이면 도움이 되지만 기록도 많아집니다. 오류가 발생한 시각에 맞춰 로그를 확인하고, 공유하기 전에는 구독 주소, 인증 정보, 불필요한 접속 정보를 삭제하세요.
코어가 연결을 받는 진입점으로, 보통 수신 주소, 포트, 인바운드 프로토콜, 태그를 지정합니다. 로컬 SOCKS 또는 HTTP 프록시 포트가 대표적인 인바운드입니다. 앱은 이 포트에 연결한 뒤 코어의 처리를 받습니다. 루프백 주소만 수신하는 경우와 모든 인터페이스에서 수신하는 경우는 접근 범위가 다르므로, LAN 접근을 허용하기 전에 방화벽과 인증 설정을 확인하세요.
코어가 요청을 내보내는 출구로, 원격 프록시, 직접 연결, 차단 등에 해당합니다. 라우팅 규칙은 보통 아웃바운드 태그를 참조하므로 태그가 규칙에 지정된 값과 일치해야 합니다. 규칙에 일치하지 않는 요청을 어떻게 처리할지도 명확히 확인하세요. 클라이언트 목록의 표시 순서가 최종 생성 설정의 기본 출구라고 단정하지 마세요.
일부 연결의 초기 데이터에서 프로토콜이나 대상 도메인을 식별해 라우팅에 필요한 정보를 보완하는 기능입니다. 임의의 암호화된 페이로드를 해독할 수 없으며 모든 연결에서 도메인을 알아낼 수 있는 것도 아닙니다. 라우팅에만 쓰이는지, 연결 대상에도 영향을 주는지는 구체적인 옵션을 확인해야 합니다. 탐지를 켜는 것만으로 모든 도메인 규칙이 해결되지는 않습니다.
연결 시간 초과, 사용자 수준 관련 동작, 일부 통계 기능을 설정하는 항목이며 도메인별 분할 라우팅 규칙표는 아닙니다. ‘정책’은 클라이언트의 다른 메뉴에도 표시될 수 있으므로 먼저 해당 필드를 확인하세요. 시간 초과를 조정하면 연결을 유지하거나 종료하는 시점이 바뀌지만, 회선 용량이나 서버 응답 속도가 개선되지는 않습니다.
04 / ROUTING & DNS
분할 라우팅은 일치 조건으로 쓸 수 있는 정보에 달려 있고, DNS는 도메인 해석 방식을 결정합니다. 이 설정을 점검할 때는 규칙뿐 아니라 요청이 코어에 들어올 때 도메인으로 전달되는지 IP로 전달되는지도 확인해야 합니다.
도메인, IP, 포트, 프로토콜, 인바운드 태그 등의 조건에 따라 아웃바운드를 선택하는 규칙입니다. 분할 라우팅은 이러한 선택 과정입니다. 규칙은 보통 설정 순서대로 적용되므로, 넓은 범위의 규칙에 가려질 수 있는 구체적인 예외를 먼저 배치하세요. 클라이언트의 ‘중국 본토 우회’와 같은 모드는 일반적으로 규칙 사전 설정의 이름이지 VMess와 같은 프로토콜이 아닙니다.
지역이나 특정 용도별로 구성한 IP 주소 집합으로, 라우팅에서 집합 태그를 이용해 여러 주소를 한꺼번에 매칭할 수 있습니다. 이 정보는 데이터 세트에 따른 주소 분류이지 서버의 실제 위치나 서비스 소속을 실시간으로 측정한 결과가 아닙니다. 웹사이트가 여러 주소를 사용하거나 주소가 바뀌면 일치 결과도 달라질 수 있으므로 실제 연결 대상과 데이터 갱신 시점을 확인하세요.
서비스, 용도 또는 기타 카테고리별로 구성한 도메인 목록입니다. 도메인 규칙을 하나씩 관리하는 수고를 줄일 수 있습니다. 목록의 이름과 내용은 사용하는 데이터 파일에 따라 다르며 모든 코어 환경이 같은 분류를 제공하지는 않습니다. 코어가 대상 IP만 받는다면 도메인 목록과 바로 일치하지 않을 수 있으므로 인바운드 정보와 트래픽 탐지 설정을 확인하세요.
특정 설정 항목에서 도메인 해석을 처리하는 방식을 정하는 옵션입니다. 같은 이름의 필드라도 설정 위치에 따라 의미가 다를 수 있습니다. 라우팅의 IPIfNonMatch는 일반적으로 현재 확보한 정보로 먼저 규칙을 확인하고, 일치하지 않으면 도메인을 해석해 IP 규칙을 적용한다는 뜻입니다. 모든 앱의 DNS 요청을 특정 DNS 서버로 일괄 전달하는 기능은 아닙니다.
앱에 합성 IP를 반환하고 합성 주소와 원래 도메인 간 매핑을 유지합니다. 후속 연결은 매핑을 복원할 수 있는 처리 경로로 들어가야 하며, 합성 주소 자체는 대상 웹사이트의 실제 주소가 아닙니다. 조회와 연결이 서로 다른 경로를 이용하면 앱이 접속하지 못할 수 있으므로 DNS 가로채기, 주소 풀, 라우팅 설정을 함께 점검해야 합니다.
도메인 조회가 의도한 정책과 다른 경로로 처리되는 현상입니다. 먼저 어떤 리졸버와 경로를 사용해야 하는지 확인하세요. 시스템 리졸버, 브라우저 자체 DNS 조회, 앱 내장 DNS가 모두 요청에 관여할 수 있습니다. 테스트 페이지에 표시된 DNS 서버의 지역 정보는 참고 자료일 뿐, 모든 앱의 조회가 같은 정책을 따른다는 증거는 아닙니다.
05 / SUBSCRIPTION & NODE
구독은 연결 매개변수를 배포하고, 노드는 매개변수 기록이며, 테스트 결과는 특정 조건에서의 성능을 나타냅니다. 이 세 가지를 각각 확인해야 하며 한 번의 속도 테스트로 설정 검토를 대신할 수는 없습니다.
클라이언트가 주소 하나를 통해 연결 설정 목록을 가져오고 갱신하는 방식입니다. 구체적인 형식과 내용은 제공자와 클라이언트에 따라 달라집니다. 구독을 갱신해도 라우팅, DNS, 로컬 설정은 동기화되지 않을 수 있으며, 직접 수정한 노드는 다음 갱신 때 덮어써질 수 있습니다. 구독 주소에 접근 자격 증명이 포함될 수 있으므로 인증 정보처럼 안전하게 보관하세요.
클라이언트에 저장된 연결 매개변수 묶음으로, 보통 주소, 포트, 프로토콜, 인증, 전송 설정을 포함합니다. 노드 하나가 독립 서버 한 대에 대응하지 않을 수도 있고, 같은 주소에 서로 다른 설정이 여러 개 연결될 수도 있습니다. 이름에 적힌 지역이나 회선 정보는 설명일 뿐이므로 실제 사용 여부는 연결 결과와 설정 내용을 바탕으로 판단하세요.
연결 매개변수를 텍스트 링크에 담아 전달하는 형식으로, 클라이언트가 클립보드나 QR 코드에서 읽어올 수 있습니다. 가져오기에 성공했다는 것은 내용을 파싱했다는 뜻일 뿐, 모든 매개변수를 완전히 지원하거나 서버를 현재 사용할 수 있다는 뜻은 아닙니다. 공유 링크에 인증 정보가 포함될 수 있으므로 스크린샷, 로그, 공개 문의에 전체 링크를 그대로 올리지 마세요.
한 구독 또는 노드 형식을 다른 형식으로 변환하는 과정으로, 필드 매핑과 미지원 매개변수 처리가 포함될 수 있습니다. 변환으로 대상 클라이언트에 원래 없던 프로토콜 기능을 추가할 수는 없으며 일부 설정 의미가 사라질 수도 있습니다. 변환 서비스를 이용하면 원본 데이터가 제3의 처리 주체에 전달될 수 있으므로 처리 방식과 접근 범위를 먼저 확인하세요.
특정 테스트 방식으로 측정한 응답 시간입니다. 테스트 대상, 네트워크 계층, 시간 초과 조건을 함께 고려해야 합니다. ICMP 탐지, TCP 연결 수립, 프록시를 통한 요청은 서로 다른 항목을 측정하므로 수치를 직접 비교하면 안 됩니다. 지연 시간이 짧아도 다운로드 속도가 빠르다는 뜻은 아닙니다. 처리량은 회선 용량, 혼잡, 서버 부하에도 영향을 받습니다.
클라이언트가 지정된 프록시를 통해 테스트 대상에 연결할 때 측정한 시간으로, 서버 포트만 확인하는 것보다 실제 요청 경로에 가깝습니다. DNS 조회, TLS 핸드셰이크, 응답 수신까지 포함하는지는 현재 클라이언트 구현을 확인해야 합니다. 테스트 성공은 해당 시점에 해당 대상에 접속할 수 있었다는 뜻일 뿐입니다. 시간 초과는 테스트 사이트나 로컬 설정 문제일 수도 있으므로 노드가 고장 났다고 단정할 수 없습니다.
요청이 클라이언트에 들어오는지 모르겠다면 시스템 프록시와 인바운드를 먼저 확인하세요. 요청은 들어오지만 예상과 다른 출구로 나간다면 라우팅 규칙과 아웃바운드 태그를 점검하세요. 도메인과 IP의 결과가 다르면 도메인 정책과 DNS를 살펴보세요. 한 번에 관련 옵션 한 묶음만 조정하고 문제를 재현할 수 있는 테스트 조건을 유지하세요.