VMess와 VLESS는 프록시 프로토콜이지 클라이언트 이름이나 연결 품질 등급이 아닙니다. 처음 서버를 선택한다면 먼저 구독에 포함된 전체 설정을 현재 코어가 지원하는지 확인한 다음, 암호화 방식과 보안 계층, 전송 방식이 서로 맞는지 살펴보세요. 구독이나 공유 링크를 이미 받은 사용자를 위한 글입니다. 읽고 나면 프로토콜 유형을 구분하고 시간 오류의 영향을 이해하며, v2rayN에서 설정 항목별로 연결 문제를 점검할 수 있습니다.
1분 만에 이해하는 차이: 프로토콜·전송·보안 계층
서버 설정에는 보통 세 가지 정보가 포함됩니다. 프록시 프로토콜은 인증과 요청 형식을, 전송 방식은 데이터 전달을, 보안 계층은 연결 보호를 담당합니다. VMess와 VLESS는 첫 번째 계층이고 TCP와 WebSocket은 전송 방식입니다. TLS와 REALITY는 설정에서 따로 확인해야 하는 보안 방식입니다. 이 이름들을 한데 묶어 '프로토콜 순위'처럼 생각하면 설정을 잘못 선택하기 쉽습니다.
| 확인 항목 | VMess | VLESS |
|---|---|---|
| 식별 및 인증 | 일반적으로 UUID를 사용하며, 최신 설정은 VMess AEAD 인증을 사용합니다. | 일반적으로 UUID를 사용하며, VMess와는 다른 프로토콜 및 인증 형식을 사용합니다. |
| 데이터 암호화 | AES-128-GCM, ChaCha20-Poly1305 등의 데이터 암호화 옵션을 지원합니다. 실제 값은 코어가 지원하는 범위에 맞춰야 합니다. | 일반적인 설정에서 encryption 값은 none이며, 연결 보호는 주로 TLS 또는 REALITY에 의존합니다. 확장 기능은 코어 지원 여부를 별도로 확인해야 합니다. |
| 시간 관련 | 인증에 시간이 사용되므로 클라이언트와 서버의 시계를 동기화해야 합니다. | VMess와 같은 인증 시간 요구사항은 없지만, TLS 인증서 유효 기간 등은 여전히 시스템 시간의 영향을 받습니다. |
| 일반적인 조합 | VMess + TCP 또는 VMess + WebSocket + TLS | VLESS + WebSocket + TLS 또는 VLESS + TCP + REALITY 등 |
v2rayN은 설정을 관리하고 코어를 실행하며 프록시 연결 지점을 제공하는 데스크톱 클라이언트입니다. Project V, V2Fly, Xray는 관련 프로토콜 및 코어 생태계에 속하며, 클라이언트 인터페이스와 같은 것은 아닙니다. 같은 v2rayN 인터페이스라도 사용하는 코어나 코어 버전에 따라 지원되는 전송 방식과 설정 항목이 다를 수 있습니다.
전체 조합을 먼저 확인한 뒤 프로토콜 변경을 검토하세요
서버 편집 창에서 '프로토콜, 전송 방식, 보안 계층, flow' 네 항목을 확인하세요. VLESS나 VMess라는 이름만으로는 클라이언트가 연결될지 판단하기 어렵습니다. 서버에서 다른 설정을 제공하지 않았다면 로컬 프로토콜 드롭다운을 바꿔도 프로토콜이 변환되지는 않습니다.
암호화 차이: VLESS의 none이 전체 연결의 평문 전송을 뜻하지는 않습니다
VMess 암호화 설정과 TLS는 서로 다른 항목입니다. VMess 데이터 암호화를 사용하면 프록시 프로토콜 자체가 해당 데이터를 보호합니다. 여기에 TLS를 함께 적용하면 TLS 연결도 추가로 설정됩니다. TLS가 표시된다는 이유만으로 VMess 암호화 값을 임의로 바꾸지 마세요. 구독에서 제공하고 코어가 지원하는 설정을 그대로 사용해야 합니다.
일반적인 VLESS 설정의 encryption=none은 VLESS 프로토콜 계층에서 데이터 암호화를 사용하지 않는다는 뜻입니다. TLS 또는 REALITY를 함께 사용하면 클라이언트와 프록시 서버 간 연결은 해당 보안 방식으로 보호됩니다. 반대로 보안 계층 없이 TCP만 사용하는 경우, 'VLESS'라는 이름만으로 연결이 보호된다고 판단할 수 없습니다.
security=tls가 표시된다면: 서버 이름, 인증서 검증, 전송 설정을 확인하세요. 연결 주소와 인증서 검증에 사용하는 이름은 다를 수 있지만, 서버 설정과 일치해야 합니다.security=reality가 표시된다면: 서버 이름, 공개 키, shortId, 지문 등의 매개변수가 모두 있는지 확인하고 현재 코어가 이 설정 조합을 지원하는지 확인하세요.flow=xtls-rprx-vision이 표시된다면: 이는 흐름 제어 매개변수이지 모든 VLESS 서버에 적용할 수 있는 속도 향상 옵션이 아닙니다. 서버에서 요구하는 전송 및 보안 조합을 사용해야 합니다.- 보안 계층이 비어 있다면: 먼저 제공업체에 다른 보호 방식이 있는지 문의하세요. 연결 실패를 해결하려고 인증서 검증을 끄지 마세요.
시간 인증과 포트: 자주 하는 오해 세 가지
VMess 인증에는 시간 정보가 사용됩니다. 기존 문서에서는 동기화 요구사항을 설명할 때 약 90초의 시간 차이를 언급하곤 합니다. 하지만 이 수치를 장기간 허용할 수 있는 오차로 생각해서는 안 됩니다. 컴퓨터나 서버가 절전 모드에서 복귀한 뒤, 시간을 수동으로 변경한 뒤, 시간 동기화에 실패한 경우에는 정상적으로 연결되던 서버에서도 인증 오류가 발생할 수 있습니다.
alterId=0은 '암호화 끄기'와 다릅니다. 구형 가이드에 나오는 0이 아닌 추가 ID를 최신 VMess AEAD 설정에 그대로 적용하면 안 됩니다. 최신 코어마다 구형 설정의 호환 여부도 다릅니다. 오래된 공유 링크를 받았다면 값을 추측해 입력하기보다 제공업체에 다시 내보내 달라고 요청하세요.
- Windows에서 '설정' → '시간 및 언어' → '날짜 및 시간'을 열고 자동 시간 설정을 켠 다음 동기화를 실행하세요. 메뉴 이름은 Windows 버전에 따라 조금 다를 수 있습니다.
- 날짜와 연도, 현재 시간이 정확한지 확인하세요. 시간대만 바꾸는 것은 올바르게 관리되는 시스템의 실제 시각을 보통 바꾸지 않습니다. 서버 시간대에 맞추려고 시간대를 변경할 필요는 없습니다.
- 서버를 관리할 수 있다면 서버 시간도 동기화되어 있는지 확인하세요. 컴퓨터 시계만 바로잡아서는 서버의 시간 오차를 해결할 수 없습니다.
- 그래도 연결되지 않으면 클라이언트 로그에서 구체적인 오류를 확인하세요. 인증서 만료, 연결 시간 초과, 인증 실패는 서로 다른 단계에서 발생하므로 모두 시간 문제로 치부해서는 안 됩니다.
VLESS는 VMess와 같은 시간 인증 방식을 사용하지 않지만, 시스템 날짜가 틀려도 된다는 뜻은 아닙니다. TLS 인증서에는 유효 시작일과 만료일이 있어 날짜가 잘못되면 인증서 검증에 실패할 수 있습니다. 일부 REALITY 설정에도 시간 제한이 적용될 수 있습니다. 따라서 두 프로토콜 모두 문제를 해결하기 전에 시계가 정확한지 확인해야 합니다.
공유 링크 확인: 접두사부터 살펴보고 설정 항목을 확인하세요
단일 서버 공유 링크는 접두사만 봐도 유형을 쉽게 구분할 수 있습니다. vmess://는 VMess, vless://는 VLESS입니다. 서버 메모에 '고속', '전용 회선' 등 임의의 이름을 붙여도 프로토콜 유형은 바뀌지 않습니다. 구독 주소는 보통 https://로 시작하며 여러 설정을 가져오는 데 사용됩니다. 주소만으로 구독에 포함된 모든 서버의 프로토콜을 알 수는 없습니다.
두 공유 링크 형식의 확인 순서
VMess 공유 링크
- 일반적으로
vmess://뒤에 Base64로 인코딩된 JSON 데이터가 붙습니다. - 일반적인 항목은
add,port,id,aid,net,tls입니다. - 클라이언트에 가져온 뒤 주소, 포트, UUID, 암호화, 전송 방식을 확인하세요. 메모만 보고 판단하지 마세요.
- Base64는 인코딩 방식이지 보안 기능이 아닙니다. 디코딩한 내용에도 연결 인증 정보가 포함되어 있습니다.
VLESS 공유 링크
- 일반적으로
vless://뒤에 사용자 ID, 서버 주소, 쿼리 매개변수가 붙습니다. type은 주로 전송 유형을,security는 주로 보안 계층을 나타냅니다.- TLS는
sni를, WebSocket은host와path를 확인해야 하는 경우가 많습니다. - REALITY에는
pbk,sid,fp등의 항목이 자주 사용됩니다. 항목 이름과 파싱 지원 여부는 클라이언트마다 다를 수 있습니다.
공유 링크 형식은 과거의 모든 구현에서 동일하지 않습니다. 클라이언트의 가져오기 기능을 우선 사용하고 편집 창에서 파싱 결과를 확인하세요. 전체 링크를 공개된 곳에 게시하지 마세요.
v2rayN 데스크톱에서는 보통 '서버' → '클립보드에서 일괄 URL 가져오기'를 선택합니다. 서버 목록에서 편집 창을 연 뒤 프로토콜 유형을 확인하고 전송 방식과 보안 항목을 살펴보세요. 메뉴 이름은 버전에 따라 조금 다를 수 있으므로 '클립보드 가져오기'가 포함된 메뉴를 선택하면 됩니다. 가져오기에 성공해도 형식이 인식되었다는 뜻일 뿐, UUID와 포트, 서버 매개변수가 모두 올바르다는 보장은 없습니다.
구독을 갱신한 뒤 같은 이름의 서버가 여러 개 보이면 메모만 보지 말고 유형 열과 편집 창을 각각 확인하세요. 'VLESS로 바꾸려고' 공유 링크의 접두사만 수정하지 마세요. VMess 인코딩 데이터와 VLESS 매개변수 구조는 서로 다르며, 서버에서도 해당 인바운드 설정을 활성화해야 합니다.
서버 선택: 프로토콜 이름으로 속도를 단정하지 말고 설정 호환성을 우선하세요
VMess와 VLESS는 오버헤드와 구현 방식에 차이가 있지만, 웹 페이지 로딩 속도는 회선 혼잡도, 왕복 지연 시간, 패킷 손실, 서버 부하, 전송 캡슐화에도 영향을 받습니다. 서버가 서로 다른 상태에서 속도를 측정해도 특정 프로토콜이 더 빠르다는 근거가 되지는 않습니다. 비교하려면 기기, 네트워크, 대상 웹사이트, 측정 시간을 동일하게 맞추고 가능한 한 같은 서버에서 두 가지 설정을 사용하세요.
제공업체가 명시적으로 지원하는 전체 설정
권장구독에 포함된 프로토콜, 전송 방식, 보안 계층, flow를 그대로 유지하고 현재 코어의 지원 여부를 확인한 뒤 테스트하세요. VMess든 VLESS든 연결 가능 여부, 검증 가능 여부, 관리 편의성을 기준으로 판단해야 합니다.
추천 대상: 구독을 처음 가져오는 사용자, 일상적으로 사용하는 사용자, 서버를 직접 관리하지 않는 사용자
이미 사용 중인 VMess 설정
지원되는 인증 방식을 사용하고 시계가 동기화되어 있는지, 암호화 및 TLS 매개변수가 올바른지 먼저 확인하세요. 프로토콜 이름이 더 오래전에 등장했다는 이유만으로 정상 작동하는 서버를 삭제할 필요는 없습니다.
추천 대상: 현재 서비스에서 VMess만 제공하거나 기존 연결 설정을 유지해야 하는 사용자
필요한 매개변수가 모두 제공된 VLESS 설정
서버에서 TLS 또는 REALITY 등 필요한 매개변수를 모두 제공한다면 코어 지원 여부와 모든 항목을 확인한 뒤 사용하세요. 다른 서버의 공개 키, 서버 이름, flow를 현재 설정에 붙여 넣지 마세요.
추천 대상: 제공업체가 해당 조합을 이미 구성했고 전체 구독 또는 공유 링크를 제공한 경우
데스크톱 v2rayN은 여러 코어 설정을 관리할 수 있으며, 실제 지원 범위는 선택한 코어에 따라 다릅니다. Android용 v2rayNG는 Xray 코어를 사용하고 v2flyNG는 V2Fly 코어를 사용합니다. 두 앱이 같은 확장 매개변수를 지원한다고 보장할 수 없습니다. 예를 들어 두 앱에 모두 VLESS라고 표시되어도 Xray의 REALITY 및 Vision 조합이 V2Fly 코어에서 그대로 작동한다고 볼 수는 없습니다.
클라이언트를 바꾸기 전에 서버 설정 조합이 지원되는지 확인하세요
서버의 전체 설정을 기록하고 코어가 지원하는 기능과 대조하세요. REALITY 지원 부족이 원인이라면 시스템 프록시를 바꿔도 프로토콜 기능이 추가되지 않습니다. 서버는 정상인데 브라우저만 프록시를 사용하지 않는다면 UUID를 계속 바꾸지 말고 앱 트래픽이 프록시로 전달되는 경로를 확인하세요.
자주 묻는 질문: 가져오기, 핸드셰이크, 브라우저 연결은 따로 점검하세요
문제를 해결할 때는 '설정을 파싱할 수 있는가 → 서버에 연결할 수 있는가 → 핸드셰이크가 완료되는가 → 앱 트래픽이 프록시를 통과하는가' 순서로 확인하세요. 한 번에 한 항목만 변경하고 원래 구독 설정을 보관해 여러 항목이 한꺼번에 바뀌어 비교가 어려워지지 않도록 하세요.
어제까지 연결되던 VMess 서버가 오늘 인증에 실패하는 이유는 무엇인가요?
먼저 컴퓨터 시간을 동기화한 다음 구독이 갱신되었는지, UUID가 바뀌었는지 확인하세요. 로그에 인증 오류가 명확히 표시된다면 제공업체에 문의해 서버 시간과 계정 상태를 확인하세요. 연결 시간 초과라면 alterId를 바꾸기 전에 주소, 포트, 네트워크 연결 상태부터 확인해야 합니다.
VLESS에 none이라고 표시됩니다. AES로 직접 바꿔야 하나요?
VMess의 암호화 옵션을 VLESS에 적용하지 마세요. 서버 편집 창에서 TLS 또는 REALITY 설정이 구독과 일치하는지 확인하세요. 보안 계층이 비어 있다면 제공업체에 전체 설정을 문의하세요. 지원하지 않는 encryption 값을 임의로 입력하면 파싱이나 핸드셰이크에 실패할 수 있습니다.
둘 다 포트가 443인데 한쪽만 연결되는 이유는 무엇인가요?
443은 서버가 연결을 수신하는 포트일 뿐입니다. 프로토콜, UUID, 전송 방식, 보안 계층, 서버 이름을 추가로 비교하세요. WebSocket은 경로와 Host를 확인하고 REALITY는 공개 키, shortId 및 관련 매개변수를 확인해야 합니다. 포트가 같아도 두 서버 설정이 같다는 뜻은 아닙니다.
가져오기는 성공했지만 TLS 핸드셰이크에 실패합니다. 인증서 검증을 꺼야 하나요?
먼저 시스템 날짜, 서버 이름, 인증서 유효 기간을 확인한 다음 연결 주소와 서버 설정을 점검하세요. 인증서 검증은 유지해야 합니다. 제공업체의 인증서가 만료되었다면 제공업체가 갱신해야 합니다. 검증을 끄면 중요한 신원 확인 절차가 생략되므로 일상적인 해결 방법으로 사용해서는 안 됩니다.
서버 테스트는 통과했는데 브라우저에서 사이트가 열리지 않습니다. VLESS로 바꿔야 하나요?
먼저 v2rayN 메인 화면의 '시스템 프록시' 메뉴에서 '시스템 프록시 자동 설정'을 선택한 다음, 브라우저 자체 프록시 설정이나 확장 프로그램이 이를 덮어쓰는지 확인하세요. 필요하면 라우팅 규칙도 점검하세요. 시스템 프록시와 TUN은 트래픽을 연결하는 방식이고 VMess와 VLESS는 서버 프로토콜입니다. 프로토콜을 바꿔도 앱 트래픽이 자동으로 프록시를 통과하지는 않습니다.
마지막으로 클라이언트 및 코어 버전, 서버 프로토콜과 전송 방식, 오류 발생 시간, 로그의 오류 유형을 간단히 기록해 두세요. 제공업체에 문의할 때는 UUID, 구독 주소, 전체 공유 링크를 가리세요. 이 정보가 있으면 매개변수 호환성 문제인지 네트워크 문제인지 파악하기 쉽고, 같은 설정을 반복해서 수정하는 수고도 줄일 수 있습니다.