기존 VMess 노드는 계속 사용할 수 있습니다. 새 노드를 만들고 클라이언트가 Xray 코어를 지원한다면 VLESS를 우선 고려해 보세요. 구독 노드를 선택하거나 서버를 직접 추가하거나 프로토콜 호환 문제를 점검하는 사용자를 위한 글입니다. 프로토콜, 전송 계층, TLS와 REALITY의 관계를 이해하고 기기와 서버 조건에 맞는 선택 기준을 확인할 수 있습니다.
VMess와 VLESS의 차이는 무엇일까
VMess와 VLESS는 모두 클라이언트와 서버 사이의 인증과 데이터 캡슐화를 담당하지만, 설계 방향은 다릅니다. VMess는 프로토콜 계층에 인증과 암호화 기능이 포함되어 있으며, 최신 구성에서는 보통 AEAD 모드를 사용하고 alterId를 0으로 설정합니다. VLESS는 프로토콜 계층을 더 간결하게 구성해 사용자 인증과 데이터 전달에 집중하며, 이 계층에서 콘텐츠 암호화를 중복해서 제공하지 않습니다.
“VLESS는 프로토콜 계층에서 암호화하지 않는다”는 말이 연결이 평문으로 노출된다는 뜻은 아닙니다. 실제 구성에서는 보통 VLESS를 TLS와 함께 사용하거나 Xray 코어에서 REALITY와 조합합니다. 연결 기밀성은 외부 보안 계층이 담당하고, VLESS는 중복 처리를 줄입니다. 보안을 판단할 때는 프로토콜 이름만 보지 말고 VLESS + TCP + TLS처럼 전체 조합을 확인해야 합니다.
| 비교 항목 | VMess | VLESS |
|---|---|---|
| 프로토콜 계층의 역할 | 인증, 데이터 캡슐화 및 프로토콜 계층 암호화 | 인증 및 경량 데이터 전달 |
| 일반적인 사용자 식별자 | UUID | UUID |
| 최신 구성에서의 일반적인 설정 | VMess + WebSocket + TLS | VLESS + TCP + REALITY |
| 코어별 특징 | V2Ray와 Xray 모두 폭넓게 지원 | Xray 조합 선택 폭이 더 넓음 |
| 시간 동기화 | 인증 과정에서 정확한 시스템 시간이 필요함 | 일반적으로 VMess 방식의 시간 인증에 의존하지 않음 |
암호화와 성능 부담은 어떻게 이해할까
VMess는 프로토콜 계층에서 인증과 암호화를 처리하고, VLESS는 이 역할을 TLS나 REALITY 같은 외부 보안 계층에 맡깁니다. 일반 사용자가 체감하는 웹페이지 로딩 속도는 이런 구조 차이만으로 크게 달라지지 않는 경우가 많습니다. 서버 부하, 회선 품질, 혼잡도, 전송 방식, 대상 사이트의 응답 시간도 최종 사용 경험에 영향을 줍니다.
같은 서버와 회선, 같은 전송 조건이라면 VLESS는 프로토콜 처리가 더 간결해 이론적으로 추가 계산량이 적습니다. 고속 전송, 성능이 낮은 라우터, 동시 연결이 많은 환경에서 이런 차이를 확인하기 쉽지만, 일상적인 웹 검색이나 메시지 전송에서는 회선 변동이 프로토콜 부담보다 더 크게 나타나는 경우가 많습니다.
VLESS + REALITY
- 전송
- TCP
- 보안
- reality
- Flow
- xtls-rprx-vision
- 지문
- chrome
- 사용자 식별자
- UUID
Xray 코어 구성에서 자주 사용되는 항목입니다. 구독을 가져온 뒤 공개 키, Short ID, SNI와 지문 필드를 함께 확인해야 합니다.
VMess + WebSocket + TLS
- 전송
- WebSocket
- 보안
- TLS
- 암호화
- auto
- Alter ID
- 0
- 경로
- 서버에서 지정
기존 리버스 프록시나 WebSocket 연결 구조에 적합합니다. 경로, Host와 TLS 도메인은 서버 설정과 일치해야 합니다.
효과적인 로컬 비교 테스트 방법
- 같은 서버, 같은 외부 회선, 같은 테스트 시간대를 고정하고 프로토콜 조합만 바꿉니다.
- 각 조합을 30초씩 연속 전송하고 5회 실행한 뒤 중앙값을 기록합니다. 한 번의 최고 속도만으로 결론을 내리지 마세요.
- 테스트 전에 시스템 다운로드, 클라우드 동기화와 동영상 재생을 중지해 다른 트래픽이 대역폭을 차지하지 않도록 합니다.
- 연결 성공 여부, 첫 페이지의 정상 로딩 여부, 지속 전송 중단 여부와 클라이언트 프로세스의 CPU 사용량을 각각 기록합니다.
- 두 그룹의 전송 계층이 다르면, 예를 들어 VMess는 WebSocket이고 VLESS는 TCP라면 결과는 전체 구성의 성능만 보여 줍니다. 프로토콜 하나에만 원인을 돌릴 수 없습니다.
REALITY와 코어 호환성이 선택 범위를 결정한다
REALITY는 Xray 생태계의 전송 보안 방식입니다. 클라이언트에서는 VLESS, TCP, XTLS Vision과 REALITY 조합이 가장 흔합니다. 노드 매개변수에는 주소, 포트와 UUID 외에도 공개 키, Short ID, Server Name, Fingerprint와 Flow가 포함될 수 있습니다. 어느 한 필드라도 빠지거나 잘못 입력되면 연결 직후 끊기는 증상이 나타날 수 있습니다.
구독에서 VLESS REALITY 노드를 제공한다면 데스크톱에서는 일반적으로 Xray 코어를 사용하는 v2rayN을, 안드로이드에서는 Xray 코어를 사용하는 v2rayNG를 선택합니다. v2flyNG는 v2fly 코어를 사용하므로 코어가 명확히 지원하는 표준 VMess, VLESS와 TLS 조합에 더 적합합니다. REALITY 구성을 사용할 때는 현재 코어가 구독의 모든 필드를 지원하는지 먼저 확인하세요.
Xray 코어
권장VLESS, XTLS Vision과 REALITY 같은 최신 조합을 지원하며 최신 VMess 노드도 처리할 수 있습니다.
적합한 경우: 새 구성, VLESS REALITY, 데스크톱과 안드로이드 주력 사용
v2fly 코어
현재 버전에서 명확히 지원하는 VMess, 표준 VLESS, WebSocket, gRPC와 TLS 등의 조합에 적합합니다.
적합한 경우: 기존 VMess 노드, 표준 TLS 구성, 기존 서버와의 호환성 유지
v2rayN에서 코어 전환과 노드 확인
v2rayN 7.x의 일반적인 화면을 예로 들면, 구독을 가져온 뒤 노드를 수동으로 다시 만들 필요는 없는 경우가 많습니다. 다만 코어 유형이 노드 프로토콜과 일치하는지 확인해야 합니다. 코어를 변경하기 전에는 시스템 프록시를 중지하고, 설정을 저장한 뒤 클라이언트를 다시 시작해 이전 프로세스가 로컬 포트를 계속 점유하지 않도록 하세요.
v2rayN의 일반적인 로컬 SOCKS 수신 포트는 10808이며, HTTP 포트는 현재 설정에 표시된 값을 기준으로 확인하면 됩니다. 다른 프로그램이 포트를 사용 중이면 원격 노드 매개변수가 정확해도 로컬 앱이 연결되지 않을 수 있습니다. 문제를 점검할 때는 UUID만 반복해서 바꾸지 말고 클라이언트 로그에서 수신 대기 실패, 핸드셰이크 실패와 DNS 오류를 함께 확인하세요.
-
구독 업데이트
메인 화면을 열고 「구독 그룹」에서 해당 그룹을 선택한 다음 「모든 구독 업데이트」를 실행해 노드 매개변수가 오래된 캐시가 아닌지 확인합니다.
-
프로토콜 확인
대상 노드를 더블클릭해 프로토콜이 VMess인지 VLESS인지 확인하고 주소, 포트, 사용자 ID, 전송 방식과 보안 유형을 점검합니다.
-
코어 선택
「설정」→「매개변수 설정」→「Core 유형」으로 이동한 뒤 VLESS REALITY 노드와 해당 조합을 지원하는 Xray 코어를 선택합니다.
-
포트 확인
매개변수 설정에서 로컬 수신 포트를 확인합니다. SOCKS 포트로
10808을 사용한다면 브라우저나 다른 앱에도 같은 포트를 입력해야 합니다. -
시작 및 테스트
설정을 저장하고 노드를 선택한 뒤 시스템 프록시를 시작합니다. 먼저 로그를 열어 코어가 정상적으로 시작되었는지 확인한 다음 실제 연결 테스트를 진행하세요.
구독을 가져온 뒤 함부로 변경하지 말아야 할 필드
- VMess 노드의 UUID, 전송 경로, Host, TLS 도메인과 포트입니다.
- VLESS REALITY 노드의 공개 키, Short ID, SNI, Fingerprint와 Flow입니다.
- 구독 그룹 이름은 변경할 수 있지만 구독이 자동 업데이트되면 노드 매개변수가 다시 기록됩니다. 수동으로 수정한 원격 필드는 덮어써질 수 있습니다.
- 라우팅 모드는 트래픽이 직접 연결, 프록시 또는 차단 중 어디로 나갈지만 결정하며 VMess 노드를 VLESS 노드로 변환하지 않습니다.
사용 환경에 따른 선택이 단순히 신형인지 보는 것보다 정확하다
서버가 VMess만 제공한다면 VMess를 그대로 사용하면 됩니다. 프로토콜을 바꾸려고 노드 유형을 수동으로 VLESS로 수정할 필요는 없습니다. 두 프로토콜은 서버 설정이 다르므로 클라이언트의 드롭다운 항목만 바꿔서는 변환할 수 없습니다. 기존 VMess WebSocket TLS 노드가 안정적으로 작동한다면 서버 매개변수를 추측해 바꾸기보다 계속 사용하는 편이 낫습니다.
새 서버를 구성 중이고 구독에서 두 노드를 모두 제공하며 모든 기기에서 해당 필드를 지원하는 Xray 코어를 사용할 수 있다면 VLESS REALITY를 우선 테스트해 볼 수 있습니다. 기존 WebSocket 리버스 프록시를 통해 연결해야 하는 네트워크 구조라면 VMess WebSocket TLS와 VLESS WebSocket TLS 모두 후보가 될 수 있으며, 최종 선택은 서버 배포 방식에 따라 달라집니다.
권장 구성: 두 기기에서 하나의 구독 사용
데스크톱(v2rayN)
- VLESS REALITY에는 Xray 코어 사용
- VMess 노드는 호환성을 위해 유지
- 로컬 SOCKS 포트를
10808로 확인 - 구독 업데이트 후 코어 시작 로그 확인
안드로이드(v2rayNG)
- 같은 구독 링크 가져오기
- REALITY 매개변수가 모두 입력되었는지 확인
- 필요할 때 앱별 프록시 활성화
- 노드 전환 후 연결 테스트 실행
프로토콜은 서버와 구독 설정에 따라 결정됩니다. 두 기기에서 같은 구독을 사용하면 수동 입력 차이를 줄일 수 있지만, 각 클라이언트의 코어와 노드 매개변수가 호환되는지는 별도로 확인해야 합니다.
결론부터 확인하기
- 기존 VMess 노드: 매개변수가 정확하고 연결이 안정적이라면 계속 사용하세요. 이름이 오래되었다는 이유만으로 바꿀 필요는 없습니다.
- 새 노드: 클라이언트와 서버가 모두 Xray 코어를 사용한다면 VLESS, XTLS Vision과 REALITY 조합을 우선 검토하세요.
- WebSocket 연결이 필요한 경우: 서버의 기존 구조에 따라 VMess 또는 VLESS를 선택하고 경로, Host와 TLS 도메인이 일치하는지 확인하세요.
- 안드로이드에서 v2flyNG 사용: 현재 v2fly 코어가 명확히 지원하는 프로토콜과 전송 조합을 선택하고, 가져온 뒤 로그에서 필드 호환성을 확인하세요.
- 구독에서 두 프로토콜을 모두 제공하는 경우: 같은 지역과 같은 서버 회선에서 5회 비교 테스트를 진행한 뒤 더 안정적인 구성을 유지하세요.
자주 하는 오해와 문제 해결 순서
VMess 또는 VLESS 노드에 연결되지 않을 때는 먼저 “코어가 시작되지 않음”, “로컬 프록시가 트래픽을 가로채지 않음”, “원격 핸드셰이크 실패”, “DNS 조회 이상”을 구분해야 합니다. 네 문제는 해결 방향이 서로 다르므로 프로토콜만 바꿔서는 포트 충돌, 시스템 프록시 미활성화 또는 구독 필드 누락을 해결할 수 없습니다.
먼저 클라이언트 로그에 로컬 수신 대기 성공 메시지가 있는지 확인하고, 시스템 프록시 상태를 점검한 다음 원격 주소와 포트를 확인하세요. 마지막으로 프로토콜 전용 필드를 점검합니다. VMess는 기기 시스템 시간이 자동으로 동기화되는지도 확인해야 하며, VLESS REALITY는 공개 키, Short ID, SNI, Fingerprint와 Flow를 중점적으로 확인합니다.
VMess 링크를 바로 VLESS 링크로 바꿀 수 있나요?
불가능합니다. 프로토콜은 서버 설정으로 결정되며 클라이언트와 서버가 동일한 인증, 전송과 보안 매개변수를 사용해야 합니다. 링크 접두사나 노드 유형만 바꾸면 핸드셰이크가 실패합니다.
VLESS가 VMess보다 항상 빠른가요?
항상 그렇지는 않습니다. VLESS는 프로토콜 처리가 더 간결하지만 실제 속도는 대개 회선, 서버 부하, 혼잡도와 전송 계층의 영향을 더 크게 받습니다. 같은 서버와 시간대에서 여러 차례 비교해야 합니다.
구독의 VLESS REALITY 노드가 시작되지 않는 이유는 무엇인가요?
먼저 클라이언트가 해당 조합을 지원하는 Xray 코어를 사용하는지 확인한 다음 공개 키, Short ID, SNI, Fingerprint, Flow와 포트가 모두 입력되었는지 점검합니다. 오래된 구독 캐시에 새 필드가 빠져 있을 수도 있으므로 먼저 모든 구독을 업데이트하세요.
라우팅 분할이 프로토콜 선택에 영향을 주나요?
라우팅 규칙은 대상 트래픽을 직접 연결, 프록시 또는 차단 출구 중 어디로 보낼지만 결정하며 VMess와 VLESS를 변환하지 않습니다. 노드 자체에 연결되지 않는다면 먼저 프로토콜과 전송 매개변수를 해결한 뒤 분할 라우팅 규칙을 확인해야 합니다.