VMess와 VLESS 차이: Shadowrocket 수동 설정에서 확인할 항목

일반 사용자가 알아둘 암호화, UUID, alterId, TLS의 차이와 Add Server에서 제공된 설정값과 일치시켜야 할 항목을 정리합니다.

이 글의 핵심 내용

VMess와 VLESS는 Type(유형)만 바꾼다고 서로 전환되지 않습니다. 두 프로토콜 모두 UUID를 사용할 수 있지만 프로토콜 계층의 암호화, alterId, 전송 보안의 의미는 서로 다릅니다. 서비스 제공업체에서 받은 설정값으로 Shadowrocket을 수동 설정하려는 사용자를 위해, 프로토콜과 TLS를 먼저 구분한 뒤 주소, 포트, 인증 정보, 전송 항목을 차례로 확인하고 한 번에 하나씩 테스트해 오류를 찾는 방법을 설명합니다.

먼저 구분할 세 가지: 프로토콜, 전송 방식, TLS

Shadowrocket에서 VMess와 VLESS는 연결 항목의 프로토콜 유형입니다. WebSocket 등은 데이터를 전달하는 전송 방식을 나타내고, TLS는 전송 계층의 암호화와 인증을 담당합니다. 서로 같은 설정이 아닙니다. 서비스 제공업체가 “VLESS + WebSocket + TLS”라고 안내했다면 세 항목을 각각 확인해야 합니다. VLESS와 UUID만 입력하면 설정이 끝나는 것이 아닙니다.

VMess에는 프로토콜 계층의 인증 및 암호화 기능이 있으며, 실제 암호화 옵션은 서버와 호환되어야 합니다. VLESS 자체는 페이로드를 암호화하지 않으며, 인증이 곧 암호화를 뜻하지도 않습니다. 일반적으로 VLESS는 TLS 같은 안전한 전송 방식과 함께 구성되지만, 모든 VLESS 연결에 같은 TLS 설정을 일괄 적용해도 된다는 의미는 아닙니다.

확인 항목VMessVLESS
인증 정보일반적으로 UUID를 사용하며 서버 설정과 일치해야 합니다일반적으로 UUID를 사용하며 서버 설정과 일치해야 합니다
프로토콜 계층 암호화별도의 암호화 설정이 있으며 서버 설정에 맞춰야 합니다프로토콜 자체는 페이로드를 암호화하지 않습니다
alterId이전 버전과의 호환을 위한 항목입니다. 최신 AEAD 설정에서는 0을 사용합니다VMess의 alterId를 사용하지 않습니다
TLS프로토콜 계층 암호화와 함께 사용할 수 있으며, 구성에 따라 활성화합니다전송 보호에 자주 사용하며 UUID로 대체할 수 없습니다
전송 설정전송 유형, Host, Path 등이 서버 설정과 일치해야 합니다항목별로 일치 여부를 확인해야 하며 다른 연결 설정을 그대로 가져오면 안 됩니다

프로토콜 이름만으로 연결 속도나 사용 가능 여부를 판단할 수 없습니다. 둘 다 VLESS로 표시되어도 서버, 포트, 전송 방식, TLS 설정은 서로 다를 수 있습니다. 문제를 확인할 때는 이름만 보고 어느 쪽이 더 빠르다고 단정하지 말고 전체 설정을 비교하세요.

UUID, alterId, 암호화: 추측해서 입력하면 안 되는 값

UUID는 식별자이지 서버 주소가 아니며, 임의로 만들어 바로 사용할 수 있는 별칭도 아닙니다. 일반적인 텍스트 형식은 하이픈을 포함한 36자이며, 그중 32자는 16진수입니다. 복사할 때 앞뒤 공백이나 줄바꿈, 빠진 하이픈이 없는지 확인하세요. 형식이 올바르더라도 서버에 등록된 식별자와 다르면 인증에 실패합니다.

36자
하이픈을 포함하는 일반적인 UUID 텍스트 길이입니다. 형식이 맞아도 인증 정보가 유효하다는 뜻은 아닙니다
0
최신 VMess AEAD 설정에서 사용하는 alterId 값이며 속도 조절 항목이 아닙니다
443
TLS 서버 포트의 일반적인 예입니다. 실제 설정에는 안내받은 포트를 사용해야 합니다

alterId는 VMess의 이전 설계에 속합니다. 최신 VMess AEAD 설정에서는 alterId=0을 사용합니다. 오래된 자료를 따라 16, 32, 64로 임의 변경하지 마세요. 현재 설정에 0이 아닌 값이 명시되어 있다면, 모든 연결에 공통으로 적용되는 설정이라고 가정하지 말고 서비스 제공업체에 현재 서버 요구 사항을 확인하세요. VLESS에는 그대로 가져다 쓸 VMess의 alterId 항목이 없습니다.

VMess 암호화 옵션과 TLS는 서로 다른 설정입니다. 설정값에 auto, aes-128-gcm, chacha20-poly1305가 있다면 어떤 항목에 해당하는지 확인하고 원래 값 그대로 입력하세요. “VLESS 자체는 암호화하지 않는다”는 이유로 모든 연결에서 TLS를 끄거나, VMess 암호화 옵션을 VLESS에 그대로 입력해서는 안 됩니다.

확인 순서: 먼저 인증 정보를, 다음으로 전송 보호 방식을 확인하세요

UUID 형식이 잘못되었다면 원래 값을 다시 복사하세요. 형식이 정상인데도 연결되지 않으면 Type, VMess의 alterId와 암호화 설정, TLS 상태를 확인하세요. UUID를 반복해서 바꾸거나 인증서 검증을 끄는 방식으로 해결하려 하지 마세요.

Add Server 수동 설정 순서: 기본 항목부터 전송 항목까지

설정값은 서비스 제공업체에서 받으세요. 가져올 수 있는 전체 구독 정보가 있다면 먼저 가져온 뒤 항목을 확인하는 편이 수동 입력보다 누락을 줄이는 데 도움이 됩니다. 클라이언트 앱의 일회성 구매는 연결 서비스 이용권과 별개입니다. 이 글은 이미 보유한 설정값을 입력하고 확인하는 방법만 안내하며 연결 인증 정보는 제공하지 않습니다.

  1. 서버 추가 화면을 여세요.Home에서 오른쪽 위의 추가 버튼을 누른 다음 Add Server로 이동합니다. 먼저 Type을 VMess 또는 VLESS로 선택하세요. 유형을 바꾸면 화면에 표시되는 항목도 다시 확인해야 합니다.
  2. 연결 대상을 입력하세요.서버 도메인 또는 IP는 Address에, 안내받은 포트는 Port에 입력합니다. Address에는 일반적으로 https://, 경로, 포트 접미사를 포함하지 않습니다. TLS를 사용하더라도 서비스 제공업체가 안내한 포트를 입력해야 하며, 임의로 443으로 바꾸면 안 됩니다.
  3. 인증 정보와 프로토콜 설정을 입력하세요.UUID를 해당 인증 항목에 복사합니다. VMess는 alterId와 암호화 설정도 확인하고, VLESS에는 이 VMess 설정을 적용하지 마세요. 항목 이름은 프로토콜이나 인터페이스 언어에 따라 달라질 수 있으므로 표시 순서가 아니라 설정의 의미에 맞춰 입력하세요.
  4. 전송 방식을 선택하세요.안내된 설정에 따라 전송 유형을 지정합니다. WebSocket을 사용한다면 Host와 Path도 확인하세요. 다른 전송 방식을 사용할 때는 입력란을 채우려고 WebSocket 전용 항목을 억지로 추가하지 마세요.
  5. TLS 설정을 확인하세요.안내된 상태에 따라 TLS를 켜거나 끄고 Server Name / SNI, 인증서 검증 및 지정된 옵션을 확인합니다. 설정에 Flow 등 프로토콜 옵션이 명시되어 있다면 원래 값 그대로 유지하고 임의로 추가하지 마세요.
  6. 저장한 뒤 Home으로 돌아가세요.새 항목의 유형과 이름을 확인한 다음 해당 항목을 선택해 테스트합니다. 사용 가능한 유일한 기존 항목을 덮어쓰지 마세요. 비교하거나 복구할 수 있도록 원래 항목을 보관하세요.

TLS, Host, Path: 같은 도메인도 입력 위치가 다를 수 있습니다

TLS는 단순히 “암호화를 켜는” 설정이 아닙니다. 정상적인 인증서 검증을 위해서는 인증서의 신뢰 여부와 유효 기간, 대상 이름의 일치 여부도 확인해야 합니다. Address가 IP이고 인증서는 도메인용으로 발급되었다면 서비스 제공업체가 별도의 SNI를 안내할 수 있습니다. 각 항목의 용도를 구분하고 IP를 모든 이름 항목에 그대로 복사하지 마세요.

확인 방법: 전송 항목과 TLS 항목을 나누어 점검하세요

WebSocket 전송
  • 전송 유형은 서버 설정과 일치해야 합니다.
  • Host에는 안내된 요청 호스트 이름을 입력하고 프로토콜 접두사는 넣지 마세요.
  • Path의 맨 앞 슬래시, 대소문자, 기존 쿼리 매개변수를 그대로 유지하세요.
  • /ws와 /WS는 임의로 서로 바꿔 쓸 수 없습니다.
TLS 보안 설정
  • 포트 번호로 추측하지 말고 TLS 상태를 원래 설정과 일치시키세요.
  • SNI에는 안내된 서버 이름을 사용합니다. 일반적으로 경로와 포트는 포함하지 않습니다.
  • 인증서 검증을 유지하세요. 오류가 발생하면 이름과 기기 시간을 먼저 확인하세요.
  • ALPN 등 추가 항목은 설정에 명시된 경우에만 안내된 값 그대로 입력하세요.

먼저 어느 단계에서 실패하는지 확인한 뒤 해당 항목을 수정하세요. TLS 핸드셰이크가 실패했다면 WebSocket Path를 바꾸는 것으로 인증서 문제를 해결할 수는 없습니다.

예를 들어 설정에 Port가 443, WebSocket Path가 /ws로 지정되어 있다면 이는 해당 연결 항목의 구체적인 값 두 가지를 뜻할 뿐입니다. 모든 VMess 또는 VLESS 연결이 이 조합을 사용하는 것은 아닙니다. 이 글의 포트와 경로는 각 항목을 설명하기 위한 예시이며 실제 연결에 사용할 수 있는 설정이 아닙니다.

암호화 설정 선택: 안내된 값을 유지하고 임의로 바꾸지 마세요

수동 설정 중에 “선택할 수 있다”는 말을 “아무 값이나 골라도 된다”로 오해하기 쉽습니다. VMess 암호화 설정은 프로토콜 구현 및 서버 요구 사항과 호환되어야 하고, TLS 상태는 서버 진입점과 일치해야 합니다. 더 강하거나 빠르게 보이는 이름을 고르는 대신 원래 설정값을 정확하게 입력하세요.

암호화와 TLS: 안내된 값 유지

권장

VMess 암호화 옵션은 안내된 값 그대로 입력하고 TLS 상태는 서버 설정과 일치시키세요. VLESS는 전송 보호 방식을 별도로 확인하고 VMess의 암호화 항목을 가져다 쓰지 마세요.

적합한 경우: 처음 수동 설정할 때, 구독을 가져온 뒤 설정을 확인할 때, 전체 설정값을 보유한 연결을 점검할 때

암호화와 TLS: 옵션을 임의로 바꾸기

클라이언트 옵션만 바꿔서는 서버 설정까지 바뀌지 않습니다. TLS를 임의로 끄거나 포트를 바꾸고 프로토콜 암호화를 전환하면 핸드셰이크 및 인증 오류가 추가로 발생할 수 있으므로 일반적인 문제 해결 방법으로 권장하지 않습니다.

적합한 경우: 서버 설정이 명확히 변경되었고 해당하는 새 값을 받은 뒤 이를 함께 반영할 때만

원칙: 오류가 확인된 항목 하나만 한 번에 변경하세요

먼저 원래 값을 기록한 뒤 수정하고 같은 대상을 다시 테스트하세요. Type, 포트, TLS, Path를 한꺼번에 바꾸면 연결이 복구되더라도 원인을 알 수 없습니다. 구독을 갱신할 때 설정이 다시 불일치할 가능성도 커집니다.

저장 후에도 연결되지 않을 때: 실패 단계별 확인 방법

지연 시간 수치가 정상이라고 해서 연결 인증까지 모두 완료된 것은 아닙니다. 테스트 종류에 따라 대상 포트의 연결 가능 여부, 연결 성립 여부 또는 특정 요청의 응답 시간만 측정할 수 있습니다. 수치 하나만으로 UUID, TLS, 전송 설정이 모두 올바르다고 판단할 수 없습니다. 테스트할 때는 연결이 성립하는지, 인증서 오류가 표시되는지, 특정 웹사이트에서만 문제가 발생하는지처럼 구분 가능한 증상을 기록하세요.

  1. 새 항목이 선택되었는지 먼저 확인하세요.Home에서 현재 선택된 항목을 확인해 이전 설정으로 테스트하고 있지 않은지 살펴봅니다. 필요한 경우 연결을 중지했다가 다시 활성화한 뒤 새 요청을 보내세요.
  2. 연결 시간이 초과되면 대상부터 확인하세요.Address와 Port에 오타가 있거나 두 값이 붙어 있지 않은지 확인하고, 다른 네트워크에서도 다시 테스트하세요. 포트 연결이 성립하지 않는다면 먼저 UUID를 원인으로 지목하지 마세요.
  3. TLS 오류가 발생하면 이름과 시간을 먼저 확인하세요.기기 시스템 시간이 정확한지, SNI가 원래 설정과 일치하는지 확인합니다. 인증서가 만료되었거나 서버 설정에 문제가 있다면 서비스 제공업체가 처리해야 합니다. 검증 건너뛰기를 장기적인 해결책으로 삼지 마세요.
  4. 핸드셰이크 직후 연결이 끊기면 인증 정보와 전송 설정을 확인하세요.UUID, VMess의 alterId와 암호화 설정, WebSocket의 Host와 Path를 다시 확인합니다. 연결이 끊겼다는 현상만으로 원인을 단정할 수 없으므로 확인 가능한 연결 오류 정보도 함께 살펴보세요.
  5. 일부 요청에서만 실패하면 라우팅을 확인하세요.Home → Global Routing에서 현재 선택된 설정을 확인합니다. Proxy는 규칙 매칭의 영향을 일시적으로 배제하는 데 사용할 수 있지만, 유효한 연결 항목은 여전히 필요합니다. Direct로는 해당 항목의 프록시 연결이 성공하는지 확인할 수 없습니다. 테스트한 뒤 원래 라우팅 설정으로 되돌리세요.

Config는 규칙 등 설정을 관리하지만 잘못 입력한 UUID를 고칠 수는 없습니다. On Demand는 연결을 시작하는 조건을 관리하지만 누락된 TLS 설정을 보완하지도 않습니다. 먼저 명확한 테스트 조건에서 개별 연결 항목이 작동하도록 한 다음 자동 연결과 규칙 분기를 확인하세요. 여러 변수를 한꺼번에 바꾸지 마세요.

수동 설정 관련 자주 묻는 질문: 프로토콜 변경, 구독 업데이트, 정보 가리기

UUID가 같으면 VMess를 VLESS로 바로 바꿀 수 있나요?

UUID가 같다는 이유만으로 전환할 수 있는 것은 아닙니다. 두 프로토콜은 핸드셰이크와 필요한 항목이 다르며, 서버에 해당 프로토콜용 진입점이 있어야 합니다. 먼저 서비스 제공업체에서 VLESS 전체 설정을 받은 뒤 별도의 연결 항목을 새로 만드세요. 기존 항목의 Type만 바꾸지 마세요.

VLESS에는 프로토콜 계층 암호화가 없다면 TLS를 직접 켜야 하나요?

먼저 기존 서버 구성에서 어떤 전송 보안 방식을 사용하는지 확인하세요. 일반적인 VLESS 설정은 TLS 같은 방식으로 전송을 보호하지만, 클라이언트에서 TLS를 켜는 것만으로 일반 서버 진입점이 TLS 진입점으로 바뀌지는 않습니다. 기존 설정에 전송 보호 방식이 명시되어 있지 않다면 추측하지 말고 서비스 제공업체에 확인하세요.

구독을 업데이트한 뒤 수동으로 바꾼 설정이 사라지는 이유는 무엇인가요?

구독 업데이트 과정에서 구독이 관리하는 항목이 다시 적용될 수 있습니다. 먼저 Home에서 구독 항목과 직접 만든 수동 설정 항목을 구분하세요. 비교가 필요하면 별도의 연결 항목을 만들고 원래 항목도 보관합니다. 구독 내용 자체에 오류가 있다면 수정 사항이 업데이트로 덮어써지지 않도록 반복해서 변경하기보다 서비스 제공업체에 원래 설정값을 확인하세요.

다른 사람에게 설정 항목을 확인해 달라고 할 때 어떤 정보를 가려야 하나요?

UUID 전체, 구독 링크의 token, 비밀번호, 공유 링크 전체를 가리세요. Type, 전송 유형, TLS 사용 여부, 오류 증상, 민감 정보를 가린 항목 구조는 공유할 수 있습니다. 공개된 곳에 붙여넣기 전에 한 번 더 확인하세요. QR 코드에도 인증 정보가 그대로 들어 있을 수 있습니다.

최종 확인 순서는 Type → Address와 Port → UUID → 프로토콜별 항목 → 전송 방식 → TLS와 이름 항목입니다. 원래 설정이 불완전하다면 먼저 필요한 정보를 확인하세요. 다른 연결 항목의 도메인, 경로, 인증 정보를 조합해 사용하지 마세요. 구독 가져오기와 관리 방법은 구독 매뉴얼에서 확인할 수 있습니다. 처음 사용하는 경우 시작 가이드를 따라 시스템 권한을 설정하고 기본 연결을 확인하세요.

App Store 정품 확인