VMess
프록시 프로토콜 · 사용자 인증과 암호화
VMess는 Project V 생태계의 프록시 프로토콜로, 인증과 암호화 기능을 제공하며 사용자 식별자는 보통 UUID로 표시합니다. 설정을 가져온 뒤에도 전송 방식, 보안 설정, 서버 요구 사항을 확인해야 하며 UUID만 비교해서는 안 됩니다. 시스템 시간 오차가 크면 인증에 실패할 수 있으므로 연결 문제를 해결할 때 기기 시간도 확인하세요.
설정 참고 자료 / 자주 쓰는 용어 28개
프로토콜은 통신 방식을 정하고, 코어는 연결을 처리하며, 클라이언트는 설정을 관리합니다. 계층을 구분한 다음 설정 항목을 확인하세요.
이 페이지에서는 설정 중 자주 접하는 개념을 분류해 설명합니다. 각 항목에서 정의와 사용 범위를 확인하고 용어 링크로 바로 이동할 수 있습니다. v2rayN, v2rayNG, v2flyNG의 메뉴 이름은 버전에 따라 달라질 수 있습니다. 인터페이스에 옵션이 표시되더라도 모든 코어가 같은 매개변수를 지원하는 것은 아닙니다.
라우팅 규칙 예시가 더 필요하신가요? 고급 설정 보기 →01 / 연결 구조
프록시 프로토콜, 전송 방식, 전송 보안은 서로 다른 계층입니다. 연결 매개변수를 확인할 때는 각각 살펴봐야 하며 프로토콜 이름만 확인해서는 안 됩니다.
프록시 프로토콜 · 사용자 인증과 암호화
VMess는 Project V 생태계의 프록시 프로토콜로, 인증과 암호화 기능을 제공하며 사용자 식별자는 보통 UUID로 표시합니다. 설정을 가져온 뒤에도 전송 방식, 보안 설정, 서버 요구 사항을 확인해야 하며 UUID만 비교해서는 안 됩니다. 시스템 시간 오차가 크면 인증에 실패할 수 있으므로 연결 문제를 해결할 때 기기 시간도 확인하세요.
프록시 프로토콜 · 전송 보안과 분리
VLESS는 경량 프록시 프로토콜로, 자체적으로 데이터 암호화를 제공하지 않으며 실제 연결에서는 보통 TLS 또는 REALITY를 함께 사용합니다. UUID는 사용자 인증에 쓰이며 연결 보안 전체를 설명하지는 않습니다. 설정할 때 보안 계층, 전송 방식, 적용 가능한 flow 항목도 확인해야 하며 VMess의 설정 항목을 그대로 적용해서는 안 됩니다.
프록시 프로토콜 · TLS 연결을 통한 데이터 전송
Trojan은 일반적으로 TLS 연결을 통해 프록시 데이터를 전달하고 비밀번호로 인증합니다. 서버 주소, 포트, 비밀번호, TLS 서버 이름이 서로 일치해야 하며 인증서 검증도 연결 과정의 일부입니다. 핸드셰이크 오류가 발생하면 먼저 서버 이름과 인증서 조건을 확인하세요. 인증서 검증을 끄는 것을 일반적인 설정으로 삼아서는 안 됩니다.
암호화 프록시 프로토콜 계열
Shadowsocks는 정해진 암호화 방식과 비밀번호로 프록시 연결을 설정하며, 프로토콜 세대마다 매개변수 형식이 다를 수 있습니다. 클라이언트에 Shadowsocks가 표시된다고 해서 코어가 모든 암호화 방식을 지원하는 것은 아닙니다. 가져오기에 실패하거나 연결에 문제가 있으면 방식 이름, 비밀번호 형식, 현재 코어의 지원 범위를 함께 비교하세요.
전송 보안 · 프록시 프로토콜이 아님
REALITY는 Xray 생태계의 전송 보안 방식으로 VLESS와 함께 사용하는 경우가 많습니다. VMess나 Trojan과 같은 계층의 프로토콜 항목으로 입력해서는 안 됩니다. 클라이언트에는 보통 서버 이름, 공개 키, 짧은 ID 등의 연결 정보가 필요합니다. 관련 항목은 같은 서버 설정에서 가져와야 하며 사용 중인 코어가 해당 조합을 지원해야 합니다.
전송 방식 · TCP / WebSocket 등
여기서 전송 계층은 TCP나 WebSocket처럼 프록시 프로토콜의 데이터를 전달하는 방식을 뜻하며, 노드의 표시 이름을 뜻하지 않습니다. WebSocket 경로와 요청 헤더, TLS 서버 이름은 서로 다른 항목이므로 대신 사용할 수 없습니다. 양쪽의 전송 매개변수가 다르면 주소와 인증 정보가 맞더라도 연결이 완료되지 않을 수 있습니다.
02 / 실행과 관리
그래픽 인터페이스는 설정을 편집하고 관리하며, 코어는 실제 트래픽을 처리합니다. 기능을 사용할 수 있는지 판단하려면 클라이언트의 설정 메뉴와 코어 버전을 모두 확인해야 합니다.
설정 가능한 네트워크 프록시 도구 생태계
Project V는 설정 가능한 네트워크 프록시 도구를 중심으로 형성된 프로젝트 생태계이며, V2Ray는 그중 주요 프로젝트입니다. 일상적으로 말하는 ‘V2Ray 클라이언트’는 관련 코어를 관리하는 그래픽 프로그램을 가리키는 경우가 많으며, 특정 소프트웨어 패키지 이름은 아닙니다. 안내 문서를 읽을 때는 프로토콜, 코어, 인터페이스 중 무엇을 설명하는지 먼저 확인하면 설정 메뉴를 잘못 찾는 일을 줄일 수 있습니다.
V2Ray Core 커뮤니티 유지 관리 프로젝트
V2Fly 커뮤니티는 V2Ray Core를 유지 관리하며, 코어는 프록시 연결, 라우팅, DNS 등을 처리합니다. v2flyNG는 이 코어 계열을 사용하며 기능 범위는 클라이언트에 포함된 버전에 따라 달라집니다. 다른 코어 전용이라고 표시된 설정 예시는 JSON 형식이 비슷하다는 이유만으로 가져오지 마세요.
프록시 코어 · V2Ray와 기술적 연관
Xray는 V2Ray와 기술적 연관이 있는 프록시 코어 프로젝트로, 자체적으로 유지 관리하는 프로토콜 및 설정 기능을 갖추고 있습니다. v2rayNG는 일반적으로 Xray 코어를 사용하며 데스크톱 클라이언트에서도 해당 코어를 선택할 수 있습니다. 인식할 수 없는 설정 항목이 있으면 클라이언트 이름만 볼 것이 아니라 실제로 실행 중인 코어와 버전을 확인하세요.
데스크톱 그래픽 클라이언트
v2rayN은 서버, 구독 그룹, 라우팅, 네트워크 모드를 관리하는 인터페이스를 제공합니다. 데스크톱 버전은 Windows, macOS, Linux를 지원합니다. 인터페이스는 보통 선택한 항목에 따라 실행 설정을 생성하고, 연결 처리는 선택한 코어에 맡깁니다. 생성된 파일을 직접 수정하기 전에 클라이언트 재시작이나 설정 전환 시 해당 파일을 다시 쓰는지 확인하세요.
Android 그래픽 클라이언트 · Xray
v2rayNG는 공유 링크를 가져오고 구독을 관리하며 라우팅을 설정할 수 있는 Android 그래픽 프록시 클라이언트입니다. 일반적인 VPN 모드는 Android VPN 인터페이스를 통해 기기 트래픽을 전달하지만 유효한 원격 연결 설정도 필요합니다. 시스템에 VPN 표시가 나타나도 인터페이스가 만들어졌다는 뜻일 뿐, 대상 웹사이트나 앱에 연결되었다고 단정할 수는 없습니다.
Android 그래픽 클라이언트 · V2Fly
v2flyNG는 V2Fly 코어를 사용하는 Android 클라이언트 대안으로, 해당 코어의 설정 방식을 사용해야 하는 경우에 적합합니다. v2rayNG와 비슷한 조작 방식도 있지만, 지원하는 프로토콜 조합과 고급 설정 항목이 완전히 같지는 않습니다. 클라이언트를 바꾸기 전에 기존 연결이 특정 코어 기능에 의존하는지 확인하세요.
03 / 설정 출처
구독은 설정을 전달하고 노드는 하나의 연결을 나타냅니다. 업데이트, 가져오기, 테스트는 서로 다른 작업이며 어느 하나에 성공해도 연결 전체가 정상이라고 볼 수는 없습니다.
Subscription · 설정 목록 업데이트 경로
구독은 링크를 통해 업데이트 가능한 서버 설정 목록을 제공합니다. 응답은 인코딩된 공유 링크 목록이나 클라이언트가 지원하는 다른 형식일 수 있습니다. 구독 주소에는 접근 인증 정보가 포함되는 경우가 많으므로 공개 페이지나 안전성이 확인되지 않은 변환 서비스에 입력하지 마세요. 업데이트에 성공했다는 것은 내용을 가져와 해석했다는 뜻일 뿐, 각 연결이 사용 가능하다는 의미는 아닙니다.
서버 연결 설정
노드는 클라이언트에서 원격 프록시 연결 설정을 부르는 일반적인 표현으로, 주소, 포트, 인증, 프로토콜, 전송 매개변수 등을 포함합니다. 목록의 이름은 알아보기 쉽게 붙인 메모일 뿐 실제 트래픽의 경로를 결정하지 않습니다. 같은 주소라도 포트나 인증 정보가 다르면 별개의 연결 설정이 될 수 있으므로 문제를 해결할 때 각 항목을 비교하세요.
출처별 관리 · 업데이트와 필터링
구독 그룹은 출처나 용도별로 서버 설정을 정리해 각각 업데이트하고 필터링하거나 문제가 있는 항목을 확인하기 쉽게 해줍니다. 클라이언트의 그룹 관리는 코어의 라우팅 정책과 다르며, 그룹을 만들었다고 특정 앱의 트래픽이 해당 그룹으로 자동 전달되지는 않습니다. 구독 노드를 직접 편집한 경우 다음 업데이트에서 일부 내용이 다시 생성되거나 덮어써질 수 있다는 점도 유의하세요.
URI · 단일 설정을 공유하는 형식
공유 링크는 vmess://, vless:// 등의 접두사로 연결 설정을 나타내며, 내용은 인코딩된 데이터나 URI 매개변수 형식일 수 있습니다. 복사할 때 쿼리 매개변수를 빠뜨리거나 이스케이프 문자를 바꾸거나 줄바꿈을 넣으면 가져온 설정이 불완전해질 수 있습니다. 공유 링크에 인증 정보가 포함될 수도 있으므로 캡처하거나 전달하기 전에 내용을 확인하세요.
프록시를 통한 테스트 요청에 걸린 시간
실제 연결 지연 시간은 일반적으로 클라이언트가 선택한 프록시를 통해 테스트 대상에 요청을 보내 측정한 시간입니다. 측정에 포함되는 단계는 테스트 방식에 따라 다릅니다. 단순한 포트 확인보다 실제 요청 경로에 가까운 값이지만 다운로드 속도나 장기적인 안정성과는 다릅니다. 결과를 비교할 때는 같은 대상과 조건을 사용하고, 한 번 시간 초과가 발생한 경우에도 로그를 함께 확인하세요.
04 / 매칭과 아웃바운드
연결에 도메인과 IP 중 어떤 정보가 포함되는지 확인한 다음 규칙 순서와 아웃바운드 태그를 살펴보세요. 규칙의 분류 이름은 해당 데이터가 있을 때만 의미가 있습니다.
라우팅 규칙 · 조건 매칭
라우팅 규칙은 도메인, IP, 포트, 인바운드 등의 조건에 따라 연결을 어느 아웃바운드로 보낼지 결정합니다. V2Ray의 일반적인 필드 규칙은 위에서 아래로 매칭되며, 구체적인 예외 규칙은 포괄적인 분류보다 앞에 두는 것이 좋습니다. 하나의 규칙에 서로 다른 조건을 여러 개 넣으면 보통 모든 조건을 충족해야 하므로 조건을 추가하면 매칭 범위가 넓어지는 것이 아니라 좁아질 수 있습니다.
목적지와 연결 조건에 따른 경로 분배
트래픽 분할은 트래픽을 직접 연결, 프록시, 차단 등의 아웃바운드로 보내는 정책이며 프록시 프로토콜의 한 종류가 아닙니다. 결과는 규칙 순서, 도메인 정보, DNS 조회 결과, 규칙이 일치하지 않을 때의 기본 경로에 따라 달라집니다. 인터페이스의 ‘전역’ 설정도 네트워크 트래픽 처리 방식과 함께 살펴봐야 하며, 이를 근거로 모든 프로그램이 프록시 코어를 거친다고 판단해서는 안 됩니다.
IP 주소 대역 분류 데이터
GeoIP는 지역이나 용도별로 IP 주소 대역을 정리한 데이터입니다. 라우팅에서 geoip:cn 또는 geoip:private 같은 분류를 지정할 수 있습니다. 분류 매칭은 현재 데이터 파일의 내용을 반영하며 서버의 실제 위치를 실시간으로 측정하지는 않습니다. 연결에 도메인만 있는 경우 IP 규칙을 적용할 수 있는지는 도메인 조회 정책에도 영향을 받습니다.
도메인 분류 데이터
GeoSite는 도메인을 분류별로 정리한 데이터이며, 라우팅에서 geosite: 접두사로 참조합니다. 예를 들어 geosite:cn을 사용할 수 있습니다. 분류가 존재하는지, 특정 도메인이 포함되는지는 실제로 불러온 데이터 파일과 버전에 따라 달라집니다. 연결에 대상 IP만 제공되는 경우 해당 도메인 분류 규칙을 적용하려면 보통 다른 방식으로 도메인 정보를 가져와야 합니다.
outboundTag · 아웃바운드 참조 이름
아웃바운드 태그는 특정 아웃바운드 설정을 식별하는 이름이며, 라우팅에서 outboundTag로 참조합니다. proxy, direct, block은 흔히 사용하는 이름이지만, 이름만으로 프록시, 직접 연결, 차단 기능이 생성되지는 않습니다. 규칙을 복사하기 전에 현재 실행 설정에 같은 이름의 아웃바운드가 있고 용도도 일치하는지 확인하세요.
05 / DNS 조회와 트래픽 유입
DNS 요청을 보내는 방식과 앱 연결을 코어로 전달하는 방식은 서로 맞춰야 하는 별개의 경로입니다. 네트워크 모드를 변경한 뒤에는 DNS 조회와 실제 접속을 각각 확인하세요.
Domain Name System · 도메인 조회
DNS는 도메인을 IP 주소 등의 레코드로 변환합니다. 프록시 코어, 운영체제, 앱은 각자 다른 DNS 조회 경로를 사용할 수 있습니다. 코어 DNS를 변경해도 모든 앱의 조회 방식이 바뀌는 것은 아니며, 리졸버 주소만으로 요청이 어떤 아웃바운드를 통과하는지 알 수도 없습니다. 설정할 때는 조회를 시작하는 주체, 요청이 전송되는 경로, 결과가 라우팅에 반영되는 방식을 함께 확인하세요.
시스템에 로컬 프록시 주소 등록
시스템 프록시는 로컬 프록시 주소와 포트를 운영체제에 등록해 해당 설정을 따르는 프로그램에서 사용하도록 합니다. 모든 네트워크 연결을 자동으로 처리하지는 않으며 일부 앱은 HTTP 또는 SOCKS 프록시를 별도로 설정해야 합니다. 클라이언트를 종료한 뒤 작동하지 않는 시스템 프록시 주소가 남으면 관련 프로그램이 계속 해당 주소로 연결을 시도해 접속이 안 될 수 있습니다.
가상 네트워크 인터페이스 · IP 트래픽 전달
TUN 모드는 가상 네트워크 인터페이스로 IP 트래픽을 전달해 시스템 프록시 설정을 따르지 않는 일부 프로그램의 트래픽도 처리할 수 있습니다. 실제 적용 범위는 권한, 시스템 라우팅, 제외 설정, 다른 네트워크 도구에 따라 달라지며 모든 트래픽이 같은 프록시 아웃바운드를 사용하는 것은 아닙니다. 활성화한 뒤에는 DNS 설정도 함께 조정하고 프록시 서버 연결에 올바른 경로를 유지해 라우팅 루프를 방지해야 합니다.
합성 IP · 도메인 매핑
FakeDNS는 합성 IP를 반환하고 해당 주소와 원래 도메인의 매핑을 유지해 후속 처리에서 도메인 정보를 복원할 수 있게 합니다. 합성 주소는 실제 서버 주소가 아니므로 이후 연결은 매핑을 인식할 수 있는 처리 경로를 거쳐야 합니다. 기능을 켜거나 끌 때는 주소 풀, 시스템 라우팅, 앱의 DNS 캐시가 서로 일치하는지 확인해 남아 있는 주소로 인해 접속 문제가 생기지 않도록 하세요.
예상한 DNS 조회 경로를 벗어난 요청
DNS 유출은 도메인 조회가 예상한 경로로 전송되지 않는 현상입니다. 예를 들어 지정한 아웃바운드를 통해 조회할 예정이었지만 시스템의 다른 리졸버가 요청을 처리할 수 있습니다. 문제를 해결할 때는 시스템 조회, 브라우저 자체 조회, 코어 DNS 아웃바운드, TUN 적용 범위를 구분해야 합니다. 테스트 페이지에 표시된 리졸버 이름은 참고 정보일 뿐이므로 로컬 설정과 요청 로그도 함께 확인하세요.
Sniffing · 연결 초기 정보 식별
트래픽 스니핑은 연결 초기 데이터에서 프로토콜이나 도메인 정보를 식별합니다. 예를 들어 일부 HTTP 요청 헤더와 TLS 핸드셰이크 정보를 라우팅에 참고할 수 있습니다. 앱 데이터를 임의로 복호화할 수 없고 모든 연결에서 도메인을 식별할 수 있는 것도 아닙니다. 대상 주소를 바꿀지는 관련 옵션에 따라 달라지므로 스니핑을 DNS 설정의 대안으로 사용해서는 안 됩니다.
개념을 확인했는데도 연결 문제가 계속되면 문제 해결을 참고하세요. 처음 가져오기와 연결하는 방법은 클라이언트 사용 가이드에서 확인할 수 있습니다.