VMess
VMess는 Project V 생태계의 프록시 프로토콜로, 사용자 식별자를 사용해 인증하며 최신 구현에서는 일반적으로 AEAD를 사용합니다. 클라이언트와 서버의 프로토콜 매개변수가 일치해야 하며, 시스템 시간 차이가 크면 인증에 문제가 생길 수도 있습니다. 연결에 실패하면 먼저 가져온 설정이 완전한지 확인하고 시스템 시간을 점검하세요. 이름만 보고 암호화 옵션을 바꾸지는 마세요.
설정 상황에 맞춰 용어를 찾아보고 프로토콜, 코어, 프록시 모드를 구분해 보세요. 먼저 각 용어의 용도를 확인한 뒤 클라이언트 옵션과 비교하면 모든 용어를 한꺼번에 외울 필요가 없습니다.
클라이언트를 설정 중인가요? 이 페이지를 열어 둔 채 용어를 확인하고 구독 가져오기 안내를 따라 진행하세요. 메뉴 이름은 버전에 따라 다를 수 있으니 실제 화면을 기준으로 확인하세요.
먼저 ‘인증 방식’과 ‘전송 방식’을 구분하세요. 하나의 프로토콜에 여러 전송 방식을 조합할 수 있으므로 프로토콜 이름만으로 전체 설정의 호환성을 판단할 수 없습니다.
VMess는 Project V 생태계의 프록시 프로토콜로, 사용자 식별자를 사용해 인증하며 최신 구현에서는 일반적으로 AEAD를 사용합니다. 클라이언트와 서버의 프로토콜 매개변수가 일치해야 하며, 시스템 시간 차이가 크면 인증에 문제가 생길 수도 있습니다. 연결에 실패하면 먼저 가져온 설정이 완전한지 확인하고 시스템 시간을 점검하세요. 이름만 보고 암호화 옵션을 바꾸지는 마세요.
VLESS는 가벼운 프록시 프로토콜로, 자체적으로 완전한 전송 암호화를 제공하지 않아 보통 TLS 또는 REALITY와 함께 사용합니다. 구독에 VLESS라고 표시되어도 프로토콜 종류만 알 수 있을 뿐이므로 전송 방식, 보안 계층, 흐름 제어 매개변수도 확인해야 합니다. 노드를 사용할 때는 구독에서 제공한 조합을 유지하고 다른 노드의 매개변수를 그대로 적용하지 마세요.
Trojan은 일반적으로 TLS를 통해 데이터를 전송하고 비밀번호로 인증합니다. 서버 주소와 포트, 비밀번호 외에도 서버 이름과 인증서 검증 설정이 연결에 영향을 줍니다. 인증서 오류가 발생하면 먼저 주소, 시스템 시간, 서버 이름을 확인하세요. 인증서 검증을 끄면 신원 확인이 약해지므로 일상적인 해결 방법으로 사용해서는 안 됩니다.
REALITY는 Xray 생태계의 전송 보안 메커니즘으로, VLESS 설정에 자주 사용되며 별도의 구독 링크 형식은 아닙니다. 서버가 제공한 공개 키, 서버 이름, 짧은 ID 등의 매개변수가 일치해야 하며 일부 조합에는 흐름 제어 설정도 필요합니다. 구형 클라이언트에서 해당 항목을 인식하지 못한다면 항목을 삭제하고 연결을 시도하기보다 클라이언트와 코어의 지원 여부를 먼저 확인하세요.
전송 방식은 프록시 프로토콜 데이터가 네트워크를 통과하는 방법을 말합니다. TCP를 직접 사용하거나 WebSocket에 실어 보낼 수 있습니다. VMess, VLESS 같은 프록시 프로토콜과는 다른 계층의 개념입니다. WebSocket을 사용할 때는 경로와 Host 등의 항목이 연결에 필요할 수 있으므로 수정 전에 서버 요구 사항을 확인하세요. 주소와 포트만 남겨서는 안 됩니다.
클라이언트 화면은 설정을 관리하고 코어는 연결을 처리합니다. 두 역할을 이해해야 문제가 구독 관리, 설정 생성, 코어 실행 중 어디에서 발생했는지 판단할 수 있습니다.
Project V는 V2Ray를 중심으로 형성된 오픈 소스 네트워크 프록시 도구 생태계로, 프로토콜 구현과 설정 방식, 관련 도구를 포함합니다. GUI 클라이언트, 프록시 코어, 구독 서비스는 각각 다른 역할을 하며 하나의 제품으로 보면 안 됩니다. 클라이언트를 다운로드하면 도구를 준비한 것일 뿐, 실제 연결에는 사용 가능한 서버 설정과 올바른 매개변수가 필요합니다.
Xray는 V2Ray에서 발전한 프록시 코어 프로젝트로, 프로토콜 처리와 라우팅 결정, 아웃바운드 연결을 담당합니다. REALITY도 Xray 생태계의 관련 기술입니다. 클라이언트에서 특정 기능을 사용할 수 있는지는 실제로 호출하는 코어 버전과 화면에서 해당 매개변수를 지원하는지에 따라 달라집니다. 문제를 확인할 때는 앱 이름만 보지 말고 클라이언트와 코어 정보를 함께 기록하세요.
V2Fly는 V2Ray 코어와 관련 구성 요소를 관리하는 커뮤니티 프로젝트로, V2Ray의 프로토콜 및 설정 생태계를 이어갑니다. V2Fly와 Xray는 일부 개념을 공유하지만 기능과 설정 항목, 지원 현황이 완전히 같지는 않습니다. v2flyNG 등의 클라이언트를 사용할 때는 실제 코어 기능에 맞는 설정을 선택하고, 모든 Xray 설정이 그대로 작동한다고 가정하지 마세요.
GUI 클라이언트는 구독 관리, 서버 선택, 로그 확인, 프록시 설정 화면을 제공하며 v2rayN, v2rayNG, v2flyNG 등이 있습니다. 보통 화면에서 설정한 내용을 실행 설정으로 변환한 뒤 코어를 호출해 트래픽을 처리합니다. 클라이언트 화면이 정상적으로 열려도 코어가 성공적으로 시작된 것은 아닙니다. 문제가 발생하면 실행 로그도 확인하세요.
프록시 코어는 인바운드 트래픽을 받아 규칙을 적용하고 아웃바운드 연결을 만드는 실행 구성 요소입니다. 포트 사용 중, 지원되지 않는 설정 항목, 권한 부족 등으로 코어가 시작되지 않을 수 있습니다. 클라이언트에 서버가 표시되지만 모든 요청이 실패한다면 원격 서버를 점검하기 전에 코어가 실행 중인지 확인하세요. 로컬 실행 오류를 노드 문제로 오인하지 않도록 주의해야 합니다.
구독은 설정을 가져오고, 노드는 연결 설정 하나를 나타내며, 테스트 결과는 지정된 조건에서의 성능만 보여 줍니다. 세 가지를 구분하면 업데이트와 문제 해결이 쉬워집니다.
구독 링크는 서버 설정 목록을 가져오는 주소입니다. 클라이언트가 응답 내용을 읽어 선택 가능한 서버 항목을 만듭니다. 링크에는 접근 인증 정보가 포함되는 경우가 많으므로 빠짐없이 복사하고 안전하게 보관하세요. 스크린샷이나 대화 기록, 공개 페이지에 올리지 마세요. 구독을 업데이트하면 설정을 다시 가져올 뿐, 활성 서버를 선택하거나 시스템 프록시를 켜지는 않습니다.
노드는 보통 클라이언트 목록에 있는 서버 연결 설정 하나를 말하며 주소, 포트, 프로토콜, 인증 정보, 전송 매개변수를 포함합니다. 노드 이름은 메모일 뿐, 서버 위치나 실제 네트워크 경로를 입증하지 않습니다. 노드를 선택한 뒤에도 프록시 인바운드와 라우팅 모드를 확인해야 합니다. 목록에 항목이 있다고 해서 지금 연결할 수 있다는 뜻은 아닙니다.
구독 그룹은 출처별로 서버 설정을 관리하는 컨테이너로, 보통 메모와 구독 주소, 자동 업데이트 설정을 저장합니다. 여러 설정 출처를 구분해 업데이트 중 서버 항목이 뒤섞이는 일을 막을 수 있습니다. 구독 업데이트 과정에서 해당 출처의 설정이 덮어써질 수 있으므로 수동으로 수정하기 전에 클라이언트의 업데이트 동작을 확인하세요. 유지해야 할 사용자 설정은 별도로 관리할 수 있습니다.
지연 시간은 특정 테스트를 시작한 뒤 응답을 받을 때까지 걸리는 시간이며, 측정 방식과 대상, 당시 네트워크 상태에 따라 달라집니다. 포트 연결 테스트, 요청 테스트, 실제 웹페이지 사용 경험은 서로 같지 않으며 지연 시간이 짧아도 다운로드 속도가 빠르다고 보장할 수 없습니다. 노드를 비교할 때는 가능한 한 같은 방식과 대상을 사용하고 여러 번 측정해 한 번의 결과만으로 판단하지 마세요.
실제 연결 지연 시간은 보통 프록시 연결을 통해 지정된 테스트 주소에 접속하는 데 걸리는 시간을 말합니다. 단순히 서버 포트 연결 여부를 확인하는 것보다 실제 앱의 요청 과정에 가깝습니다. 그래도 테스트 사이트와 이름 확인 방식, 제한 시간 설정에 따라 결과가 달라지며 모든 웹사이트의 사용 경험을 나타내지는 않습니다. 테스트에 실패하면 로그를 확인해 프록시 핸드셰이크 실패, 대상에 연결할 수 없음, 테스트 서비스 응답 이상 중 무엇인지 판단하세요.
먼저 요청이 코어로 들어오는지 확인한 다음 어떤 규칙이 적용됐는지 살펴보세요. ‘어떤 트래픽을 가로챌지’와 ‘어느 출구를 사용할지’는 서로 다른 문제입니다.
라우팅 규칙은 도메인, 대상 IP, 포트, 인바운드 등의 조건에 따라 요청의 아웃바운드를 선택합니다. 일반적으로 직접 연결, 프록시, 차단 중 하나로 처리합니다. 규칙은 순서대로 적용되는 경우가 많아 앞쪽의 범위가 넓은 규칙이 뒤쪽의 세부 규칙보다 먼저 적용될 수 있습니다. 사용자 지정 규칙을 추가한 뒤에는 저장 여부만 확인하지 말고 로그나 실제 요청으로 적용 결과를 검증하세요.
트래픽 분기는 요청마다 다른 출구를 사용하도록 하는 정책입니다. 예를 들어 일부 서비스는 직접 연결하고 나머지는 프록시를 통하게 할 수 있습니다. 보통 도메인 및 IP 분류에 의존하며 DNS 확인 결과, 규칙 순서, 기본 아웃바운드의 영향을 받습니다. 특정 앱이 예상대로 연결되지 않으면 먼저 트래픽이 코어로 들어오는지 확인한 뒤 규칙을 살펴보세요. 처음부터 분류 데이터 오류로 단정해서는 안 됩니다.
GeoIP는 IP 매칭에 사용하는 주소 모음으로, 지역이나 용도별로 분류해 라우팅의 대상 주소 조건으로 활용할 수 있습니다. 규칙 데이터에서의 분류를 나타내며 서버의 실제 위치를 실시간으로 측정하는 것은 아닙니다. 웹사이트가 콘텐츠 전송 네트워크를 사용하면 확인되는 IP가 바뀔 수 있으므로 GeoIP 매칭 결과도 DNS 응답과 데이터 버전의 영향을 받습니다.
GeoSite는 지역, 서비스, 용도별로 분류한 도메인 모음으로, 사이트별 라우팅 출구를 선택할 때 자주 사용합니다. GeoIP와는 매칭 대상이 다릅니다. GeoSite는 도메인, GeoIP는 IP를 대상으로 합니다. 대상 IP만 확인되는 접속에서는 도메인 규칙이 적용되지 않을 수 있습니다. 이때는 DNS, 트래픽 스니핑, 인바운드 방식을 함께 고려해 실제 매칭 과정을 파악해야 합니다.
클라이언트의 전역 프록시는 보통 코어에 들어온 트래픽이 우선 프록시를 통해 나가도록 하는 라우팅 모드를 뜻합니다. 기기의 모든 앱을 자동으로 가로채지는 않습니다. 시스템 프록시를 사용하지 않는 앱은 자체 네트워크 경로를 계속 이용할 수 있습니다. 더 많은 트래픽을 가로채야 한다면 전역 모드를 반복해서 전환하기보다 TUN이나 앱 내부 프록시 설정을 별도로 확인하세요.
시스템 프록시와 TUN은 트래픽이 클라이언트로 들어오는 방식을 결정하고, DNS와 스니핑은 도메인 정보가 라우팅에 반영되는 방식에 영향을 줍니다. 설정을 변경할 때는 한 번에 한 종류씩 조정해 쉽게 되돌릴 수 있도록 하세요.
시스템 프록시는 운영체제에 프록시 주소와 포트를 등록해 해당 설정을 따르는 앱이 요청을 클라이언트로 전달하도록 합니다. 일부 앱은 별도의 프록시 설정을 사용하거나 시스템 프록시를 전혀 읽지 않으므로, 기능을 켜도 모든 연결에 적용되지는 않습니다. 클라이언트를 종료한 뒤 사용할 수 없는 로컬 프록시 주소가 남아 있으면 앱이 인터넷에 연결되지 않을 수 있습니다. 이때는 시스템 프록시 설정을 확인하고 복구하세요.
TUN 모드는 가상 네트워크 인터페이스를 통해 매칭된 트래픽을 프록시 구성 요소로 전달하며, 더 많은 앱 트래픽을 가로채야 할 때 사용합니다. 보통 추가 권한이 필요하고 실제 동작은 라우팅, DNS, 제외 규칙에 따라 달라집니다. 기기에서 다른 가상 네트워크 어댑터나 VPN 도구를 함께 사용하면 라우팅 충돌이 발생할 수 있습니다. 먼저 TUN만 단독으로 확인한 다음 다른 구성 요소를 하나씩 다시 활성화하세요.
FakeDNS는 앱에 가상 IP를 반환하고, 이후 연결이 연동된 프록시 경로로 들어오면 해당 도메인을 복원해 라우팅과 연결 처리를 돕습니다. 이 주소는 대상 서버의 실제 공인 IP가 아니므로 연동된 처리 방식 없이 직접 사용할 수 없습니다. 관련 모드를 변경하거나 끈 뒤에도 이전 DNS 캐시가 접속에 영향을 줄 수 있으므로 클라이언트 안내에 따라 캐시와 연결 상태를 확인하세요.
DNS 누수는 도메인 조회가 예상한 정책과 다른 경로로 처리되는 현상입니다. 예를 들어 앱이 지정된 리졸버를 우회해 직접 조회를 보낼 수 있습니다. 누수 여부는 기대하는 DNS 정책에 맞춰 판단해야 하며, 테스트 페이지에 특정 지역이 표시된다는 이유만으로 결론을 내려서는 안 됩니다. 문제를 확인할 때는 시스템 DNS, 브라우저 보안 DNS, 코어의 이름 확인 설정, TUN의 DNS 가로채기 동작을 각각 살펴보세요.
트래픽 스니핑은 연결 초반의 프로토콜 특성에서 도메인 등의 정보를 파악해 라우팅 판단을 돕습니다. HTTPS 본문을 복호화하는 기능은 아니며 모든 암호화 연결에서 도메인을 식별할 수도 없습니다. 식별한 정보를 라우팅에만 사용할지 연결 대상을 덮어쓸지는 설정에 따라 달라집니다. 옵션을 변경하기 전에 클라이언트 설정이 실제로 어떤 동작을 하는지 확인하세요.