VMess
VMess ProtocolVMess는 Project V 생태계의 프록시 프로토콜로, 인증 및 데이터 보호 기능을 포함합니다. 설정을 가져온 뒤에는 사용자 식별자, 전송 방식, 보안 계층을 모두 확인해야 합니다. 서버 주소와 포트만 확인해서는 충분하지 않습니다. 기존 설정의 추가 식별자 매개변수는 경험에 따라 임의로 입력하지 말고, 서버에서 제공한 정보와 현재 코어의 지원 여부를 기준으로 확인하세요.
프로토콜, 코어, 클라이언트를 구분하고 구독, 라우팅, DNS 설정을 이해하세요.
분류를 클릭하면 해당 섹션으로 이동합니다. 각 용어는 주소창의 앵커 링크로 바로 지정할 수 있습니다. 이름이 비슷한 설정을 찾았다면 먼저 사용 중인 클라이언트와 코어를 확인한 뒤 설명을 살펴보세요.
클라이언트 설정 단계별 안내 →프로토콜은 프록시 통신을 구성하는 방식을, 전송 방식은 데이터를 전달하는 방식을 결정합니다. 두 설정은 서로 다른 항목입니다.
VMess는 Project V 생태계의 프록시 프로토콜로, 인증 및 데이터 보호 기능을 포함합니다. 설정을 가져온 뒤에는 사용자 식별자, 전송 방식, 보안 계층을 모두 확인해야 합니다. 서버 주소와 포트만 확인해서는 충분하지 않습니다. 기존 설정의 추가 식별자 매개변수는 경험에 따라 임의로 입력하지 말고, 서버에서 제공한 정보와 현재 코어의 지원 여부를 기준으로 확인하세요.
VLESS는 가벼운 프록시 프로토콜로, 자체적으로 완전한 전송 암호화를 제공하지 않으며 TLS나 REALITY 같은 보안 계층과 함께 사용하는 경우가 많습니다. 프로토콜 이름이 같다고 두 설정을 서로 바꿔 쓸 수 있는 것은 아닙니다. 흐름 제어, 전송 방식, 보안 매개변수도 일치해야 합니다. 클라이언트에서 링크를 가져올 수 있다는 것은 형식을 인식했다는 뜻일 뿐, 실제 연결에 필요한 조건이 갖춰졌다는 의미는 아닙니다.
Trojan은 일반적으로 TLS로 연결을 보호하고 비밀번호로 인증합니다. 여기서 비밀번호는 노드 인증 정보이며 클라이언트의 로컬 관리 비밀번호가 아닙니다. 연결에 실패하면 인증 정보뿐 아니라 대상 도메인, 인증서 검증, 전송 매개변수도 확인해야 합니다. 비밀번호를 다시 입력하는 것만으로 모든 핸드셰이크 문제가 해결되지는 않습니다.
클라이언트 설정에서 전송 계층은 보통 프록시 프로토콜 데이터를 전달하는 방식을 뜻하며, TCP, WebSocket, gRPC 등이 있습니다. 네트워크 계층 모델의 용어와 완전히 같은 의미로 쓰이는 것은 아닙니다. WebSocket 경로와 Host, gRPC 서비스 이름 등은 각각 용도가 있으므로 서버 설정과 일치시켜야 합니다. 전송 방식 변경은 단순한 성능 옵션이 아니며, 임의로 바꾸면 연결이 끊길 수 있습니다.
그래픽 인터페이스는 설정을 관리하고 코어 프로그램은 연결을 처리합니다. 필요한 기능이 작동하려면 두 부분 모두 해당 기능을 지원해야 합니다.
Project V는 모듈형 네트워크 프록시 도구 생태계이며 V2Ray는 그중 주요 구현체로, 프로토콜 처리, 라우팅, DNS 등의 기능을 제공합니다. 일상적으로 검색하는 'V2Ray 클라이언트'는 그래픽 인터페이스가 있는 관리 프로그램을 통칭하는 경우가 많지만, 인터페이스 프로그램과 코어는 서로 다릅니다. 문제를 진단할 때는 클라이언트 이름과 실제로 실행 중인 코어를 각각 기록해 인터페이스 문제와 연결 문제를 구분하세요.
Xray는 V2Ray와 역사적 연관성이 있는 독립 프록시 코어 프로젝트로, 연결 설정, 프로토콜 처리, 라우팅 실행 등을 담당합니다. v2rayNG는 Xray 코어를 사용합니다. 데스크톱 클라이언트에서 사용할 수 있는 코어는 실제 설정을 확인하세요. 지원 프로토콜과 매개변수는 코어 버전에 따라 다르므로, 코어를 바꾼 뒤에도 모든 고급 옵션의 의미가 같다고 가정하면 안 됩니다.
V2Fly는 V2Ray 코어와 관련 구성 요소를 지속적으로 유지 관리하는 커뮤니티 프로젝트이며, v2flyNG는 Android에서 이 코어 체계를 사용하는 클라이언트입니다. V2Fly와 Xray는 기능 발전 방향이 완전히 같지 않으므로 한 코어에서 인식하는 확장 매개변수를 다른 코어에서도 바로 사용할 수 있다고 볼 수 없습니다. 이름이 비슷하다는 이유로 교체하지 말고 설정 요구사항을 먼저 확인하세요.
그래픽 클라이언트는 구독 가져오기, 노드 선택, 라우팅 관리, 프록시 모드 전환 등의 기능을 제공하고 코어를 통해 실제 연결을 처리합니다. v2rayN은 Windows, macOS, Linux용이며 v2rayNG와 v2flyNG는 Android용입니다. 클라이언트마다 같은 기능의 메뉴 이름이 다를 수 있으므로 데스크톱의 시스템 프록시 메뉴를 모바일 기기에 그대로 적용하면 안 됩니다.
클라이언트 비교 보기 →구독은 설정을 제공하는 출처이고 노드는 개별 연결 설정입니다. 테스트 결과는 특정 시점의 참고 자료일 뿐입니다.
구독은 링크를 통해 여러 연결 설정을 가져오고 업데이트하는 방식입니다. 프록시 프로토콜도 아니며 연결이 이미 활성화되었다는 뜻도 아닙니다. 가져온 뒤에는 목록을 업데이트하고 노드를 선택한 다음 적절한 프록시 모드를 설정해야 합니다. 구독 링크에 접속 정보가 포함될 수 있으므로 스크린샷, 로그, 문의 내용을 공유하기 전에 전체 링크를 가리고 공개 페이지에 게시하지 마세요.
구독 가져오기 안내 보기 →노드는 클라이언트에 등록된 하나의 연결 설정으로, 일반적으로 서버 주소, 포트, 프로토콜, 인증 정보 및 전송 매개변수를 포함합니다. 목록에 표시되는 이름은 알아보기 위한 라벨일 뿐 실제 위치, 사용 가능 여부, 성능을 판단하는 근거가 되지 않습니다. 노드를 선택한 뒤에도 코어가 실행 중인지, 앱 트래픽이 실제로 클라이언트로 전달되는지 확인해야 합니다.
구독 그룹은 출처나 용도에 따라 구독과 노드를 정리해 개별 업데이트, 필터링, 관리를 쉽게 해줍니다. 그룹을 업데이트하면 구독 내용이 바뀔 수 있으며, 직접 편집한 노드 매개변수도 다음 업데이트 때 덮어써질 수 있습니다. 구체적인 동작은 클라이언트마다 다릅니다. 오래 보관해야 하는 수동 설정은 자동 업데이트되는 구독과 분리해 관리하는 편이 좋습니다.
지연 시간은 특정 테스트에 걸린 시간입니다. TCP 테스트와 프록시를 통해 테스트 주소에 접속해 측정하는 '실제 연결 지연 시간'은 서로 다른 지표입니다. 후자는 DNS, 핸드셰이크, 테스트 대상, 현재 네트워크 상태에도 영향을 받습니다. 테스트 값이 낮다고 다운로드 속도가 더 빠른 것은 아니며, 테스트에 실패했다면 노드를 사용할 수 없는 것인지 테스트 주소에 접속할 수 없는 것인지 먼저 구분해야 합니다.
먼저 트래픽이 클라이언트로 들어오는지 확인한 다음, 규칙에 따라 어떤 경로로 나가는지 살펴보세요.
라우팅 규칙은 도메인, IP 주소 등의 조건에 따라 요청을 프록시로 보내거나 직접 연결하거나 차단합니다. 일반적인 설정에서는 규칙이 순서대로 적용되며 먼저 일치한 규칙이 이후 처리에 영향을 줍니다. 일치하는 규칙이 없을 때는 기본 출구도 확인해야 합니다. 전역 모드라고 해서 모든 앱의 트래픽이 자동으로 전달되는 것은 아닙니다. 트래픽이 클라이언트에 들어오지 않으면 내부 규칙도 적용되지 않습니다.
GeoIP는 지리적 영역이나 기타 기준으로 IP 주소를 분류한 규칙 데이터로, 대상 주소의 연결 경로를 결정하는 데 사용할 수 있습니다. 실시간 위치 확인 서비스가 아니므로 데이터 업데이트나 서비스 배치 변경에 따라 주소 분류가 실제와 다를 수 있습니다. 도메인 요청의 경우 먼저 주소를 확인하는지, 언제 IP를 기준으로 일치 여부를 판별하는지는 라우팅의 도메인 처리 정책에도 영향을 받습니다.
GeoSite는 사이트, 서비스, 용도에 따라 도메인을 분류해 라우팅 규칙이 여러 대상을 한 번에 일치시킬 수 있도록 합니다. 분류 이름이 해당 서비스의 모든 도메인을 항상 포함한다는 뜻은 아닙니다. 하나의 서비스가 로그인, 정적 리소스, 콘텐츠 전송 등에 별도 도메인을 사용할 수 있습니다. 페이지 일부가 로드되지 않는다면 모든 트래픽을 같은 경로로 바꾸기 전에 로그에서 일치하지 않은 요청을 확인하세요.
시스템 프록시는 운영체제의 프록시 설정을 따라가는 앱에 연결 경로를 제공하지만, 일부 앱은 이 설정을 무시합니다. TUN 모드는 가상 네트워크 인터페이스로 트래픽을 받으며, 일반적으로 라우팅, DNS, 관련 권한도 설정해야 합니다. 적용 범위는 구현 방식에 따라 다릅니다. 먼저 일반 프록시 모드에서 연결이 정상인지 확인한 다음 TUN을 활성화하면 여러 경로가 동시에 개입해 문제를 찾기 어려워지는 것을 피할 수 있습니다.
프록시 모드 문제 해결 보기 →암호화는 전송 내용을 보호하고 인증은 연결 상대를 확인합니다. 인증을 끄는 것으로 설정 오류를 해결할 수는 없습니다.
TLS는 전송 데이터를 보호하고 상대방의 신원을 확인하며, 프록시 연결의 보안 계층 설정에 자주 사용됩니다. 인증서 도메인 불일치, 인증서 만료, 기기의 시스템 시간 오류는 핸드셰이크 실패를 일으킬 수 있습니다. TLS는 해당 연결 구간을 보호할 뿐 대상 서비스가 반드시 신뢰할 수 있음을 보장하지 않으며, 앱 자체의 계정 및 데이터 보안 대책을 대신하지도 않습니다.
REALITY는 Xray 생태계의 전송 보안 기능으로, 독립적인 구독 형식이나 특정 그래픽 클라이언트를 뜻하지 않습니다. 설정할 때는 서버 요구사항에 맞춰 공개 키, 서버 이름, 짧은 ID 등의 매개변수를 입력해야 하며 클라이언트와 코어도 해당 기능을 지원해야 합니다. 일반 TLS 설정의 보안 계층 이름만 REALITY로 바꾼다고 연결이 되는 것은 아닙니다.
SNI는 TLS 핸드셰이크에서 대상 서버 이름을 전달하는 확장 기능으로, 같은 주소에서 서버가 적절한 서비스와 인증서를 선택하도록 돕습니다. 실제 연결에 사용하는 IP 주소와 다를 수 있지만 서버 설정 및 인증 요건에 맞아야 합니다. 도메인 관련 오류가 발생하면 설정 출처를 확인해 서버 이름을 대조하고, 다른 웹사이트의 도메인을 임의로 입력하지 마세요.
allowInsecure는 일부 설정에서 TLS 인증서 검증을 건너뛸지 지정하는 옵션으로, 활성화하면 상대방 인증이 약화됩니다. 잘못된 SNI, 인증서 체인, 시스템 시간 문제를 해결해 주지 않으며 호환되지 않는 프로토콜을 사용할 수 있게 만들지도 않습니다. 인증서 오류가 발생하면 먼저 원인을 찾아야 하며, 일반적인 사용에서 검증 건너뛰기를 만능 해결책으로 삼지 마세요.
도메인 조회, 연결 설정, 로컬 리스닝은 서로 다른 단계이므로 각각 확인해야 합니다.
DNS는 도메인을 IP 주소 등의 레코드로 변환하며, 앱이 연결을 시작하기 전에 필요한 경우가 많습니다. 운영체제, 브라우저, 프록시 코어가 서로 다른 DNS 경로를 사용할 수 있으므로 웹 트래픽이 프록시를 통한다고 해서 DNS 조회도 같은 경로를 이용하는 것은 아닙니다. 문제를 확인할 때는 먼저 누가 어디에 조회하는지 확인한 다음 조회 결과와 이후 연결 경로를 점검하세요.
FakeDNS는 도메인에 가상 IP를 할당하고 매핑 정보를 보관해, 프록시 코어가 이후 연결을 받았을 때 해당 도메인을 복원할 수 있도록 합니다. 라우팅과 연결 처리에 사용하는 방식입니다. 반환되는 주소는 실제 서버 주소가 아닌 경우가 많으므로 서버 위치를 판단하는 데 사용하면 안 됩니다. 활성화한 뒤에는 관련 트래픽이 매핑을 인식하는 코어로 돌아와야 합니다. 그렇지 않으면 DNS 조회는 성공해도 연결되지 않을 수 있습니다.
DNS 누수는 도메인 조회가 예상한 경로로 전송되지 않고 다른 DNS 리졸버나 네트워크 경로를 통해 전송되는 현상입니다. 누수 여부를 판단하려면 먼저 예상 경로를 정해야 합니다. 테스트 페이지에 표시된 리졸버 이름만 보고 결론 내리면 안 됩니다. 시스템 DNS, 브라우저의 보안 DNS, TUN의 DNS 처리 설정이 모두 결과에 영향을 줄 수 있으므로 실제 조회 동작을 함께 확인해야 합니다.
로컬 리스닝 포트는 클라이언트가 기기에서 앱 연결을 받는 진입점입니다. 일반적인 화면에는 10808이 표시될 수 있지만 현재 설정을 기준으로 확인해야 합니다. 앱에 입력하는 프록시 유형, 주소, 포트는 실제 리스닝 항목과 일치해야 하며 HTTP와 SOCKS 진입점을 임의로 바꿔 쓰면 안 됩니다. 포트를 변경했다면 시스템 프록시와 앱에 직접 입력한 설정도 함께 확인하세요. 다른 프로세스가 포트를 사용 중이면 코어가 정상적으로 시작되지 않을 수 있습니다.