VMess, VLESS, Trojan은 모두 프록시 연결에 사용되지만 인증 방식, TLS 처리, 전송 방식과 호환되는 코어가 서로 다릅니다. 이 글에서는 세 프로토콜의 구조와 설정 항목을 비교하고, v2rayN·v2rayNG에서 노드 정보를 확인하는 방법, 초보자가 구독 서비스를 선택할 때 살펴볼 기준과 연결 오류를 줄이는 순서를 정리합니다. 단순히 “가장 빠른 프로토콜”을 찾기보다 현재 사용하는 코어와 서버 설정이 맞는지를 먼저 확인하는 것이 핵심입니다.
VMess·VLESS·Trojan은 어떤 프로토콜인가요?
프록시 프로토콜은 클라이언트와 원격 서버가 사용자를 인증하고 데이터를 주고받는 규칙입니다. v2rayN이나 v2rayNG의 서버 목록에서 VMess, VLESS 또는 Trojan을 선택하면 클라이언트는 주소, 포트, 인증 정보, 전송 방식, TLS 관련 값을 코어에 전달합니다. 실제 연결 처리는 Xray 또는 V2Fly 같은 코어가 담당하므로, 화면에 보이는 프로토콜 이름만으로 성능이나 호환성을 단정해서는 안 됩니다.
VMess는 V2Ray 계열에서 오랫동안 사용된 프로토콜로, 사용자 ID와 alterId, 보안 방식, 전송 계층 등의 항목을 함께 사용해 왔습니다. 현재 배포되는 설정에서는 alterId가 0인 경우가 많으며, 예전 설정과 최신 설정의 필드 구성이 다를 수 있습니다. VLESS는 인증 구조를 간결하게 만든 프로토콜입니다. VLESS 자체가 암호화나 위장 방식을 모두 제공하는 것은 아니므로 TLS, XTLS Vision, Reality, TCP, WebSocket 또는 gRPC와 어떤 조합으로 사용되는지를 함께 봐야 합니다.
Trojan은 일반적인 TLS 연결처럼 보이도록 설계된 비밀번호 기반 프로토콜입니다. 보통 서버 주소와 포트, password, TLS의 serverName이 중요하며, 서버 인증서가 유효해야 정상적인 연결이 가능합니다. Trojan을 선택했다고 해서 모든 HTTPS 환경에서 자동으로 안정적인 것은 아닙니다. 인증서 도메인, SNI, 전송 방식, 서버 포트가 서로 일치해야 하며, 코어가 해당 확장 설정을 읽을 수 있어야 합니다.
여기서 443과 10808은 고정된 정답이 아닙니다. 443은 TLS 서버에서 흔히 사용하는 원격 포트이고, 10808은 일부 v2rayN 설정에서 사용하는 로컬 SOCKS 또는 혼합 프록시 포트의 예시입니다. 실제 값은 구독 제공자가 정한 서버 설정과 클라이언트의 「설정」→「매개변수 설정」에서 확인해야 합니다. 숫자만 같다고 같은 종류의 연결이라는 뜻도 아닙니다.
VMess·VLESS·Trojan의 핵심 차이
초보자가 가장 먼저 비교해야 할 항목은 인증 정보와 보안 계층입니다. VMess는 일반적으로 UUID를 사용하고, VLESS도 UUID를 사용하지만 인증 구조가 더 단순합니다. Trojan은 UUID가 아니라 password를 중심으로 인증합니다. 이 값들은 서로 변환할 수 없으므로 VMess 노드의 UUID를 Trojan password 입력란에 넣거나, VLESS 링크를 VMess 유형으로 바꾸는 방식으로 해결할 수 없습니다.
현재 Xray 기반 환경에서 Reality, XTLS Vision, TCP와 함께 폭넓게 사용됩니다. 다만 서버가 요구하는 flow, publicKey, shortId와 fingerprint를 정확히 보존해야 합니다.
적합: 최신 Xray 노드, 세부 설정을 확인할 수 있는 사용자
기존 구독 서비스와 오래된 서버에서 높은 호환성을 보입니다. WebSocket과 TLS 조합이 포함된 설정은 주소, 경로, SNI를 함께 확인해야 합니다.
적합: 기존 노드 유지, 호환성이 중요한 환경
비밀번호와 TLS 인증서 검증을 중심으로 동작합니다. password, serverName, 인증서 도메인이 어긋나면 연결이 바로 실패할 수 있습니다.
적합: 표준 TLS 구성을 선호하고 서버 인증서를 확인할 수 있는 경우
| 항목 | VMess | VLESS | Trojan |
|---|---|---|---|
| 주요 인증 정보 | UUID, 일부 구형 설정의 alterId | UUID, flow 선택 사항 | password |
| TLS 관계 | 선택적으로 사용 | TCP·TLS·Reality 등과 조합 | 일반적으로 TLS가 핵심 |
| 대표 전송 방식 | TCP, WebSocket, gRPC | TCP, WebSocket, gRPC | TCP, WebSocket 등 서버 구성에 따름 |
| 설정 난이도 | 중간 | 조합에 따라 중간에서 높음 | 기본값은 단순하지만 TLS 확인이 중요 |
| 우선 확인할 값 | UUID, 네트워크, 경로, TLS | UUID, flow, Reality 키, SNI | password, SNI, 인증서 도메인 |
결론: 프로토콜보다 서버 조합이 더 중요합니다
같은 VLESS라도 TCP와 Reality, WebSocket과 TLS는 연결 방식과 필요한 필드가 다릅니다. 반대로 VMess도 안정적인 서버와 올바른 WebSocket·TLS 설정을 사용하면 충분히 작동할 수 있습니다. 노드 이름이나 광고 문구보다 링크에 포함된 실제 매개변수를 기준으로 판단하세요.
인증·암호화·전송 방식을 따로 이해하기
프로토콜과 전송 방식은 같은 개념이 아닙니다. VMess, VLESS, Trojan은 주로 인증과 연결 처리의 규칙을 말하고, TCP, WebSocket, gRPC는 데이터를 어떤 전송 계층으로 보낼지 결정합니다. TLS는 전송 내용을 암호화하고 서버 인증서를 확인하는 계층입니다. 따라서 “VLESS라서 암호화된다” 또는 “Trojan이면 무조건 안전하다”와 같은 표현은 지나치게 단순합니다.
예를 들어 VLESS + TCP + TLS 구성에서는 주소와 포트로 TCP 연결을 만든 뒤 TLS를 협상하고 UUID로 사용자를 인증합니다. VLESS + Reality 구성에서는 security=reality, publicKey, shortId, serverName, fingerprint 같은 값이 중요합니다. 이 중 하나라도 누락되면 서버가 연결을 받아들이지 않을 수 있습니다. 설정을 직접 작성하기보다 구독을 가져온 뒤 세부 정보에서 해당 필드가 보존되었는지 확인하는 편이 안전합니다.
VLESS + Reality
- 인증
- UUID
- 보안
- Reality
- 핵심 필드
- publicKey, shortId
- 추가 확인
- serverName, fingerprint, flow
노드에 Reality 관련 값이 있으면 해당 값을 임의로 삭제하거나 TLS로 바꾸지 마세요.
VMess + WebSocket + TLS
- 인증
- UUID
- 전송
- WebSocket
- 보안
- TLS
- 핵심 필드
- host, path, serverName
경로 앞의 슬래시, SNI와 Host 값이 서버 설정과 같은지 확인해야 합니다.
Trojan + TLS 구성에서는 인증서 검증을 끄는 것이 정상적인 해결책이 아닙니다. 기기의 날짜와 시간대가 틀렸거나 serverName이 인증서에 포함되지 않았거나, 서버가 다른 포트에서 TLS를 제공할 수 있습니다. 먼저 시스템 시간을 자동 동기화하고, 노드 세부 정보의 주소·포트·SNI·password를 제공받은 원본과 대조하세요.
초보자가 구독 서비스와 노드를 고르는 기준
구독 서비스를 선택할 때는 프로토콜 이름 하나보다 제공되는 설정의 품질과 관리 방식을 확인해야 합니다. VLESS 노드가 많아도 현재 사용하는 v2rayN 또는 v2rayNG의 코어가 필요한 Reality 필드를 읽지 못하면 연결할 수 없습니다. 반대로 VMess 노드라도 서버 지역, 전송 방식, 만료 관리가 안정적이면 학습용이나 기존 환경의 백업으로 유용할 수 있습니다.
- 클라이언트 호환성: 사용 중인 v2rayN·v2rayNG 버전과 Xray 코어가 구독의 VMess, VLESS, Trojan 필드를 모두 지원하는지 확인하세요.
- 서버 정보의 투명성: 지역, 만료 정책, 동시 접속 제한, 트래픽 기준과 갱신 방법을 명확히 안내하는 서비스를 우선하세요.
- 프로토콜 구성: VLESS만 제공하는지, VMess 또는 Trojan을 백업으로 제공하는지보다 각 노드의 전송 방식과 TLS 설정이 정확한지가 중요합니다.
- 개인정보 보호: 구독 URL에는 계정 식별 토큰이 들어갈 수 있습니다. 전체 주소를 공개 채팅이나 스크린샷에 올리지 말고, 노드를 제공하는 운영 주체의 개인정보 처리 방식을 확인하세요.
- 업데이트 동작: 업데이트 실패 시 새 링크를 발급받을 수 있는지, 만료된 노드가 자동으로 정리되는지, 여러 기기에서 사용 가능한 범위를 확인하세요.
속도 테스트 결과도 한 번의 수치만으로 판단하지 않는 것이 좋습니다. 같은 노드라도 시간대, 회선 혼잡, DNS 응답, 서버 부하에 따라 지연 시간이 달라집니다. 먼저 웹 접속이 안정적인지, 패킷 손실이 반복되지 않는지, 연결이 몇 분 뒤 끊기지 않는지를 확인한 다음 여러 노드를 비교하세요. 프로토콜을 바꾸기 전에 같은 지역의 VMess와 VLESS 노드를 동일한 시간대에 테스트해야 비교가 의미 있습니다.
v2rayN과 v2rayNG에서 노드 확인하기
구독을 가져온 뒤에는 목록에 표시된 이름만 보지 말고 세부 설정을 열어 프로토콜과 전송 계층을 확인하세요. v2rayN에서는 서버 목록에서 노드를 선택한 뒤 마우스 오른쪽 버튼의 설정 편집 항목으로 들어갈 수 있습니다. 버전에 따라 메뉴 이름과 위치는 조금 다를 수 있지만, 주소, 포트, 사용자 ID, 전송 방식, TLS와 SNI를 확인하는 흐름은 같습니다. v2rayNG에서는 기본 화면의 노드를 길게 누른 뒤 편집 화면을 열어 같은 항목을 확인합니다.
코어 확인
v2rayN은 「설정」→「매개변수 설정」→「Core 유형」에서 현재 코어를 확인합니다. VLESS Reality나 XTLS Vision 필드가 포함된 노드는 해당 기능을 지원하는 Xray 코어를 우선 검토하세요.
구독 업데이트
「구독 그룹」에서 주소를 저장한 뒤 「모든 구독 업데이트」를 실행합니다. 업데이트가 끝나기 전에는 목록을 반복해서 삭제하거나 프로토콜을 수동 변경하지 마세요.
노드 편집
VMess, VLESS, Trojan 중 실제 유형을 확인하고 주소와 포트가 비어 있지 않은지 봅니다. VLESS는 UUID, Trojan은 password가 올바른지 확인하세요.
TLS 대조
TLS가 켜져 있다면 serverName 또는 SNI, 인증서 관련 도메인, 전송 방식과 경로를 원본 설정과 비교합니다. Reality 노드는 publicKey와 shortId도 함께 확인합니다.
로컬 프록시 적용
노드를 선택해 활성화한 뒤 v2rayN의 시스템 프록시를 켜거나 v2rayNG에서 VPN 서비스를 시작합니다. 로컬 포트가 다른 프로그램과 충돌하면 「매개변수 설정」에서 사용 가능한 포트로 변경하세요.
연결 테스트는 한 노드에서만 끝내지 말고 같은 프로토콜의 다른 노드와 다른 프로토콜의 노드를 각각 비교하는 방식이 좋습니다. 노드 선택은 성공했지만 브라우저가 접속하지 못한다면 시스템 프록시가 꺼져 있거나 애플리케이션이 다른 프록시 포트를 사용하고 있을 수 있습니다. 반대로 코어 로그에 TLS handshake 또는 authentication failed가 나타난다면 브라우저보다 노드 세부 정보와 서버 측 설정을 먼저 확인해야 합니다.
연결 실패를 줄이는 기본 점검
초보자가 자주 하는 실수는 연결이 느릴 때마다 프로토콜을 바꾸거나, 오류가 발생하면 인증서 검증을 끄거나, 구독 주소와 단일 노드 링크를 혼동하는 것입니다. 구독 주소는 보통 https://로 시작하고 여러 노드 설정을 반환합니다. 반면 vmess://, vless://, trojan:// 링크는 대개 하나의 노드를 직접 가져오는 용도입니다. 입력란을 잘못 선택하면 프로토콜 문제가 아닌데도 목록이 비어 보일 수 있습니다.
VLESS가 항상 VMess보다 빠른가요?
항상 그렇지는 않습니다. 서버 부하, 회선 품질, 전송 방식과 라우팅이 결과에 더 큰 영향을 줄 수 있으므로 같은 조건에서 반복 측정하세요.
Trojan을 선택했는데 인증서 오류가 납니다
기기 시간을 자동 동기화한 뒤 serverName이 인증서 도메인과 같은지 확인하세요. 서버 주소를 IP로 바꾸면 인증서 검증이 실패할 수 있습니다.
구독은 성공했지만 VLESS 노드가 연결되지 않습니다
노드 편집 화면에서 Reality의 publicKey, shortId, serverName과 flow가 누락되지 않았는지 확인하고, 필요한 경우 Xray 코어로 전환하세요.
VMess 노드는 삭제해야 하나요?
정상 작동한다면 바로 삭제할 필요가 없습니다. VLESS 또는 Trojan이 실패할 때 비교용 백업으로 남겨 두고, 만료되었거나 보안상 신뢰할 수 없는 노드만 정리하세요.
로그에 failed to verify certificate가 나오면 시간, SNI와 인증서 도메인을 점검하고, authentication failed가 나오면 UUID나 password를 원본과 비교하세요. connection refused는 서버 포트가 닫혔거나 잘못 입력된 경우가 많고, timeout은 네트워크 경로와 서버 응답 지연을 함께 살펴봐야 합니다. 오류 문구를 기준으로 한 번에 한 항목만 바꾸면 원인을 훨씬 쉽게 좁힐 수 있습니다.
상황별 최종 선택 방법
최신 Xray 기능을 사용하는 구독이고 VLESS Reality 또는 XTLS Vision 필드가 포함되어 있다면 VLESS를 우선 선택하는 것이 자연스럽습니다. 다만 코어와 클라이언트가 해당 필드를 지원해야 하며, 설정을 임의로 단순화하면 연결되지 않을 수 있습니다. 오래된 서버나 여러 클라이언트에서 바로 호환되는 설정이 필요하다면 VMess가 현실적인 선택이 될 수 있습니다. 이미 정상적으로 작동하는 VMess를 단지 이름이 오래되었다는 이유만으로 교체할 필요는 없습니다.
Trojan은 TLS 인증서와 password 관리가 명확한 서비스에서 고려할 만합니다. 인증서 도메인과 SNI가 정확하고 서버 운영이 안정적이라면 단순한 설정으로 사용할 수 있지만, TLS 오류를 해결하려고 검증을 끄는 것은 피해야 합니다. 어떤 프로토콜을 선택하든 구독 제공자의 지원 범위, 데이터 정책, 만료 절차와 장애 대응 방식을 함께 확인하세요.
정리하면 프로토콜 선택의 순서는 “광고된 속도 확인 → 무조건 최신 프로토콜 선택”이 아닙니다. 먼저 사용 중인 클라이언트와 코어를 확인하고, 구독이 제공하는 실제 필드와 전송 방식을 읽은 다음, TLS·인증 정보·서버 안정성을 차례로 비교하세요. 이 순서를 지키면 VMess, VLESS, Trojan 중 하나를 선택할 때 불필요한 재설정과 반복적인 연결 실패를 크게 줄일 수 있습니다.