서비스 제공업체에서 받은 설정이 있고 Shadowrocket에서 VMess 또는 VLESS 매개변수를 확인하려는 사용자를 위한 글입니다. 인증, 데이터 암호화, 전송 방식, TLS를 구분한 뒤 Add Server 입력 순서에 따라 점검합니다. UUID, 포트, Server Name, Host, Path가 각각 어느 계층에 해당하는지 파악하고, Type만 바꾸면 프로토콜이 변환된다고 오해하지 않도록 안내합니다.
1. VMess와 VLESS: 인증과 암호화를 구분하기
VMess와 VLESS는 모두 UUID로 사용자를 식별할 수 있지만 프로토콜 형식은 서로 다릅니다. VMess는 프로토콜 계층에서 인증과 데이터 암호화 기능을 제공합니다. VLESS 기본 프로토콜은 데이터 암호화를 제공하지 않으므로 보통 TLS와 같은 보안 전송 방식과 함께 사용합니다. 두 설정에 UUID가 들어 있다고 해서 서로 바꿔 쓸 수 있는 것은 아닙니다.
여기서 암호화는 클라이언트와 서버 사이의 프록시 연결을 가리킵니다. 웹사이트의 HTTPS는 별개의 계층입니다. 웹사이트가 HTTPS를 사용한다고 해서 프록시 연결 전체가 동일한 보호를 받는 것은 아니며, 프록시 연결에 TLS를 적용했다고 해서 방문하는 모든 웹사이트가 자동으로 HTTPS가 되는 것도 아닙니다. 문제를 해결할 때는 두 계층을 따로 확인하세요.
| 점검 항목 | VMess | VLESS |
|---|---|---|
| 사용자 인증 | UUID 등 인증 매개변수를 사용하며 서버 설정과 일치해야 합니다. | UUID로 사용자를 식별하며 서버 설정과 일치해야 합니다. |
| 프로토콜 계층 암호화 | 프로토콜 계층에서 데이터를 암호화할 수 있습니다. 구체적인 방식은 기존 설정을 따르세요. | 기본 프로토콜은 데이터 암호화를 제공하지 않습니다. 관련 none 값이 TLS를 반드시 꺼야 한다는 뜻은 아닙니다. |
| 외부 TLS | 사용할 수 있으며, 적용 여부는 서버 구성에 따라 달라집니다. | 보통 TLS와 같은 보안 전송 방식과 함께 사용합니다. 실제 서버 구성을 확인하세요. |
| 전송 방식 | 양쪽에서 지원하는 경우 TCP, WebSocket 등을 사용할 수 있습니다. | 전송 방식도 서로 일치해야 합니다. 프로토콜 이름만 확인해서는 안 됩니다. |
| 프로토콜 변경 | VLESS로 바꾸려면 이에 맞는 서버 설정이 필요합니다. | VMess로 바꾸는 경우에도 이에 맞는 서버 설정이 필요합니다. |
최근 VMess 설정에서는 AEAD 인증을 흔히 사용합니다. 이전 설정에 Alter ID가 있다면 UUID와 혼동하지 말고, 과거 매개변수를 다른 설정에 그대로 적용하지 마세요. 가져온 설정이 서비스 제공업체의 최신 안내와 다르면 해당 설정이 여전히 지원되는지 먼저 확인한 뒤 항목을 수정하세요.
2. UUID와 포트: 형식이 같아도 같은 연결은 아닙니다
UUID는 보통 하이픈으로 구분된 16진수 문자 다섯 묶음으로 표기합니다. 예: 123e4567-e89b-42d3-a456-426614174000. 형식을 설명하기 위한 예시일 뿐, 실제 인증 정보가 아닙니다. 입력할 때는 전체 문자열을 그대로 사용하고 공백을 추가하지 마세요. 설정 이름, 구독 이름, 계정 로그인 비밀번호를 UUID 항목에 넣어서도 안 됩니다.
Address는 연결할 서버를, Port는 접속할 서비스 입구를, UUID는 인증할 사용자 계정을 지정합니다. 세 값이 모두 서로 맞아야 합니다. 같은 주소라도 443과 8443은 서로 다른 입구일 수 있습니다. 한쪽 포트가 흔히 쓰인다는 이유로 다른 포트를 임의로 바꾸지 마세요.
- Address 확인: 설정에 지정된 도메인이나 IP만 입력하고 구독 링크 전체를 주소 항목에 넣지 마세요.
- Port 확인: 기존 설정에 적힌 숫자만 입력하고 프로토콜 접두어나 경로를 붙이지 마세요.
- UUID 확인: 복사 과정에서 앞뒤 문자가 빠지지 않았는지, 줄바꿈이 섞이지 않았는지 확인하세요.
- 사용 가능 상태 확인: 인증 정보가 만료되었거나 비활성화되었거나 연결 제한을 받으면 형식이 올바르더라도 인증에 실패할 수 있습니다.
3. TLS, Server Name, WebSocket을 계층별로 확인하기
연결을 네 계층으로 나누면 점검하기 쉽습니다. 먼저 Address와 Port에 연결하고, TLS가 켜져 있다면 TLS 연결을 설정한 다음 WebSocket 등의 전송을 구성하고, 마지막으로 VMess 또는 VLESS 인증을 수행합니다. 이는 설정을 이해하기 위한 간략한 모델입니다. 앞 단계에서 실패했다면 뒤의 UUID를 계속 바꿔도 앞 단계 문제는 해결되지 않습니다.
Server Name은 보통 TLS의 SNI 및 인증서 이름 확인에 사용됩니다. WebSocket의 Host는 HTTP 요청 헤더에, Path는 요청 경로에 해당합니다. 배포 방식에 따라 같은 도메인을 쓰기도 하고 서로 다른 값을 쓰기도 합니다. Host를 Address에 그대로 복사하지 말고, Path를 구독 링크의 경로와 혼동하지 마세요.
TLS 켜기: 서버에서 TLS 연결을 제공하는 경우
권장기존 설정에 따라 TLS를 켜고 Server Name과 인증서를 확인하세요. 여기서 권장하는 것은 이미 제공된 보안 연결 설정을 그대로 맞추는 것이지, 임의의 포트에 TLS를 강제로 추가하는 것이 아닙니다.
적합한 경우: 서비스 제공업체가 TLS 매개변수를 명시하고 인증서와 도메인이 연결된 설정을 제공한 경우
TLS 끄기: 서버에서 비 TLS 연결을 명시적으로 요구하는 경우
기존 서버 구성에서 요구하는 경우에만 사용하세요. VLESS 기본 프로토콜은 암호화되지 않습니다. TLS를 껐을 때 일시적으로 연결된다고 해서 이를 일반적인 설정으로 간주해서는 안 됩니다.
적합한 경우: 다른 보안 계층이나 통제된 테스트 환경의 매개변수를 확인하는 경우
요점: TLS와 전송 설정을 먼저 맞춘 다음 인증을 확인하세요
인증서 이름 오류가 발생하면 Server Name, 기기 시간, 인증서 상태를 먼저 확인하세요. WebSocket 핸드셰이크에 실패하면 Host, Path, 전송 방식부터 확인하세요. 설정을 바로잡는 대신 인증서 검증을 끄지 마세요.
예를 들어 기존 설정에서 TLS를 사용하고 Port가 443, WebSocket Path가 /proxy로 지정되어 있다면 각 값을 그대로 유지해야 합니다. Address, Port, UUID가 그대로여도 Path를 /로 바꾸면 같은 서비스에 연결되지 않을 수 있습니다. 경로의 대소문자 구분 여부와 쿼리 매개변수 포함 여부는 기존 설정을 따르세요.
4. Add Server에서 순서대로 설정하기
Home에서 추가 버튼을 눌러 Add Server로 이동하세요. 먼저 기존에 받은 서비스 제공업체 설정을 가져온 다음 항목을 열어 확인하세요. 전체 매개변수를 확보한 경우에만 직접 입력하는 것이 좋습니다. Type에 따라 표시되는 항목이 다를 수 있습니다. 나타나지 않는 옵션을 억지로 채우려고 다른 프로토콜을 선택하지 마세요.
- Type을 선택합니다. 기존 설정이 VMess라면 VMess를, VLESS라면 VLESS를 선택하세요. 이름이 비슷해도 인증 형식이 호환되는 것은 아닙니다.
- 연결 정보를 입력합니다. Address와 Port를 각각 입력하고, 도메인 뒤에 붙는 경로를 주소에 함께 붙여 넣지 않았는지 확인하세요.
- 인증 정보를 입력합니다. UUID를 해당 인증 항목에 입력하세요. VMess의 암호화 관련 매개변수는 기존 설정을 따르고, 경험에 의존해 바꾸지 마세요.
- 전송 방식을 설정합니다. 기존 설정에 따라 TCP나 WebSocket 등 지원되는 방식을 선택하세요. WebSocket을 사용한다면 Host와 Path도 확인하세요.
- TLS를 확인합니다. 기존 설정에 따라 TLS와 Server Name을 지정하세요. 다른 보안 매개변수도 설정과 일치해야 합니다. “VLESS + TLS”라는 문구만으로 전체 설정을 추측할 수는 없습니다.
- 저장하고 항목을 선택합니다. Home으로 돌아가 방금 저장한 서버를 선택했는지 확인한 뒤 같은 테스트 대상으로 연결을 확인하세요.
구독으로 가져온 서버 항목의 매개변수와 Config 규칙은 서로 다른 계층입니다. 구독을 업데이트하면 서버 매개변수가 다시 적용될 수 있습니다. 문제를 해결하기 전에 기존 정보를 저장해 두어 임시 수정 사항이 다음 업데이트에서 덮어써지지 않도록 하세요. 구독 주소에는 접속 정보가 포함될 수 있으므로 화면을 캡처하거나 문의할 때 전체 링크와 UUID를 가리세요.
5. 연결 실패: 프로토콜 문제와 트래픽 분기 문제 구분하기
Home에서 스위치가 켜져 있다는 것은 연결 절차가 시작되었다는 뜻일 뿐, 선택한 서버의 인증이 완료되었거나 현재 웹페이지의 트래픽이 해당 서버를 거친다는 뜻은 아닙니다. Global Routing은 트래픽을 어떻게 분배할지 결정하고, 서버의 Type은 서버와 어떤 방식으로 통신할지 결정합니다. 두 설정은 서로 다른 계층입니다.
점검 방법: 서버 연결과 Config 규칙을 따로 테스트하기
먼저 서버 연결 확인
- 현재 Global Routing과 선택한 서버를 기록합니다.
- Config 규칙의 영향을 줄이기 위해 잠시 Proxy를 사용해 일반 웹 요청을 테스트합니다.
- 동일한 HTTPS 테스트 대상을 유지하고 한 번에 매개변수 하나만 변경합니다.
- 계속 실패하면 연결 정보, TLS, 전송 방식, UUID 순서로 확인합니다.
그다음 Config의 트래픽 분기 확인
- 서버를 사용할 수 있는지 확인한 뒤 기존 Global Routing 설정을 복원합니다.
- Config에서 현재 실제로 활성화된 설정을 확인합니다.
- DOMAIN-SUFFIX 등의 규칙이 FINAL보다 먼저 일치하는지 확인합니다.
- 특정 도메인만 실패한다면 DNS와 실제로 적용된 정책을 확인합니다.
Proxy 테스트는 문제 범위를 좁히기 위한 방법이며 VMess를 VLESS로 변환하지 않습니다. 테스트를 마친 뒤 평소 설정을 복원하세요.
Direct는 직접 연결에 사용하므로 프록시 서버의 작동 여부를 확인하는 데 쓸 수 없습니다. Scene은 상황별 설정을 다루며 특정 프로토콜 하나를 뜻하지 않습니다. 연결 상태가 자동으로 바뀐다면 Settings → On Demand에서 기존 트리거 조건도 확인하세요. 원래 설정의 목적을 모르는 상태에서 반복해서 바꾸지 마세요.
- 연결 시간 초과: 주소 확인, 포트 연결 가능 여부, 현재 네트워크, 서버 상태를 먼저 점검하세요. 시간 초과만으로 UUID 오류라고 단정할 수는 없습니다.
- 인증서 오류: Server Name, 기기의 날짜와 시간, 인증서 유효 상태, 신뢰 체인을 확인하세요. 검증을 건너뛰지 마세요.
- WebSocket 핸드셰이크 오류: 전송 방식이 일치하는지, Host와 Path가 완전한지, 리버스 프록시가 해당 경로를 계속 제공하는지 확인하세요.
- 인증 직후 연결 해제: 프로토콜 유형, UUID, 서버 제한을 확인하세요. VMess를 사용한다면 기기 시간이 정확한지도 확인하세요.
- 일부 웹사이트만 실패: 도메인, Global Routing, 규칙 적용 결과를 기록한 뒤 DNS, 규칙, 대상 서비스 중 어느 쪽의 문제인지 확인하세요.
6. 자주 묻는 질문: 프로토콜을 바꾸기 전에 확인할 사항
Type을 VMess에서 VLESS로 바꾸기만 하면 바로 연결되나요?
아니요. 먼저 기존 서비스 제공업체에 해당 VLESS 연결 정보를 제공하는지 확인한 뒤 전체 설정을 사용해야 합니다. Address, Port, UUID가 같아 보여도 서버가 해당 프로토콜을 지원해야 합니다. 기존 항목은 유지하고 테스트 항목을 새로 만들면 원래 설정으로 되돌리기 쉽습니다.
VLESS에 none이라고 표시되어 있으면 TLS를 꺼야 하나요?
아닙니다. VLESS의 none 값과 외부 TLS는 서로 다른 계층의 매개변수입니다. 항목으로 돌아가 기존 설정에 따라 TLS 사용 여부와 Server Name을 확인하세요. none 값만 보고 TLS를 끄지 마세요.
같은 서버라면 VLESS가 VMess보다 항상 빠른가요?
프로토콜 이름만으로는 판단할 수 없습니다. 네트워크, 대상, 전송 방식, 테스트 시간을 동일하게 맞춘 뒤 연결 가능 여부, 지연 시간, 지속 전송 성능을 비교하세요. 서버 부하, 연결 구간의 패킷 손실, 외부 전송 방식에 따라 결과가 달라질 수 있으므로 한 번의 속도 측정만으로 프로토콜의 우열을 판단하기 어렵습니다.
직접 수정한 뒤에는 연결되지만 구독 업데이트 후 실패하면 어떻게 하나요?
업데이트 전후의 Type, Port, TLS, Host, Path를 비교해 구독 내용이 설정을 다시 덮어썼는지 확인하세요. 필요한 매개변수를 로컬에 기록하고 기존 서비스 제공업체에 구독 설정을 확인하세요. 차이를 보관하지 않은 채 기존 항목을 반복해서 덮어쓰지 마세요.
진행 순서는 다음과 같습니다. 먼저 기존 서비스에서 제공하는 전체 설정을 확인하고, 해당 조합이 Shadowrocket에서 지원되는지 확인한 다음, 같은 조건으로 테스트하세요. 프로토콜 이름은 연결 방식의 일부일 뿐이며, 실제 연결 여부는 모든 매개변수가 일치하는지에 달려 있습니다. Home, Config, Settings의 기본 조작 방법은 아래 튜토리얼에서 확인할 수 있습니다.