VMess·VLESS·Trojan 차이점과 초보자용 선택 가이드

프록시 설정을 처음 시작하며 VMess, VLESS, Trojan 중 무엇을 골라야 할지 고민되나요? 이 글에서는 설정 난이도, 호환성, 연결 안정성, 보안 요소를 쉽게 비교하고 v2rayN과 v2rayNG 초보자에게 맞는 선택 기준을 정리합니다.

VMess, VLESS, Trojan은 모두 프록시 서버와 클라이언트 사이의 인증 및 전송에 사용되는 프로토콜이지만, 목적과 설정 방식은 서로 다릅니다. 프로토콜 이름만 보고 속도나 우회 성능을 단정하면 안 되며, 실제 결과는 전송 방식, TLS, 서버 위치, 네트워크 지연, 패킷 손실과 Xray 코어 버전에 함께 영향을 받습니다. 특히 초보자는 노드 주소와 포트만 비교하기보다 어떤 프로토콜이 현재 구독과 클라이언트에 맞는지부터 확인해야 합니다.

이 글에서는 VMess·VLESS·Trojan의 인증 구조와 보안 전제를 구분하고, v2rayN과 v2rayNG에서 노드를 확인하는 순서, 처음 선택할 때 피해야 할 설정, 연결이 되지 않을 때의 점검 기준을 정리합니다. 특정 프로토콜 하나가 모든 환경에서 가장 빠른 것은 아니므로, 사용 가능한 노드와 전송 설정을 기준으로 현실적인 선택을 하는 것이 핵심입니다.

이 글 한눈에 보기

VMess는 구형 환경과 호환성이 강점이고, VLESS는 불필요한 내장 암호화를 줄여 최신 TLS·Reality 구성과 잘 맞으며, Trojan은 TLS 연결을 전제로 일반 HTTPS와 유사한 구조를 사용합니다. 초보자는 프로토콜 이름보다 서버가 제공한 전체 노드 설정, Xray 코어 지원 여부, 전송 방식과 실제 연결 테스트를 기준으로 선택하면 됩니다.

VMess·VLESS·Trojan의 역할부터 구분하기

프록시 프로토콜은 클라이언트가 원격 서버에 사용자를 인증하고, 요청을 어떤 형식으로 전달할지 정하는 규칙입니다. 브라우저가 직접 VMess나 VLESS를 이해하는 것은 아닙니다. v2rayN 또는 v2rayNG가 로컬 SOCKS·HTTP 포트나 TUN 인터페이스에서 애플리케이션 트래픽을 받은 뒤, 선택한 프로토콜에 맞는 아웃바운드 연결을 만들어 원격 서버로 전달합니다. 따라서 프로토콜은 로컬 포트와 같은 개념이 아니며, 10808이나 10809를 변경한다고 VMess가 VLESS로 바뀌는 것도 아닙니다.

VMess는 V2Ray 계열에서 오랫동안 사용된 프로토콜로, UUID 기반 사용자 인증과 alterId 같은 과거 설정이 널리 알려져 있습니다. 현재 Xray 환경에서는 보통 alterId를 0으로 사용하며, 서버가 제공한 UUID와 전송 설정을 정확히 맞춰야 합니다. WebSocket과 TLS를 조합한 VMess 노드는 오래된 서버와 클라이언트에서 호환성이 좋은 편이지만, 새로운 서버가 VLESS를 기본으로 제공한다면 굳이 VMess를 새로 선택할 이유는 줄어듭니다.

VLESS는 인증 정보와 전송 보안을 분리하는 설계를 사용합니다. UUID는 사용자를 식별하지만 프로토콜 자체가 TLS 암호화를 대신 제공하지 않으므로, TCP·TLS, WebSocket·TLS 또는 Reality 같은 전송 보안 구성이 함께 필요합니다. “VLESS라서 자동으로 암호화된다”라고 이해하면 안 됩니다. 서버가 TLS 없이 일반 TCP로 열어 둔 경우에는 노드 정보에 적힌 보안 조건을 별도로 확인해야 합니다.

Trojan은 올바른 TLS 연결을 전제로 동작하며, 일반 HTTPS 서버처럼 보이는 TLS 핸드셰이크와 비밀번호 인증을 조합합니다. 보통 TCP 443과 도메인 인증서를 사용하지만, 포트 443이라는 숫자만으로 Trojan이라고 판단할 수는 없습니다. 같은 443 포트에서도 VLESS, VMess, 일반 웹 서비스가 동작할 수 있으므로 프로토콜, 서버 이름, 인증서 조건과 비밀번호를 함께 확인해야 합니다.

앱 요청 발생 로컬 인바운드 수신 노드 인증 TLS·전송 협상 원격 아웃바운드 연결
3종
비교하는 주요 프로토콜
10808
일반적인 SOCKS 로컬 포트
10809
일반적인 HTTP 로컬 포트
443
TLS 노드에서 자주 사용하는 원격 포트

인증·암호화·전송 방식 비교

세 프로토콜을 비교할 때는 프로토콜 계층과 전송 계층을 분리해서 봐야 합니다. 예를 들어 “VLESS + Reality + TCP”는 VLESS가 인증을 담당하고 Reality와 TCP가 전송·보안 조건을 구성하는 조합입니다. “VMess + WebSocket + TLS”에서는 VMess 인증, WebSocket 전송, TLS 암호화가 각각 함께 사용됩니다. Trojan도 TLS 인증서와 비밀번호가 모두 맞아야 하므로, 이름 하나만으로 설정을 복원할 수 없습니다.

최근 Xray 구성에서 널리 사용되며, VLESS + Reality 또는 TLS 조합을 세밀하게 구성할 수 있습니다. 프로토콜 자체와 전송 보안을 분리하므로 서버가 제공한 flow, SNI, 공개 키 등의 값을 정확히 입력해야 합니다.

적합: 새 노드, 최신 Xray, Reality 구성

기존 서버와 다양한 전송 조합에서 호환성이 좋습니다. 다만 UUID, alterId, TLS, WebSocket 경로가 오래된 설정과 최신 설정에서 다르게 제공될 수 있으므로 구독 원문을 임의로 바꾸지 않아야 합니다.

적합: 기존 구독, 레거시 서버, 호환성 우선

TLS 연결과 비밀번호 인증을 중심으로 구성되며, 도메인과 인증서가 중요한 요소입니다. 서버 인증서가 유효하지 않거나 SNI가 맞지 않으면 프로토콜 자체가 정상이어도 핸드셰이크가 실패합니다.

적합: TLS 기반 서버, 단순한 비밀번호 인증

  • 인증 정보: VMess와 VLESS는 일반적으로 UUID를 사용하고, Trojan은 비밀번호를 사용합니다. 일부 관리 패널은 같은 값을 다른 필드에 표시할 수 있으므로 이름이 아니라 실제 링크 구조를 확인하세요.
  • 암호화 전제: VLESS는 TLS 또는 Reality 같은 외부 보안 계층이 중요하고, VMess도 TLS 없이 사용하면 보안과 식별 특성이 달라집니다. Trojan은 TLS가 설정의 중심입니다.
  • 전송 방식: TCP, WebSocket, gRPC, HTTP/2 등의 지원 여부는 서버와 코어에 따라 다릅니다. 프로토콜만 같다고 전송 방식까지 호환되는 것은 아닙니다.
  • 속도 판단: 암호화 방식보다 서버와의 RTT, 혼잡도, 패킷 손실, 전송 오버헤드와 라우팅 경로가 실제 체감 속도에 더 큰 영향을 줄 수 있습니다.

결론: 프로토콜보다 완성된 노드 구성이 우선입니다

같은 서버와 같은 전송 조건이라면 세 프로토콜의 차이만으로 큰 속도 우위를 단정하기 어렵습니다. 초보자는 VLESS·Reality 같은 이름을 무조건 선택하기보다, 클라이언트가 가져온 모든 필드를 변경하지 않고 정상 핸드셰이크가 되는 노드를 먼저 기준으로 삼으세요.

초보자가 선택할 때 확인할 기준

첫 번째 기준은 서버 제공자가 어떤 조합을 공식적으로 지원하는지입니다. 구독 링크를 가져온 뒤 노드 이름에 VLESS, VMess 또는 Trojan이 표시되더라도, 실제로는 서버 주소·포트·UUID 또는 비밀번호·TLS 여부·SNI·전송 경로가 함께 내려옵니다. 이 중 하나라도 누락되면 수동으로 다른 노드의 값을 복사해 보완하지 마세요. 노드가 연결되지 않는 원인이 프로토콜인지, 잘못된 필드인지 구분하기 어려워집니다.

두 번째 기준은 클라이언트와 코어 버전입니다. v2rayN에서는 노드를 선택한 뒤 현재 사용 중인 Xray 코어 종류와 로그를 확인하고, v2rayNG에서는 프로필을 가져온 후 해당 프로필의 세부 설정과 연결 로그를 확인합니다. Reality 관련 필드나 최신 flow가 보이지 않는다면 코어가 오래되었거나 해당 클라이언트가 링크 형식을 완전히 해석하지 못했을 가능성이 있습니다. 이때 서버 설정을 임의로 VMess로 바꾸기보다 클라이언트와 코어를 먼저 업데이트하는 편이 안전합니다.

세 번째 기준은 사용 환경입니다. 기존 회사나 개인 서버가 VMess + WebSocket + TLS만 제공한다면 VMess를 선택하는 것이 맞습니다. 새로 발급받은 노드가 VLESS + Reality로 제공되고 Xray 코어가 이를 지원한다면 VLESS를 우선 테스트할 수 있습니다. TLS 인증서와 도메인 설정이 명확하고 비밀번호 기반 프로필을 간단히 관리하고 싶다면 Trojan도 좋은 선택이지만, 인증서 검증을 끄는 방식으로 문제를 숨겨서는 안 됩니다.

상황 먼저 볼 노드 확인할 항목
새 Xray 서버 VLESS UUID, TLS 또는 Reality, SNI, flow
오래된 구독 VMess UUID, alterId, WebSocket 경로, TLS
HTTPS 기반 서버 Trojan 비밀번호, 도메인, 인증서, SNI, 포트

v2rayN과 v2rayNG에서 실제로 테스트하기

비교를 공정하게 하려면 한 번에 여러 값을 바꾸지 않아야 합니다. 같은 네트워크에서 같은 서버 지역의 노드를 선택하고, 먼저 연결 여부를 확인한 다음 DNS, 라우팅, TUN과 같은 추가 기능을 점검하세요. TUN을 켠 상태에서 처음부터 테스트하면 프로토콜 문제와 라우팅 문제를 동시에 만들 수 있으므로 일반 시스템 프록시 또는 앱 내 프록시 상태에서 시작하는 것이 좋습니다.

  1. 코어 확인

    v2rayN에서는 「설정」→「매개변수 설정」에서 선택된 코어를 확인하고, v2rayNG에서는 설정과 프로필의 코어 관련 항목을 확인합니다. VLESS Reality 등 서버가 요구하는 기능을 지원하는 Xray 계열 코어인지 먼저 확인하세요.

  2. 노드 가져오기

    「구독 그룹」 또는 프로필 추가 메뉴에서 제공받은 구독 주소를 그대로 입력합니다. 수동으로 추가할 때는 주소, 포트, UUID 또는 비밀번호, 보안 방식, SNI와 전송 경로를 원문과 대조하고 다른 노드의 값을 복사하지 마세요.

  3. 단일 노드 선택

    비슷한 지역의 VMess·VLESS·Trojan 노드 중 하나만 선택하고 연결합니다. v2rayN의 로그 또는 v2rayNG의 연결 로그에서 handshake, TLS, timeout, authentication 관련 메시지를 확인해 실패 단계가 로컬인지 원격인지 구분하세요.

  4. 프록시 확인

    연결 표시만 보지 말고 브라우저에서 IP 확인 페이지와 일반 웹사이트를 각각 열어 봅니다. 시스템 프록시가 v2rayN의 HTTP 포트 10809를 가리키는지, 앱별 VPN을 사용하는 v2rayNG에서 다른 VPN과 충돌하지 않는지 확인하세요.

  5. 조건별 비교

    같은 방식으로 각 노드를 세 번씩 시험하고 평균 지연, 페이지 로딩, 끊김 횟수를 기록합니다. 한 번의 속도 측정값보다 반복 결과와 패킷 손실, 로그의 재연결 여부를 우선해 사용할 노드를 결정하세요.

VLESS 점검 항목

사용자 식별
UUID
보안 계층
TLS 또는 Reality
전송
TCP, WS, gRPC 등
추가 값
SNI, flow, 공개 키

서버가 제공한 Reality 값이나 flow를 추측해 입력하지 말고 구독 원문을 기준으로 확인하세요.

VMess·Trojan 점검 항목

VMess 인증
UUID, alterId
Trojan 인증
비밀번호
공통 확인
주소, 포트, TLS, SNI
전송
WS 또는 TCP 등

VMess와 Trojan도 전송 설정이 다르면 연결 결과가 달라지므로 프로토콜 이름만 비교하지 마세요.

연결 실패와 잘못된 선택을 줄이는 방법

VLESS 연결 실패에서 자주 보이는 원인은 Reality 공개 키, shortId, 서버名称 또는 flow 입력 오류입니다. TLS 기반 VMess와 Trojan에서는 SNI와 인증서 도메인이 서로 맞지 않거나, WebSocket 경로 앞뒤의 슬래시가 달라지는 문제가 흔합니다. Trojan은 비밀번호가 맞더라도 서버 인증서 검증이나 시스템 시간 때문에 TLS 단계에서 실패할 수 있습니다. 기기의 날짜와 시간 자동 설정도 함께 확인하세요.

반대로 연결은 되지만 웹사이트가 열리지 않는다면 프로토콜보다 로컬 경로를 먼저 봐야 합니다. v2rayN의 시스템 프록시가 꺼져 있거나 브라우저가 다른 프록시를 사용하고 있을 수 있고, v2rayNG에서는 다른 VPN 앱이 VPN 인터페이스를 선점할 수 있습니다. TUN을 사용한다면 라우팅 규칙에서 해당 도메인이 직접 연결로 빠지거나 DNS 요청만 실패하는지도 확인해야 합니다.

오류: failed to handshake with server

원인 및 해결 방법:서버 주소, 포트, TLS·Reality 조건 또는 전송 방식이 맞지 않을 가능성이 큽니다. 노드 원문과 SNI, 공개 키, flow를 다시 대조하고 임의의 값을 삭제하거나 추가하지 마세요.

오류: authentication failed

원인 및 해결 방법:VMess UUID·alterId 또는 Trojan 비밀번호가 서버 값과 다를 수 있습니다. 구독을 다시 업데이트한 뒤 동일한 서버의 새 프로필로 재시험하고, 비밀번호 앞뒤 공백도 확인하세요.

오류: connection timeout

원인 및 해결 방법:원격 포트가 차단되었거나 서버가 응답하지 않는 상태일 수 있습니다. 다른 프로토콜의 노드로 무작정 바꾸기 전에 서버 지역, 네트워크 변경 여부와 노드 로그의 연결 대기 시간을 비교하세요.

프로토콜 선택 전 최종 체크리스트

프로토콜을 선택한 뒤에는 이름보다 연결 결과와 유지 관리성을 확인해야 합니다. 구독 업데이트 후에도 같은 필드가 유지되는지, 코어 로그에 반복적인 재연결이 없는지, 시스템 프록시나 TUN을 켰을 때 DNS와 일반 웹 트래픽이 의도한 경로로 흐르는지 점검하세요. VMess에서 VLESS로 변경하거나 Trojan으로 바꾸는 작업은 만능 해결책이 아니며, 서버가 해당 프로토콜을 지원하지 않으면 클라이언트에서 아무리 설정해도 연결되지 않습니다.

  • 서버가 공식 제공한 프로토콜과 전송 방식을 우선한다.
  • VLESS는 TLS·Reality 필드를, VMess는 UUID·alterId·전송 경로를 확인한다.
  • Trojan은 비밀번호뿐 아니라 인증서, SNI와 시스템 시간을 확인한다.
  • v2rayN과 v2rayNG의 코어가 노드 기능을 지원하는지 확인한다.
  • 연결 표시, IP 확인, DNS, 반복 테스트를 모두 진행한 뒤 최종 선택한다.

정리하면 VMess는 기존 환경과의 호환성, VLESS는 최신 Xray 구성과 유연한 전송 보안, Trojan은 TLS 기반의 명확한 인증 구조가 주요 특징입니다. 초보자에게 가장 좋은 선택은 이름이 가장 최신으로 보이는 프로토콜이 아니라, 제공된 전체 설정을 정확히 해석하고 현재 클라이언트에서 안정적으로 재현되는 노드입니다.

클라이언트 다운로드