VMess
VMess는 Project V 생태계의 프록시 프로토콜로, 사용자 식별자로 인증하며 자체 암호화 방식도 갖추고 있습니다. 일반적인 설정에서 추가 ID는 0이며, 이는 최신 AEAD 사용 방식에 해당합니다. 전송 방식 선택과는 별개의 항목입니다. 가져온 설정에서 사용자 식별자, 암호화 방식, 전송 방식, 보안 계층을 각각 확인하세요. 시스템 시간이 크게 어긋나도 인증에 문제가 생길 수 있습니다.
프로토콜·코어·구독·라우팅 설정 항목
먼저 설정 항목이 어느 계층에 속하는지 파악한 뒤, 어떤 항목과 맞춰야 하는지 확인하세요. 아래에서는 자주 쓰이는 용어 30개를 5개 분야로 나눠 설명합니다. 각 카드에는 고유 앵커가 있어 링크를 저장하거나 관련 용어로 이동할 수 있습니다.
프로토콜은 프록시 요청과 인증을 정의하고, 전송 방식은 메시지를 전달합니다. 이름이 비슷해도 서로 바꿔 쓸 수 있는 설정은 아닙니다.
VMess는 Project V 생태계의 프록시 프로토콜로, 사용자 식별자로 인증하며 자체 암호화 방식도 갖추고 있습니다. 일반적인 설정에서 추가 ID는 0이며, 이는 최신 AEAD 사용 방식에 해당합니다. 전송 방식 선택과는 별개의 항목입니다. 가져온 설정에서 사용자 식별자, 암호화 방식, 전송 방식, 보안 계층을 각각 확인하세요. 시스템 시간이 크게 어긋나도 인증에 문제가 생길 수 있습니다.
VLESS는 경량 프록시 프로토콜로, 데이터 내용을 자체적으로 암호화하지 않습니다. 따라서 일반적으로 encryption 값은 none입니다. 그렇다고 연결 전체가 반드시 암호화되지 않는다는 뜻은 아닙니다. 실제 보안은 TLS나 REALITY 등의 설정에 따라 달라집니다. flow는 별도 항목이므로 서버 요구 사항과 코어 지원 여부에 맞춰 설정해야 합니다. 모든 VLESS 노드에 같은 값을 일괄 적용해서는 안 됩니다.
Trojan은 일반적으로 TLS로 연결을 보호하고 비밀번호로 인증하는 프록시 프로토콜입니다. 비밀번호가 맞는 것만으로 연결이 보장되지는 않습니다. 서버 이름, 인증서 신뢰 설정, 전송 설정도 일치해야 합니다. 인증서 오류가 발생하면 SNI, 시스템 시간, 인증서 설정을 확인하고, 인증서 검증 건너뛰기를 상시 해결책으로 삼지 마세요.
Shadowsocks는 사전 공유 키로 암호화된 프록시 연결을 구성하며, 흔히 SS라고 줄여 부릅니다. 기존 AEAD 방식과 Shadowsocks 2022 방식은 키 규칙이 서로 다릅니다. 예를 들어 2022-blake3-aes-128-gcm은 정해진 키 형식을 요구합니다. 클라이언트와 서버의 암호화 방식, 키, 관련 확장 설정이 모두 일치해야 합니다. 비밀번호 문자열이 같다는 이유만으로 호환된다고 판단해서는 안 됩니다.
전송 방식은 프록시 프로토콜 메시지를 하위 연결을 통해 보내는 방법을 결정합니다. TCP, WebSocket, gRPC 등이 널리 쓰입니다. WebSocket을 선택하면 경로와 Host 등의 항목도 서버 설정과 맞춰야 하는 경우가 많고, gRPC는 서비스 이름 같은 매개변수가 필요할 수 있습니다. 전송 방식은 암호화 방식과 다르며, 추가 캡슐화가 연결 속도를 높여 주는 것도 아닙니다. 실제 설정에 맞춰 선택하세요.
그래픽 클라이언트는 설정을 저장하고 코어는 프로토콜과 라우팅을 처리합니다. 호환성을 점검할 때는 두 구성 요소의 버전과 지원 범위를 따로 확인해야 합니다.
Xray-core는 V2Ray 프로젝트에서 파생되어 프로토콜 연결, 라우팅, DNS 등의 하위 작업을 처리합니다. REALITY와 XTLS Vision은 Xray 기능을 선택할 때 자주 살펴보는 항목이지만, 구체적인 버전과 조합 제한을 확인해야 합니다. 클라이언트 화면에 옵션이 표시된다고 현재 실행 중인 코어가 지원한다고 단정할 수는 없습니다. 로그에서 실제 코어 정보를 확인하는 편이 정확합니다.
V2Fly는 V2Ray 생태계를 이어가는 커뮤니티 프로젝트로, 코어에서 프록시 프로토콜, 전송, 라우팅, DNS 기능을 제공합니다. Xray와 공통된 역사를 갖지만 이후 기능 발전은 완전히 같지 않습니다. 기존 설정을 비교의 출발점으로 삼을 수는 있지만 모든 항목이 서로 호환된다고 가정해서는 안 됩니다. 특히 보안 계층과 새로 추가된 전송 기능을 확인하세요.
v2rayN은 Windows, macOS, Linux용 그래픽 클라이언트로, 노드 관리, 구독 업데이트, 연결 모드 설정을 지원합니다. 화면에서 선택한 항목을 코어 설정으로 구성하며 실제 연결은 선택된 코어가 처리합니다. 데스크톱 버전과 기존 WPF 버전은 화면 구성과 지원 플랫폼이 다를 수 있으므로, 안내를 볼 때는 현재 버전에서 해당 기능을 확인하세요.
v2rayNG는 Xray 코어를 사용하는 Android 그래픽 클라이언트입니다. 노드를 관리하고 시스템 VpnService를 통해 선택한 트래픽을 가로챕니다. 시스템 권한 요청 창은 로컬 VPN 인터페이스를 만드는 절차이며, 모든 앱의 트래픽이 같은 아웃바운드로 전송된다는 뜻은 아닙니다. 앱별 설정, 배터리 절약 정책, 백그라운드 실행 권한에 따라 실제 연결 범위와 지속성이 달라질 수 있습니다.
v2flyNG는 V2Fly 코어를 사용하는 Android 그래픽 클라이언트로, 해당 코어 설정을 적용하는 대안으로 사용할 수 있습니다. 이름은 v2rayNG와 비슷하지만 코어의 지원 범위가 같지는 않습니다. 노드를 옮길 때 프로토콜, 전송, 보안 설정을 다시 확인하세요. Xray 전용 기능을 사용하는 설정은 클라이언트 이름만 바꾼다고 그대로 사용할 수 없습니다.
구독은 설정 목록을 가져오는 경로이고 노드는 하나의 연결 설정입니다. 구독 업데이트, 설정 가져오기, 연결 성공은 각각 다른 상태입니다.
구독은 일반적으로 클라이언트가 여러 노드 설정을 가져오는 데 사용하는 주소입니다. 구독을 업데이트하면 원격 목록을 다시 읽습니다. 업데이트 실패는 주소 만료, 요청 경로 또는 형식 호환성 문제 때문일 수 있으며, 기존 노드가 모두 작동하지 않는다는 뜻은 아닙니다. 구독 주소에 접근 인증 정보가 포함될 수 있으므로 스크린샷이나 로그를 공유하기 전에 전체 주소와 민감한 매개변수를 삭제하세요.
노드는 클라이언트에 저장된 연결 매개변수 모음으로, 일반적으로 주소, 포트, 프록시 프로토콜, 인증 정보, 전송 및 보안 설정을 포함합니다. 물리 서버 한 대와 같은 의미는 아니며, 하나의 서버에서 여러 설정을 제공할 수도 있습니다. 노드 이름은 식별용일 뿐 지역, 사용 가능 여부, 연결 성능을 보장하지 않습니다.
공유 링크는 vmess://, vless:// 등의 접두사로 노드 하나의 설정을 표현하며, 클라이언트에서 클립보드나 QR 코드로 가져올 수 있습니다. 프로토콜, 클라이언트, 버전에 따라 링크 형식 지원이 다릅니다. 가져온 뒤 주요 설정을 확인하세요. 링크에 포함된 비밀번호나 사용자 식별자는 연결 인증 정보이므로 공개하지 않는 것이 좋습니다.
일부 구독은 텍스트를 Base64로 인코딩해 담으며, 디코딩하면 여러 공유 링크가 나올 수 있습니다. Base64는 암호화가 아닌 인코딩이므로 노드 인증 정보를 보호하지 못하고, 겉모양만으로 내부 형식을 판단할 수도 없습니다. 기본 JSON 설정은 이런 구독과 구조가 다르므로 클라이언트에서 알맞은 가져오기 메뉴를 사용해야 합니다.
실제 연결 지연 시간은 일반적으로 선택한 노드로 테스트 대상에 요청을 보내 측정한 시간입니다. 핸드셰이크와 전체 응답 시간까지 포함하는지는 클라이언트 구현에 따라 다릅니다. 대상 포트만 확인하는 TCP 지연 시간이나 다운로드 대역폭과는 다른 지표입니다. 결과를 비교할 때는 같은 테스트 주소와 방식을 사용하고 실제 앱의 요청 결과도 함께 살펴보세요.
먼저 연결이 코어에 전달되는지 확인한 다음 어떤 규칙에 일치했는지 살펴보세요. DNS 조회와 앱 연결이 서로 다른 경로를 사용할 수도 있습니다.
라우팅 규칙은 도메인, IP, 포트 등의 조건에 따라 연결을 직접 연결, 프록시, 차단 등의 아웃바운드로 보냅니다. 일반적으로 규칙 순서대로 검사하며, 처음 일치하는 적용 가능 규칙이 결과를 결정합니다. 따라서 조건이 넓은 규칙을 앞에 두면 뒤의 세부 규칙이 적용되지 않을 수 있습니다. 도메인 정책에 따라 매칭에 IP 주소를 사용할지도 달라지므로 규칙 순서와 함께 확인해야 합니다.
GeoIP는 지역이나 분류별로 정리된 IP 주소 목록으로, 라우팅 규칙에서 해당 분류를 참조할 수 있습니다. 매칭 결과는 대상 IP와 데이터 파일에 따라 달라지며, 서비스의 실제 위치를 정확히 알려 주지는 않습니다. 서버 주소가 바뀌거나 데이터베이스가 업데이트되면 결과도 달라질 수 있으므로 문제를 확인할 때 실제로 조회된 주소를 기록하세요.
GeoSite는 분류별로 정리된 도메인 규칙 모음으로, 분류 이름을 사용해 트래픽 분할 규칙을 설정할 수 있습니다. 분류 이름과 포함 범위는 데이터 파일에 따라 다르며, 출처나 버전이 다르면 목록도 달라질 수 있습니다. 도메인 목록은 IP 목록과 다릅니다. 요청이 규칙에 매칭되지 않는다면 규칙 순서, 도메인 확인 방식, 데이터 파일을 함께 살펴보세요.
트래픽 분할은 규칙에 따라 연결을 서로 다른 아웃바운드로 보내 지정한 요청을 직접 연결, 프록시 등으로 처리하는 방식입니다. 한 번의 다운로드를 여러 노드로 자동 분할하는 기능도 아니며 대역폭을 자동으로 높여 주지도 않습니다. 분할이 제대로 적용되는지는 트래픽 가로채기, 규칙 매칭, 기본 아웃바운드를 각각 확인해야 합니다. 모드 이름만 보고 결과를 판단하지 마세요.
TUN 모드는 가상 네트워크 인터페이스로 IP 패킷을 받아 시스템 프록시 설정을 따르지 않는 일부 앱의 트래픽도 처리할 수 있습니다. 시스템 권한, 라우팅 테이블, DNS 설정이 함께 필요하며 구체적인 기능은 클라이언트 구현에 따라 다릅니다. 실행 후 로컬 네트워크 접속에 문제가 생기면 모든 트래픽을 프록시로 바꾸기보다 사설 IP 규칙과 다른 가상 네트워크 인터페이스를 확인하세요.
시스템 프록시는 운영체제에 프록시 주소를 등록해 해당 설정을 따르는 앱의 요청을 로컬 프록시로 보내는 방식입니다. 일부 앱은 별도의 프록시 설정을 사용하고, 다른 앱은 시스템 프록시를 무시할 수 있습니다. 모든 트래픽이 가로채지는 것도 아니고 라우팅 규칙과 같은 기능도 아닙니다. 클라이언트를 종료한 뒤 필요에 따라 시스템 프록시 설정이 복원됐는지도 확인하세요.
DNS는 도메인을 IP 주소 등의 레코드로 변환하며, 앱이 연결을 시작하기 전에 거치는 일반적인 절차입니다. 시스템, 브라우저, 프록시 코어가 서로 다른 DNS 리졸버를 사용할 수 있으므로 클라이언트의 DNS만 바꿔도 모든 조회가 바뀌는 것은 아닙니다. 문제를 확인하려면 어떤 구성 요소가 조회를 시작하는지, 조회가 어떤 아웃바운드를 거치는지, 응답 주소가 라우팅에 어떻게 사용되는지 함께 살펴보세요.
FakeDNS는 앱에 가상 IP를 반환하고 해당 주소와 원래 도메인의 매핑을 저장해, 이후 연결에서 코어가 목적지를 복원하도록 돕습니다. 일반 공용 DNS 서버와는 다르며, 해당 연결을 기능을 지원하는 코어가 가로채야 합니다. 호환되지 않는 DNS, 라우팅, 캐시 설정을 함께 사용하면 매핑이 깨질 수 있습니다. 모드를 바꾼 뒤에는 기존 DNS 캐시도 확인하세요.
DNS 누수는 조회가 예상한 경로로 전송되지 않는 현상입니다. 예를 들어 앱 연결은 프록시를 통하지만 DNS 조회는 다른 네트워크 인터페이스에서 이뤄질 수 있습니다. 예상한 정책을 기준으로 판단해야 하며, 모든 로컬 DNS 조회를 곧바로 오류로 볼 수는 없습니다. 브라우저의 개별 암호화 DNS 설정, 시스템 DNS 설정, 인터페이스 우선순위를 함께 확인하세요. DNS 조회가 암호화되어도 반드시 프록시를 거치는 것은 아닙니다.
보안 설정은 서버에서 제공한 구성을 기준으로 해야 합니다. 인증서 이름, 프로토콜 협상, 지문 설정은 각각 목적이 다르며 서로 대체할 수 없습니다.
TLS는 전송 암호화와 인증을 제공하는 보안 프로토콜이며, 핸드셰이크에서 매개변수를 협상하고 서버의 신원을 확인합니다. 인증서를 사용하는 연결은 인증서 신뢰 체인, 유효 기간, 이름 일치 여부를 확인해야 합니다. 인증서 검증과 프록시 프로토콜 인증은 별개의 절차입니다. 인증서 검증을 건너뛰면 신원 확인이 약해지므로 잘못된 이름이나 인증서 설정을 수정하는 대신 사용해서는 안 됩니다.
REALITY는 Xray 생태계의 전송 계층 보안 방식이지 독립된 프록시 프로토콜은 아닙니다. VLESS와 REALITY를 함께 사용하는 구성이 일반적입니다. 서버 설정에 맞춰 공개 키, shortId, 서버 이름, 지문 등의 매개변수를 지정해야 합니다. 인증 방식은 일반 TLS 인증서 안내를 그대로 적용할 수 없으므로 사용 전에 코어 버전과 설정 항목의 지원 여부를 확인하세요.
Vision은 Xray에서 VLESS의 특정 연결 조합에 사용하는 흐름 제어 방식입니다. 클라이언트에서는 xtls-rprx-vision을 flow 값으로 사용하는 경우가 많습니다. 전송 방식과 보안 계층이 서로 맞아야 하므로 어떤 전송 조합에서나 사용할 수 있는 것은 아닙니다. 서버에 명시적으로 설정되어 있고 선택한 코어가 지원할 때만 지정하세요. 일반적인 속도 향상 옵션으로 사용해서는 안 됩니다.
SNI는 TLS ClientHello에서 서버 이름을 알리는 확장 항목으로, 서버는 이를 바탕으로 해당 설정과 인증서를 선택할 수 있습니다. 연결 주소가 IP이고 핸드셰이크에 사용하는 이름이 별도일 수 있지만 서버 요구 사항에 맞아야 합니다. SNI와 HTTP Host는 서로 다른 항목이므로 하나를 바꿔도 다른 항목이 자동으로 올바르게 설정되지는 않습니다.
클라이언트 지문은 확장 항목과 암호 스위트 등을 포함한 TLS 핸드셰이크 매개변수 조합의 특성을 나타냅니다. 관련 기능을 지원하는 코어에서는 chrome 같은 지정 스타일로 핸드셰이크를 구성할 수 있습니다. 실제 기기에서 해당 브라우저를 실행한다는 뜻은 아닙니다. 지문 설정은 인증서 검증이나 노드 인증을 대신하지 않으며, 코어 버전이 달라지면 핸드셰이크 결과가 완전히 같다고 보장할 수도 없습니다.
ALPN은 TLS 핸드셰이크 중 애플리케이션 계층 프로토콜을 협상하는 확장 항목입니다. h2와 http/1.1 등이 흔히 사용됩니다. 양측이 이후 어떤 애플리케이션 프로토콜로 통신할지 정하는 항목으로, VMess나 VLESS 같은 프록시 프로토콜과는 다른 계층에 속합니다. 서버가 지원하지 않는 값을 설정하면 핸드셰이크나 이후 요청이 실패할 수 있으므로 실제 설정에 맞춰야 합니다.