VMess와 VLESS 차이점: 초보자도 1분 만에 이해하는 프로토콜 비교

VMess와 VLESS의 암호화, 설정 항목, 클라이언트 호환성 차이를 쉽게 정리했습니다. 구독에 표시된 프로토콜을 이해하고 혼란 없이 가져올 수 있습니다.

이 글의 핵심

VMess와 VLESS는 서로 다른 클라이언트가 아니라 프록시 프로토콜입니다. VMess는 일반적으로 프로토콜 자체의 데이터 암호화를 사용하고, VLESS 설정은 TLS 또는 REALITY로 전송을 보호하는 경우가 많습니다. 일반 사용자는 구독 설정을 그대로 가져온 뒤 프로토콜, 전송 방식, 보안 설정이 맞는지 확인하는 편이 프로토콜을 직접 바꾸는 것보다 안전합니다. 이 글에서는 노드 확인부터 가져오기 오류 해결까지, 일치해야 하는 항목과 그대로 적용하면 안 되는 설정을 살펴봅니다.

1분 만에 구분하기: 프로토콜, 전송 방식, 보안 계층

v2rayN의 노드 편집 창에는 VMess, VLESS, WebSocket, TLS가 함께 표시될 수 있습니다. 각각 같은 계층에 속하는 것은 아닙니다. VMess와 VLESS는 프록시 프로토콜이고, TCP와 WebSocket 등은 연결 전송 방식을 정합니다. TLS와 REALITY는 각각 연결을 보호하고 상대를 인증하는 기능을 제공합니다. 이름 하나만 확인해서는 노드 설정 전체를 판단할 수 없습니다.

비교 항목VMessVLESS
인증 정보일반적으로 UUID 사용일반적으로 UUID 사용
일반적인 암호화 설정일반적으로 auto 등의 옵션을 사용하며, 구현 방식에 따라 적절한 알고리즘 선택일반적인 기존 설정은 encryption이 none이며 TLS 또는 REALITY를 별도로 설정
추가 확인 항목암호화 방식, 이전 설정의 alterId보안 계층, flow, REALITY에 필요한 매개변수
서로 바꿔 사용할 수 있나요?아니요. 서버와 클라이언트의 프로토콜이 일치해야 합니다.

UUID는 서버가 사용자를 식별하는 인증 정보 중 하나지만, 전체 설정을 뜻하지는 않습니다. 두 노드의 UUID가 같아도 포트, 프로토콜, 전송 경로가 다르면 서로 대체할 수 없습니다. 프로토콜 이름만으로 연결 품질을 알 수도 없습니다. 통신사 간 연결 상태, 혼잡도, 서버 부하가 실제 사용 경험에 더 큰 영향을 주는 경우가 많습니다.

암호화 차이: VLESS의 none이 연결 전체가 평문이라는 뜻은 아닙니다

VMess는 일반적으로 프로토콜 계층에서 프록시 데이터를 암호화하며, 최신 설정은 대개 VMess AEAD를 사용합니다. 전송을 보호하기 위해 바깥 계층에 TLS를 추가할 수도 있습니다. VMess의 데이터 암호화 옵션과 TLS 설정은 서로 다른 계층을 처리하므로 같은 설정으로 혼동하지 마세요.

일반적인 기존 VLESS 설정의 encryption=none은 VLESS 자체 계층을 설명하는 값이지, TLS나 REALITY가 작동하지 않는다는 뜻이 아닙니다. 연결이 보호되는지 판단하려면 보안 계층 설정도 확인해야 합니다. VLESS와 일반 TCP를 사용하면서 별도의 전송 보호를 설정하지 않았다면, VLESS와 TLS를 함께 사용하는 경우와 같은 보안 조건으로 볼 수 없습니다.

확인 방법: 전체 조합을 먼저 읽고 개별 항목을 살펴보세요

VLESS의 none이 보이면 먼저 TLS 또는 REALITY 설정을 확인하세요. VMess의 auto도 전송 방식과 서버 요구 사항을 함께 확인해야 합니다. 안전하지 않아 보이는 문구를 없애려고 구독 설정을 임의로 바꾸지 마세요.

설정 항목 확인: 포트, UUID, alterId, flow

가져오기 오류와 연결 오류는 다릅니다. 전자는 링크 형식이 호환되지 않거나 내용이 불완전할 때 자주 발생하고, 후자는 노드가 목록에 추가된 뒤 발생하는 경우가 많습니다. 직접 확인할 때는 주소, 포트, UUID를 먼저 살펴보고 프로토콜별 항목, 전송 방식, 보안 계층을 차례로 점검하세요.

443
TLS 서버에서 흔히 쓰는 포트: 고정값이 아닙니다
0
최신 VMess AEAD 설정에서 흔히 사용하는 alterId 값
10808
로컬 프록시 포트 예시: 클라이언트에 표시된 값을 확인하세요

이 세 숫자는 서로 다른 위치에 사용됩니다. 443은 원격 서버가 수신 대기할 수 있는 포트이고, 10808은 로컬 앱이 프록시에 연결할 때 사용하는 포트일 수 있습니다. alterId는 VMess의 이전 설정 항목입니다. 브라우저에 10808을 설정했다고 해서 노드의 원격 포트까지 10808로 바꾸면 안 됩니다. 최신 VMess AEAD 설정에서는 일반적으로 alterId를 0으로 설정합니다. 이전 가이드에서 0이 아닌 값을 봤다면 새 노드에 그대로 적용하지 말고 제공 업체에 먼저 확인하세요.

  1. 주소와 포트: 제공 업체가 안내한 전체 값을 입력하세요. TLS 노드가 반드시 443 포트를 사용하는 것은 아니며, 다른 포트에서도 TLS를 사용할 수 있습니다.
  2. UUID: 공백이 들어가지 않도록 전체 값을 복사하세요. 구독 토큰을 사용자 ID 항목에 잘못 입력하지 마세요.
  3. VMess 암호화: 구독 설정을 그대로 유지하세요. VLESS의 encryption 값을 그대로 가져오면 안 됩니다.
  4. VLESS flow: 서버에서 요구하는 경우에만 입력하세요. 예를 들어 xtls-rprx-vision을 사용할 수 있습니다. 모든 VLESS 노드가 Vision을 사용하는 것은 아닙니다.
  5. 전송 및 보안 계층: 경로, Host, 서버 이름 등의 항목을 확인하세요. REALITY 매개변수를 일반 TLS 노드에 적용하면 안 됩니다.

클라이언트 호환성: 앱 이름뿐 아니라 코어 기능을 확인하세요

v2rayN은 데스크톱 클라이언트이며, 실제 연결은 v2rayN이 호출하는 코어가 처리합니다. v2rayNG는 Xray 코어를 사용하는 Android 클라이언트이고, v2flyNG는 v2fly 코어를 사용합니다. 기본 VLESS를 지원한다고 해서 모든 VLESS 확장 조합까지 지원하는 것은 아닙니다. 특히 이를 근거로 REALITY, Vision 또는 새로운 전송 방식이 지원된다고 단정할 수 없습니다.

구독 설정 그대로 가져오기

권장

제공 업체가 지정한 프로토콜과 보안 계층을 유지한 뒤, 현재 클라이언트 코어가 전체 설정을 인식하는지 확인하세요. 이미 정상 작동하는 노드가 있다면 프로토콜 이름만 바꾸려고 설정을 다시 조합할 필요가 없습니다.

추천 대상: 첫 설정, 일상적인 사용, 여러 기기에서 가져오기

노드 직접 추가

전체 설정을 받은 경우에만 직접 입력하세요. VMess와 VLESS 모두 서버 설정이 함께 맞아야 하므로 클라이언트 드롭다운에서 프로토콜만 바꿔서는 전환되지 않습니다.

추천 대상: 자체 서버 운영, 누락된 항목 확인, 가져온 설정 점검

가져오기 전에 클라이언트의 ‘정보’ 페이지에서 코어 버전을 확인하세요. 로그에 특정 항목, flow 또는 전송 방식이 지원되지 않는다는 내용이 명확히 표시되면 UUID를 반복해서 바꾸지 말고 버전과 선택한 코어부터 확인해야 합니다. Xray 전용 설정 조합은 v2flyNG가 VLESS라는 이름을 인식한다는 이유만으로 호환된다고 판단할 수 없습니다.

두 기기에서 확인하는 방법: 구독 출처는 같게, 실행 기능은 각각 확인

데스크톱: v2rayN
  • ‘구독 그룹’ → ‘구독 그룹 설정’에서 구독 주소를 저장합니다.
  • 구독을 업데이트한 뒤 노드 편집 창에서 프로토콜과 보안 계층을 확인합니다.
  • REALITY 등의 조합을 사용할 때는 실제로 호출되는 코어와 해당 버전의 지원 여부를 확인합니다.
Android: v2rayNG 또는 v2flyNG
  • 현재 앱이 구독에서 반환하는 형식을 지원하는지 먼저 확인합니다.
  • v2rayNG는 Xray 기능을 기준으로, v2flyNG는 v2fly 기능을 기준으로 확인합니다.
  • 각 기기에서 구독을 따로 업데이트하고 노드 수와 주요 항목을 확인하세요. 자동으로 동기화된다고 가정하지 마세요.

버전에 따라 메뉴 이름이 달라질 수 있으며, 같은 구독도 요청한 클라이언트에 따라 서로 다른 내용을 반환할 수 있습니다. 두 기기에서 각각 확인해야 합니다.

구독 가져오기와 연결 확인: 형식부터 확인한 다음 로그 살펴보기

단일 노드 공유 링크와 구독 주소는 용도가 다릅니다. 전자는 보통 노드 하나의 설정을 포함하며, 일반적인 접두사는 vmess:// 또는 vless://입니다. 후자는 일반적으로 여러 노드 목록을 반환하는 네트워크 주소입니다. 구독 주소를 단일 노드 편집 창에 입력하거나 웹 페이지 내용을 통째로 공유 링크로 사용하면 가져오기에 실패할 수 있습니다.

  1. 입력 유형을 확인하세요. 단일 노드 링크는 클립보드 가져오기를 사용하고, 구독 주소는 구독 그룹에 추가한 뒤 업데이트하세요. 구독 관리 페이지 주소를 구독 API 주소로 사용하지 마세요.
  2. 가져온 설정을 확인하세요. 노드 편집 창을 열어 메모만 보고 프로토콜을 추측하지 말고, 실제 프로토콜을 확인하세요. 포트, 전송 방식, 보안 계층도 점검해야 합니다.
  3. 시작한 뒤 로그를 확인하세요. 먼저 설정 파싱 오류를 확인한 다음 연결 시간 초과, 인증 실패, 인증서 검증 실패 여부를 살펴보세요. 오류 유형에 따라 해결 방법이 다릅니다.
  4. 마지막으로 앱의 프록시 설정을 확인하세요. 데스크톱 브라우저는 시스템 프록시 또는 별도의 프록시 설정이 필요한 경우가 많습니다. 앱이 프록시를 사용하지 않으면 노드가 정상 작동하더라도 트래픽이 노드를 통과하지 않습니다.

속도 측정 결과는 특정 테스트 조건에서의 성능만 보여 줄 뿐, VLESS가 항상 VMess보다 빠르다는 증거는 아닙니다. 프로토콜을 바꾸면서 서버, 전송 방식, 네트워크 경로까지 함께 바뀌는 경우가 많아 프로토콜 오버헤드만 따로 비교하기 어렵습니다. 기존 VMess 노드가 안정적으로 연결된다면 그대로 유지하세요. 제공 업체가 현재 클라이언트에 맞는 VLESS 노드를 제공한다면 웹 페이지 로딩, 연속 다운로드, 네트워크 전환 후 복구 상태를 각각 테스트하세요.

자주 묻는 질문: 노드 이름이 비슷해도 설정을 그대로 복사하면 안 되는 이유

VMess를 VLESS로 바꾸면 바로 연결되나요?

아니요. 제공 업체에 VLESS 설정을 요청하거나 자체 서버에 해당 인바운드를 추가한 뒤 새 노드를 가져와야 합니다. 테스트에 실패했을 때 되돌릴 수 있도록 기존에 작동하는 VMess 노드는 덮어쓰지 마세요.

VLESS에 none이 표시됩니다. auto로 바꿔야 하나요?

일반적인 기존 VLESS 설정은 encryption을 none으로 유지하고, TLS 또는 REALITY가 제공 업체의 안내와 일치하는지 확인해야 합니다. auto는 VMess 암호화 옵션에서 흔히 사용하는 값이므로 다른 프로토콜 설정에 그대로 적용하면 안 됩니다.

같은 구독인데 PC에서는 되고 Android에서는 안 됩니다. 어떻게 해야 하나요?

먼저 두 기기에서 구독을 각각 업데이트한 뒤 노드의 프로토콜, 전송 방식, 보안 계층을 비교하고 코어 버전도 확인하세요. 연결되지 않는 노드가 REALITY 또는 Vision에 의존한다면 Android 코어의 지원 여부를 집중적으로 살펴보세요. 노드 메모만 비교해서는 안 됩니다.

연결 시간 초과가 표시됩니다. 프로토콜과 포트 중 무엇을 먼저 바꿔야 하나요?

둘 다 무작정 바꾸면 안 됩니다. 먼저 구독이 만료되지 않았는지, 주소와 포트가 올바른지 확인한 뒤 네트워크에서 서버에 접속할 수 있는지 살펴보세요. 제공 업체가 대체 포트나 다른 프로토콜 설정을 명확히 안내한 경우에만 새 노드를 추가해 테스트하세요.

v2rayN 다운로드