프로토콜·전송·보안 계층부터 구분하기
VMess, VLESS, Trojan, Shadowsocks는 모두 프록시 연결에 사용할 수 있지만 문제를 해결하는 방식은 서로 다릅니다. 비교하기 전에 세 가지 계층을 먼저 나눠야 합니다. 프로토콜은 클라이언트와 서버가 인증하고 데이터를 주고받는 방식을 정하고, 전송 계층은 TCP, WebSocket, gRPC 등 어떤 방식으로 데이터를 전달할지 결정합니다. 보안 계층은 연결을 암호화하거나 보호된 세션을 구성합니다.
하나의 구독 항목에는 보통 여러 계층의 설정이 함께 들어 있습니다. 예를 들어 VLESS 노드는 TCP 전송과 TLS를 사용할 수도 있고, Xray의 REALITY와 Vision 플로우 컨트롤을 사용할 수도 있습니다. 다른 VMess 노드는 WebSocket을 사용한 뒤 TLS로 외부 연결을 보호할 수 있습니다. 두 항목의 프로토콜 이름이 다르더라도 실제 속도와 안정성은 서버와의 거리, 회선 품질, 혼잡도, 전송 방식, 클라이언트 코어 버전, 라우팅 규칙의 영향을 함께 받습니다.
일반 사용자가 구독을 받은 뒤 VMess 노드를 직접 VLESS로 바꿀 필요는 없으며, 링크 앞부분만 수정한다고 프로토콜이 변환되지도 않습니다. 프로토콜 유형, 인증 정보, 서버의 수신 방식과 보안 계층은 서버 설정과 일치해야 합니다. 클라이언트에 표시되는 설정은 구독 항목에 기록된 그대로 사용하세요. 서비스 제공자가 여러 노드를 함께 제공한다면 지연 시간 테스트와 실제 접속 성능을 기준으로 선택하면 됩니다.
4가지 프로토콜의 핵심 차이
VMess: 인증과 암호화 협상을 지원하는 검증된 방식
VMess는 V2Ray 생태계에서 오랫동안 사용되어 온 프로토콜입니다. 클라이언트는 사용자 식별자를 사용해 서버와 인증하며, 최신 구현에서는 일반적으로 AEAD 방식으로 인증 데이터를 처리합니다. VMess는 클라이언트와 서버의 시간 차이에 민감합니다. 기기 시간이 크게 어긋나 있으면 인증 실패나 연결 직후 끊김이 발생할 수 있습니다.
VMess는 TCP, WebSocket 등의 전송 방식과 함께 사용할 수 있으며 외부 계층에 TLS를 설정할 수도 있습니다. 프로토콜 자체의 인증 및 데이터 처리와 외부 전송 위장은 같은 개념이 아닙니다. 일반적인 암호화 웹사이트 트래픽처럼 보이는지는 실제 전송 방식, 보안 계층, 도메인과 서버 배포 방식에 따라 결정됩니다. 장점은 관련 배포 자료가 풍부하고 v2rayN, v2rayNG, v2flyNG 모두 일반적인 VMess 구독을 처리할 수 있다는 점입니다. 단점은 처리 단계가 비교적 많아 성능이 낮은 기기나 높은 동시 접속 환경에서 간소화된 VLESS 설정보다 오버헤드가 커지는 경우가 많다는 것입니다.
VLESS: 간소화된 인증, 보안은 외부 계층에 위임
VLESS는 사용자 식별자 인증을 유지하지만 프로토콜 내부에서 데이터 암호화까지 중복으로 처리하지 않습니다. 실제 배포에서는 TLS, REALITY 또는 서버 설정과 일치하는 다른 보안 계층에 연결 보호를 맡겨야 합니다. 이러한 역할 분리는 중복 처리를 줄이고 매개변수 조합을 명확하게 하므로 최신 Xray 배포에 적합합니다.
VLESS 자체가 속도를 보장하는 것은 아닙니다. 서버 회선과 전송 방식이 같고 보안 계층이 적절하게 설정되어 있다면 일반적으로 낮은 프로토콜 오버헤드로 데이터를 전송할 수 있습니다. 하지만 적합하지 않은 전송 방식을 추가하거나 플로우 컨트롤 매개변수를 잘못 설정하거나 복잡한 라우팅을 적용하면 실제 사용 경험은 저하될 수 있습니다. xtls-rprx-vision 플로우 컨트롤이나 REALITY 매개변수가 포함된 구독은 Xray 생태계의 확장 기능이므로 해당 기능을 지원하는 Xray 코어를 사용해야 합니다. v2rayNG은 Xray 코어를 사용할 때 이러한 설정을 직접 적용하기 쉽고, v2rayN은 코어와 설정 모드를 맞춰 선택해야 합니다. v2flyNG은 v2fly 코어를 사용하므로 Xray 전용 매개변수가 있는 경우 일반 VLESS 노드와 동일하게 처리할 수 없습니다.
Trojan: TLS 연결을 주요 외부 계층으로 사용
Trojan은 비밀번호로 클라이언트를 인증하고 TLS를 연결의 핵심 구성 요소로 사용합니다. 올바르게 배포되면 핸드셰이크와 이후 데이터가 모두 TLS 세션 안에서 처리됩니다. 설정에서 중요한 것은 비밀번호만이 아닙니다. 서버 주소, 포트, 도메인, 인증서 이름 검증, 전송 매개변수도 포함됩니다. 어느 하나라도 서버 설정과 다르면 TLS 핸드셰이크가 실패할 수 있습니다.
Trojan은 프로토콜 구조가 직관적이며 일반적인 데스크톱과 Android 환경에서 지원이 좋습니다. 도메인과 TLS를 배포할 수 있는 서버에 적합합니다. 성능 오버헤드는 비밀번호 문자열의 길이보다 TLS, 네트워크 왕복 시간, 실제 전송 방식의 영향을 크게 받습니다. 구독에 Trojan TCP 노드와 다른 전송 방식을 사용하는 Trojan 노드가 함께 있다면 각각 속도를 측정해야 합니다. 프로토콜 이름이 같다고 지연 시간까지 같다고 볼 수는 없습니다.
Shadowsocks: 경량 암호화 프록시
Shadowsocks는 사전 공유 비밀번호와 지정된 암호화 방식을 사용해 프록시 연결을 구성합니다. 최신 설정에서는 AEAD 암호화 방식을 사용하는 경우가 많고, 일부 서버는 Shadowsocks 2022 계열도 제공합니다. 클라이언트는 구독에 명시된 구체적인 암호화 방식을 지원해야 합니다. “Shadowsocks”라는 범주를 지원한다고 해서 모든 최신 방식과 확장 매개변수를 해석할 수 있는 것은 아닙니다.
프로토콜 구조가 비교적 가벼워 프로세서 성능이 제한적이거나 연결 수가 적당한 환경, 프로토콜 처리 부담을 줄이고 싶은 경우에도 유용합니다. Shadowsocks의 기본 연결은 완전한 웹사이트 동작을 모방하지 않으며, 외부에서 보이는 특성은 버전, 암호화 방식, 네트워크 환경, 서버 배포 방식에 따라 달라집니다. 따라서 “경량”은 주로 처리 경로와 설정 구조를 설명하는 말이며, 더 강한 위장 성능과 동일한 의미로 보아서는 안 됩니다.
핸드셰이크·위장·성능·지원도 비교
| 프로토콜 | 인증 및 핸드셰이크 | 외부 계층 및 위장 조건 | 성능 특징 | 클라이언트 확인 사항 |
|---|---|---|---|---|
VMess |
사용자 식별자 인증, 최신 구현은 AEAD 사용; 기기 시간이 대체로 정확해야 함 | TCP, WebSocket, TLS와 조합 가능하며 결과는 전체 설정에 따라 달라짐 | 처리 단계가 많지만 호환성과 운용 경험이 풍부함 | 세 클라이언트 모두 일반적인 설정을 처리할 수 있으며, 기존 구독은 서버 호환성을 확인해야 함 |
VLESS |
사용자 식별자 인증을 간소화하고 프로토콜 계층에서 데이터 암호화를 중복 처리하지 않음 | 일반적으로 TLS 또는 REALITY와 함께 사용; Vision은 특정 코어의 확장 기능 | 프로토콜 오버헤드가 낮아 최신 배포에 적합 | 일반 VLESS와 Xray 전용 매개변수는 별도로 판단해야 함 |
Trojan |
비밀번호 인증, 연결 수립은 TLS 매개변수 일치 여부에 좌우됨 | TLS가 주요 외부 계층이며 도메인과 인증서 이름 설정이 중요함 | 구조가 직관적이며 실제 처리량은 TLS와 회선의 영향을 받음 | 가져온 뒤 서버 이름, 포트, 전송 설정을 확인해야 함 |
Shadowsocks |
사전 공유 비밀번호와 지정된 암호화 방식 | 기본 프로토콜은 암호화 프록시에 초점을 두며 외부 특성은 버전과 배포 방식에 따라 결정됨 | 처리 경로가 가벼워 리소스가 제한된 기기에 적합 | 클라이언트 코어가 구독에 지정된 암호화 방식을 지원하는지 확인해야 함 |
“위장 성능”은 전송 계층과 분리해 평가할 수 없습니다. VMess over WebSocket over TLS, VLESS over TCP with REALITY, Trojan over TLS, 기본 Shadowsocks는 연결 구조가 완전히 다릅니다. 두 노드가 모두 TLS를 사용하더라도 도메인 설정, 핸드셰이크 매개변수, 서버 동작, 네트워크 경로는 달라질 수 있습니다. 일반 사용자에게 가장 신뢰할 수 있는 방법은 구독 매개변수를 그대로 가져온 뒤 실제 사용 환경에서 연결을 검증하는 것입니다.
“클라이언트 지원도” 역시 프로토콜 지원, 매개변수 지원, 코어 지원으로 나눠 살펴봐야 합니다. v2rayN은 데스크톱 클라이언트로 다양한 코어와 여러 유형의 구독을 관리할 수 있습니다. v2rayNG은 Xray 코어를 사용하므로 VLESS, REALITY, Vision 등 Xray 매개변수가 포함된 Android 구독에 적합합니다. v2flyNG은 v2fly 코어를 사용하므로 표준 V2Ray/v2fly 설정에 적합합니다. 가져오기에 성공했다는 것은 링크를 해석했다는 뜻일 뿐이며, 실행 시 코어가 모든 필드를 인식하는지 추가로 확인해야 합니다.
가정용 인터넷에서는 어떻게 선택할까
가정용 인터넷은 일반적으로 연결이 안정적이고 기기 성능도 충분하므로 서버 회선 품질, 저녁 시간대 혼잡, 장기적인 호환성을 중점적으로 봐야 합니다. 구독에 VLESS, Trojan, VMess, Shadowsocks가 모두 있다면 지연 시간 테스트를 한 번만 실행하기보다 다음 순서대로 확인하세요.
- 먼저 클라이언트 코어와 완전히 일치하는 노드를 선택하세요. Xray 매개변수는 Xray 코어에, 표준 v2fly 설정은 v2fly 코어에 우선 맡겨야 합니다.
- 연결 수립 시간, 연속 접속 안정성, 대용량 파일 전송을 각각 테스트하세요. 한 번 측정한 지연 시간이 가장 낮다는 이유만으로 결론 내리지 마세요.
- 저녁에 주로 사용하는 시간대에 테스트를 반복하세요. 회선 혼잡으로 생기는 차이가 프로토콜 자체의 작은 처리 오버헤드보다 큰 경우가 많습니다.
- 시스템 프록시와 라우팅 분할이 정상인지 확인하세요. 로컬 직접 연결 트래픽을 노드 속도로 잘못 측정하지 않도록 주의해야 합니다.
최신 기기와 정상적인 회선 환경에서는 적절한 보안 계층을 구성한 VLESS를 우선 후보로 볼 수 있습니다. 이미 안정적인 TLS 배포가 있다면 Trojan도 상시 연결에 적합합니다. VMess는 기존의 검증된 노드를 계속 사용하고 싶을 때, 특히 구독이 VMess만 제공하거나 서버가 아직 이전되지 않은 경우에 적합합니다. Shadowsocks는 구조가 가벼운 대안으로 활용할 수 있습니다. 이 순서는 프로토콜의 우열이 아니라 일반적인 배포 조건에서 테스트를 시작하는 기준입니다.
모바일 네트워크에서는 어떻게 선택할까
모바일 네트워크에서는 기지국 전환, 신호 변동, 네트워크 주소 변경, 일시적인 패킷 손실이 발생할 수 있습니다. 이때는 실험 환경의 최고 속도보다 연결 복구 속도와 전송 안정성이 중요합니다. 프로토콜은 여러 계층 중 하나일 뿐이며, 클라이언트 백그라운드 정책, 시스템 절전 설정, 라우팅 범위도 성능에 영향을 줍니다.
VLESS, Trojan, VMess 모두 모바일 네트워크에서 안정적으로 작동할 수 있지만, 현재 회선에 맞는 전송 방식과 서버 설정이 전제되어야 합니다. 네트워크 전환 후 특정 노드가 오랫동안 복구되지 않는다면 먼저 연결을 끊었다가 다시 연결한 뒤 같은 서버의 다른 프로토콜 노드와 비교하세요. 프로토콜, DNS, 라우팅, Mux를 동시에 변경하지 마세요. 어떤 설정이 영향을 주었는지 확인할 수 없게 됩니다.
Mux는 여러 논리 연결을 더 적은 수의 하위 연결로 다중화하며, 네 가지 프로토콜을 구분하는 근본적인 차이는 아닙니다. 일부 웹 접속 환경에서는 다중화가 도움이 될 수 있지만, 높은 대역폭이나 장시간 연결에서는 헤드 오브 라인 블로킹이 발생할 수도 있습니다. 모바일 네트워크를 테스트할 때는 먼저 구독 기본값을 사용하세요. 자주 끊기거나 멈춘다면 Mux를 켜거나 끈 상태를 각각 비교하되, 매번 다른 매개변수는 그대로 유지해야 합니다.
v2rayNG에서는 앱별 프록시를 사용해 프록시가 필요 없는 백그라운드 연결 수를 줄일 수 있고, 라우팅 규칙으로 로컬 서비스를 직접 연결할 수도 있습니다. v2flyNG도 실제 코어가 지원하는 범위에 맞춰 설정을 가져와야 합니다. 구독에 REALITY 또는 Vision이 포함되어 있다면 일반 VLESS 링크로 단순화하지 말고 Xray 코어 버전과 노드 매개변수부터 확인하세요.
구형 기기에서는 어떻게 선택할까
구형 기기의 주요 제약은 대개 프로세서 성능, 사용 가능한 메모리, 시스템 네트워크 스택입니다. 프로토콜 오버헤드가 낮은 설정이 안정적인 처리량을 유지하기 쉽지만, 암호화 알고리즘의 하드웨어 가속 여부, 전송 계층의 중복 캡슐화, 연결 수 역시 최종 결과를 바꿀 수 있습니다.
Shadowsocks의 가벼운 구조를 먼저 테스트해 볼 수 있지만, 클라이언트 코어가 지원하는 최신 암호화 방식을 선택해야 합니다. VLESS도 간소화된 전송과 적절한 보안 계층을 조합하면 낮은 오버헤드를 유지할 수 있습니다. Trojan은 TLS에 의존하므로 실제 성능은 기기가 TLS를 처리하는 능력과 관련이 있습니다. VMess는 처리 단계가 비교적 많으므로 높은 처리량에서 기기 사용률이 계속 최대치에 도달한다면 같은 회선의 VLESS 또는 Shadowsocks 노드와 비교해 보세요.
리소스 사용량을 줄이려면 먼저 앱별 프록시 적용 범위를 좁히고 불필요한 동시 연결을 줄이며 여러 전송 계층을 겹쳐 사용하지 않는 것이 좋습니다. 라우팅 규칙은 읽기 쉽게 유지하세요. 로컬 도메인과 LAN 주소는 직접 연결하고, 프록시가 필요한 대상만 프록시 아웃바운드로 보내며, 차단 규칙은 명확한 대상에만 적용합니다. 규칙 수 자체만이 문제가 아닙니다. 복잡한 도메인 매칭과 다단계 해석을 자주 수행하는 것도 실행 부담을 늘릴 수 있습니다.
구형 기기에서 오래된 클라이언트 버전만 실행할 수 있다면 해당 버전이 명확히 지원하는 표준 프로토콜 매개변수를 우선 사용하세요. 최신 VLESS 확장, Shadowsocks 2022 방식, 특정 플로우 컨트롤은 최신 코어가 필요할 수 있습니다. 서버에서 여러 구독 그룹을 제공한다면 호환 그룹을 선택하세요. 알 수 없는 필드를 직접 삭제한 뒤 계속 연결하려고 하면 안 됩니다. 필드 간에 의존 관계가 있을 수 있기 때문입니다.
구독을 가져온 뒤 선택하는 순서
구독에는 서버 주소, 포트, 인증 정보, 프로토콜, 전송 방식, 보안 계층이 함께 구성되어 있습니다. 올바른 프로토콜을 선택하는 첫 단계는 링크를 편집하는 것이 아니라 가져온 결과를 대조하는 것입니다. v2rayN, v2rayNG, v2flyNG은 화면의 명칭이 조금씩 다르지만 확인 절차는 같습니다.
- 프로토콜 유형 확인: 노드가 VMess, VLESS, Trojan, Shadowsocks 중 무엇으로 표시되는지 확인하세요. 구독 그룹 이름을 프로토콜로 착각하지 않도록 주의해야 합니다.
- 주소와 포트 확인: 가져온 서버 주소와 포트가 모두 입력되어 있는지 확인하세요. 도메인만 남고 포트가 누락되어서는 안 됩니다.
- 전송 방식 확인: TCP, WebSocket, gRPC 등의 전송 방식이 구독과 일치하는지 확인하세요. 경로와 호스트명 같은 필드도 빠짐없이 유지해야 합니다.
- 보안 계층 확인: TLS, REALITY, 서버 이름, 플로우 컨트롤 필드를 확인하세요. 특히 VLESS에서는 이러한 매개변수를 빠뜨리지 않아야 합니다.
- 코어 확인: Xray 확장이 포함된 노드는 해당 확장을 지원하는 코어에서 실행하고, 표준 v2fly 설정은 v2fly의 지원 범위에 맞춰 실행하세요.
- 시스템 시간 확인: 기기의 날짜와 시간대를 자동으로 동기화하여 시간 오차로 VMess 인증이 실패하지 않도록 하세요.
- 실제 환경에서 테스트: 먼저 연결을 측정하고, 자주 사용하는 사이트에 접속한 뒤, 계속 사용하는 동안 재연결과 속도 변동을 확인하세요.
구독을 업데이트한 뒤 같은 이름의 노드에서 프로토콜이나 매개변수가 바뀌었다면 업데이트된 항목을 다시 선택해야 합니다. 클라이언트에 이전 노드 사본이 남아 있을 수 있으므로 테스트 전에 현재 활성 설정이 최신 구독 그룹에 속하는지 확인하세요. 라우팅 규칙과 노드 프로토콜은 서로 독립적인 요소입니다. 프로토콜을 바꾼다고 잘못된 라우팅 분할이 자동으로 수정되지 않으며, 라우팅을 업데이트해도 서버 인증 방식은 바뀌지 않습니다.
자주 하는 선택 실수
오해 1: VLESS가 항상 VMess보다 빠르다
VLESS는 프로토콜 구조가 더 간소하지만 속도 상한은 대개 회선, 서버 부하, 전송 방식에 의해 결정됩니다. 지역 간 회선이 혼잡하면 프로토콜 계층에서 줄인 처리량만으로 네트워크 품질 차이를 상쇄하기 어렵습니다. 같은 서버와 네트워크, 비슷한 보안 계층에서 진행한 비교 테스트만 참고할 만합니다.
오해 2: Trojan은 비밀번호만 입력하면 연결된다
비밀번호는 인증 매개변수 중 하나일 뿐입니다. TLS 서버 이름, 포트, 도메인 해석, 전송 유형, 인증서 배포가 모두 연결 수립에 관여합니다. 구독을 가져온 뒤 핸드셰이크 실패가 표시되면 먼저 이러한 필드를 대조하세요. 비밀번호를 계속 바꿔 가며 시도하지 마세요.
오해 3: Shadowsocks는 어디서나 똑같이 지원된다
코어마다 지원하는 암호화 방식과 프로토콜 버전이 다를 수 있습니다. 기존 설정의 방식, 최신 AEAD 방식, Shadowsocks 2022 계열을 이름만 보고 같은 호환 범위로 묶어서는 안 됩니다. 클라이언트가 암호화 방식을 인식하지 못한다면 서버가 제공하는 호환 노드로 바꾸거나 해당 클라이언트 코어를 업데이트하세요.
오해 4: 가져오기에 성공하면 모든 매개변수를 사용할 수 있다
클라이언트는 먼저 공통 필드를 해석한 뒤 코어를 시작하는 단계에서 알 수 없는 매개변수를 보고할 수 있습니다. 특히 REALITY, Vision, 특정 전송 설정은 클라이언트 화면, 설정 생성기, 실행 코어가 모두 지원해야 합니다. 시작에 실패했다면 구독 해석, 설정 생성, 코어 시작, 네트워크 핸드셰이크 중 어느 단계에서 오류가 발생했는지 확인하면 해결 방향을 명확히 잡을 수 있습니다.
최종 선택: 환경별 조합을 유지하기
가정용 인터넷에서는 VLESS와 Trojan을 먼저 테스트하고 안정적인 VMess 또는 Shadowsocks 노드를 예비로 남겨 두세요. 모바일 네트워크에서는 한 번의 지연 시간보다 연결 끊김 후 복구, 지속 연결, 전송 적응성을 우선적으로 확인하세요. 구형 기기에서는 Shadowsocks 또는 간소화된 VLESS 설정부터 시작하고 프로세서 사용률과 지속 처리량을 함께 보며 결정하면 됩니다.
구독이 한 가지 프로토콜만 제공한다면 서버 매개변수를 그대로 사용하면 됩니다. 프로토콜 선택권은 클라이언트의 임의 설정이 아니라 서버의 실제 배포에서 결정됩니다. 네 가지 프로토콜을 모두 제공하는 구독이라면 노드 이름, 프로토콜, 코어, 주 사용 시간대의 지연 시간, 지속 연결 성능, 다운로드 속도를 간단히 기록하는 것이 좋습니다. 여러 차례 비교한 뒤 주 노드 하나와 서로 다른 회선의 예비 노드 한두 개를 남겨 두세요.
네 가지 프로토콜에는 환경을 초월한 고정 순위가 없습니다. VMess의 특징은 성숙한 호환성이고, VLESS의 특징은 간소화된 구조와 외부 보안 의존성입니다. Trojan은 올바른 TLS 배포가 핵심이며, Shadowsocks는 가벼운 구조와 암호화 방식 호환성이 중요합니다. 프로토콜 이름만 보는 것보다 구독 매개변수, 클라이언트 코어, 기기 성능, 네트워크 환경을 단계별로 확인하는 편이 더 정확합니다.