VMess와 VLESS는 서로 다른 프록시 프로토콜이며 Type을 변경한다고 서로 전환되지 않습니다. 이미 서비스 업체와 구독 링크를 이용 중인 Shadowrocket 사용자라면 프로토콜, 인증 정보, 전송 계층, TLS 순으로 설정을 확인하세요. 어떤 항목을 정확히 대조해야 하는지, 프로토콜 이름만으로 추측하면 안 되는 설정은 무엇인지 정리합니다.
1. VMess와 VLESS의 핵심 차이는 프로토콜 계층 암호화
먼저 핵심부터 살펴보면, VMess는 프로토콜 자체의 인증 및 암호화 기능을 제공합니다. VLESS는 인증과 전송 보호를 분리하며, 프로토콜 자체는 페이로드를 암호화하지 않습니다. VLESS 연결의 보안은 실제로 사용하는 TLS 등의 보호 방식까지 함께 확인해야 합니다. ‘VLESS 자체는 암호화하지 않는다’는 말이 모든 VLESS 연결이 평문으로 전송된다는 뜻은 아닙니다.
반대로 VMess에 프로토콜 계층 암호화가 있다고 해서 TLS를 임의로 끌 수 있는 것은 아닙니다. 서버가 TLS를 요구한다면 클라이언트도 요구 사항에 맞춰 TLS 연결을 설정해야 합니다. 두 설정은 서로 다른 문제를 다루므로 서버 설정에 맞춰야 합니다.
| 비교 항목 | VMess | VLESS |
|---|---|---|
| 프로토콜 계층 보호 | 프로토콜 자체의 인증 및 암호화 기능 제공 | 인증은 수행하지만 페이로드 암호화는 자체적으로 제공하지 않음 |
| 인증 정보 | 일반적으로 UUID를 사용하며 서버 설정과 일치해야 함 | 일반적으로 UUID를 사용하지만 형식이 같다고 다른 프로토콜에서 재사용할 수는 없음 |
| 전송 방식 조합 | 서버 요구 사항에 따라 TCP, WebSocket 등과 조합 | 실제 전송 방식과 관련 설정을 함께 확인해야 함 |
| TLS 설정 | TLS 사용 여부와 검증할 이름은 서버 설정에 따라 결정 | 프로토콜 이름만으로 TLS나 기타 보안 옵션을 추측할 수 없음 |
| 서로 바로 바꿔 쓸 수 있는가 | 불가능합니다. Type을 바꾼 뒤에도 해당 프로토콜에 맞는 서버 설정 전체가 필요합니다. | |
프로토콜 이름은 속도 등급이 아닙니다. 지연 시간, 대역폭, 회선 혼잡, 서버 부하, 전송 방식 조합에 따라 결과가 달라집니다. 이름이 비슷한 두 노드라도 서로 다른 서버를 사용할 수 있으므로 특정 프로토콜이 반드시 더 빠르다고 단정할 수 없습니다.
2. Add Server에서 Address, Port, UUID부터 확인
Home에서 확인할 항목을 찾아 편집 화면으로 이동하세요. 직접 추가하려면 Home의 추가 메뉴에서 Add Server를 연 다음 해당 Type을 선택합니다. 필드 이름과 표시되는 옵션은 선택한 유형에 따라 달라질 수 있으므로 현재 화면과 서비스 업체가 제공한 전체 설정을 기준으로 확인하세요.
- Type: VMess인지 VLESS인지 확인하세요. 노드 이름만 보고 유형을 추측하거나 Type 변경을 업그레이드로 여기지 마세요.
- Address: 실제 연결할 도메인 또는 IP 주소를 입력하세요. TLS 검증 이름과 다를 수 있으며, 공유 링크의 프로토콜 접두사를 붙이면 안 됩니다.
- Port: 서버가 수신하는 포트를 입력하세요. 예를 들어 서비스 업체가
443으로 안내했다면443을 입력하면 됩니다. TLS를 켰다는 이유로 임의로 포트를 이 값으로 변경하지 마세요. - UUID: 서비스 업체가 제공한 인증 정보를 그대로 입력하고, 복사할 때 공백이나 줄바꿈이 들어가지 않았는지 확인하세요. 값을 수정하거나 잘라내거나 새로 생성하면 기존 서버에서 인증되지 않을 수 있습니다.
- 추가 매개변수: 현재 화면에 VMess 암호화 옵션이나 VLESS Flow 등의 항목이 표시되면 서버 요구 사항에 따라 설정하세요. 다른 항목의 값을 그대로 적용하면 안 됩니다.
일반적인 UUID는 하이픈이 포함된 16진수 형식입니다. 아래 내용은 형식만 보여 주며, 사용할 수 있는 인증 정보나 특정 서비스의 정보가 아닙니다. 두 항목의 UUID가 같더라도 포트, 전송 방식, 보안 설정은 다를 수 있으므로 UUID만 확인해서는 안 됩니다.
00000000-0000-0000-0000-000000000000
3. 프로토콜, 전송 계층, TLS를 구분하고 포트만 보고 설정하지 않기
하나의 연결에 VLESS, WebSocket, TLS가 함께 사용될 수 있습니다. VLESS는 프록시 프로토콜을 처리하고, WebSocket은 전송 방식을 제공하며, TLS는 해당 연결의 암호화와 인증을 담당합니다. 이 용어들은 서로 대체할 수 없습니다. WebSocket을 TCP로 바꾸거나 TLS를 끄면 클라이언트와 서버가 같은 핸드셰이크를 완료하지 못할 수 있습니다.
TLS를 사용하는 경우 SNI 또는 화면에 표시되는 해당 서버 이름 필드도 확인해야 합니다. Address에는 접속용 IP가 들어가고 인증서는 도메인에 발급될 수 있으므로, IP를 이름 필드에 그대로 복사하면 안 됩니다. WebSocket에서는 Host와 Path도 별도의 설정입니다. Host는 요청 라우팅에, Path는 요청 경로 지정에 사용되므로 도메인이나 주소처럼 보인다는 이유로 SNI와 같은 칸에 입력하지 마세요.
- TLS: 서버에서 요구하는 활성화 여부와 검증 설정을 그대로 따르세요. 인증서 오류가 발생하면 이름, 인증서 유효성, 기기 시간을 먼저 확인하세요.
- SNI: 서비스 업체가 안내한 이름을 입력하세요. 노드 이름만 보고 덧붙이거나 접속하려는 웹사이트의 도메인으로 임의 변경하지 마세요.
- Host: 전송 설정에 이 필드가 필요하다면 안내된 값을 그대로 사용하세요. SNI와 같은 값일 수도 있지만 역할은 다릅니다.
- Path: 맨 앞의
/, 뒤에 이어지는 문자, 쿼리 문자열이 있다면 그 부분까지 원래 설정 그대로 입력하세요.
요약: 전체 설정을 먼저 복원한 뒤 프로토콜이 맞는지 판단
변경 후 핸드셰이크 오류가 발생하면 원래 항목을 다시 가져와 TLS, SNI, Host, Path를 하나씩 대조하세요. 설정 확인 대신 인증서 검증을 끄지 마세요.
4. 구독에 두 유형이 모두 있으면 가져온 설정을 그대로 유지
구독 링크는 이용 중인 서비스 업체에서 받습니다. 가져오면 Shadowrocket이 구독 내용에 따라 항목을 생성합니다. 한 구독에 VMess와 VLESS가 함께 있어도 한 가지 유형으로 통일할 필요는 없습니다. 노드 이름은 구분을 위한 표시일 뿐이므로 실제 프로토콜은 편집 화면의 Type에서 확인하세요.
- Home의 추가 메뉴에서 화면 안내에 따라 Subscribe를 선택하고 전체 구독 링크를 붙여 넣은 뒤 저장하세요. 개별 노드 공유 내용을 구독 주소로 착각하지 마세요.
- 구독을 업데이트해 목록에 항목이 표시되는지 확인한 다음 VMess 항목과 VLESS 항목을 각각 하나씩 열어 유형과 주요 설정을 확인하세요.
- 먼저 가져온 원래 설정으로 테스트하세요. 수정이 필요하면 원래 값을 기록하거나 복원할 수 있는 사본을 남기고, 여러 항목을 한꺼번에 변경하지 마세요.
- 이후 구독을 업데이트하면 구독으로 관리되는 항목의 설정이 다시 적용될 수 있습니다. 장기간 변경해야 하는 설정이 있다면 업데이트 결과를 반복해서 덮어쓰기보다 서비스 업체에 원본 설정을 확인하세요.
직접 입력하는 방식은 전체 설정을 갖고 있고 항목별로 확인해야 할 때 적합합니다. Address와 UUID만 있고 전송 방식이나 TLS 설정이 없다면 먼저 필요한 정보를 확보하세요. VLESS라는 이유만으로 특정 보안 조합을 추정하거나 VMess의 암호화 옵션을 임의로 선택해서는 안 됩니다.
5. Global Routing을 확인한 뒤 한 번에 하나씩 문제 해결
노드 설정과 라우팅 모드는 별개입니다. 항목을 올바르게 입력했더라도 현재 트래픽이 해당 항목을 거치지 않는다면 웹페이지 접속 결과만으로 사용 가능 여부를 판단할 수 없습니다. Home의 Global Routing은 트래픽 처리 방식을 정하고, Config 페이지의 설정 파일은 규칙 등의 내용을 관리합니다.
Config: 현재 설정에 따라 처리
권장확인된 설정을 일상적으로 사용할 때 규칙과 정책에 따라 연결 방식을 선택합니다. 규칙에 일치하지 않는 요청의 처리 방식은 최종 규칙과 현재 설정에 따라 달라지며, 항상 직접 연결되는 것은 아닙니다.
적합한 경우: 설정이 올바른지 확인한 뒤 일상적인 트래픽 분배
Proxy: 규칙의 영향 줄이기
Shadowrocket이 처리하는 연결에 현재 프록시 정책을 적용해 일반적인 규칙 분배로 인한 차이를 확인하기 쉽습니다. 테스트할 노드가 실제로 선택되었는지도 확인하세요.
적합한 경우: VMess 또는 VLESS 항목을 일시적으로 테스트
Direct: 직접 연결 기준 확인
직접 연결을 사용하므로 프록시 서버의 작동 여부를 확인하는 용도로는 적합하지 않습니다. Direct에서 웹페이지가 열린다면 해당 시점의 직접 연결이 성공했다는 뜻일 뿐입니다.
적합한 경우: 로컬 네트워크와 직접 연결 상태 비교
Scene을 사용 중이라면 해당 Scene에 실제 적용되는 라우팅과 정책을 확인하세요. Scene은 별도의 노드 프로토콜이 아닙니다. Config의 DOMAIN-SUFFIX, GEOIP, IP-CIDR, FINAL은 요청이 향하는 곳에 영향을 주지만 VMess를 VLESS로 바꾸거나 UUID 오류를 해결하지는 않습니다.
- 먼저 기기의 네트워크가 정상인지 확인한 다음 Home에서 테스트할 항목을 선택하세요. 정책 그룹을 사용한다면 그룹에서 실제로 선택된 항목도 확인하세요.
- Global Routing 설정을 기록하고, 같은 대상에 일시적으로 Proxy를 적용해 비교하세요. 연결 시간 초과인지, TLS 오류인지, 연결 후에도 접속되지 않는지 확인합니다.
- 한 번에 하나씩 변경하고 다시 시도하세요. 먼저 Address와 Port를 확인하고, 다음으로 UUID를 확인한 뒤 전송 방식, TLS, 이름 필드를 살펴보세요.
- 연결이 끊긴 뒤 자동으로 다시 연결되는 문제라면 Settings → On Demand에서 관련 조건을 확인하세요. 주문형 연결 동작을 프로토콜 전환 문제로 오해하지 않도록 합니다.
- 테스트가 끝나면 기존 라우팅 모드와 주문형 연결 설정을 복원하고 문제를 재현할 수 있도록 기록을 남기세요.
6. 자주 묻는 질문: UUID 중복, TLS 오류, 유형 전환 문제
두 노드의 UUID가 같으면 VMess를 VLESS로 바로 바꿔도 되나요?
UUID가 같다는 이유만으로 바꿔서는 안 됩니다. Home에서 원래 항목을 열어 Type을 확인하고 서비스 업체가 제공한 해당 항목과 비교하세요. 인증 문자열이 같더라도 서버 프로토콜, 포트, 전송 방식, 보안 설정은 완전히 다를 수 있습니다. 해당 유형의 전체 설정을 가져와 사용하세요.
VLESS는 페이로드를 암호화하지 않는데 TLS를 직접 켜야 하나요?
먼저 서버에서 사용하는 전체 보안 구성을 확인하고 원래 설정에 맞추세요. VLESS라는 이름만으로 TLS 사용 여부를 결정할 수 없습니다. 안내에 TLS가 명시되어 있다면 TLS, SNI, 인증서 검증을 함께 확인하세요. 스위치 하나만 켜고 점검을 끝내지 마세요.
VMess는 시간 초과가 나고 VLESS는 작동하는데, VMess 프로토콜에 문제가 있는 건가요?
먼저 네트워크와 테스트 대상을 동일하게 유지하고 각 연결의 Address, Port, 정책 선택을 확인하세요. VMess에서는 기기의 날짜와 시간도 정확한지 살펴보세요. 항목마다 연결되는 서버가 다르다면 한 번의 성공이나 시간 초과만으로 프로토콜 자체의 문제라고 결론 내릴 수 없습니다.
노드 지연 시간은 표시되는데 웹페이지가 열리지 않는 이유는 무엇인가요?
지연 시간 결과가 전체 접속 경로의 성공을 의미하지는 않습니다. 먼저 Global Routing과 실제 프록시 정책을 확인하고 같은 대상으로 다시 시도해 DNS, TLS, 인증, 대상 웹사이트 중 어디에서 오류가 발생하는지 구분하세요. 문제를 전달할 때는 오류 메시지를 기록하고 ‘지연 시간은 나오지만 작동하지 않는다’고만 적지 마세요.
두 유형의 설정이 올바른지 판단하는 기준은 이름이 더 새롭거나 설정 항목이 많은지가 아니라 전체 설정이 서버 설정과 일치하는지입니다. 구독에서 가져온 설정을 먼저 보존한 뒤 인증 정보, 전송 방식, TLS를 차례대로 확인하면 Type을 반복해서 바꾸는 것보다 문제를 찾기 쉽습니다.