프로토콜 상식

SS / VMess / Trojan 프로토콜 비교

똑같이 "프록시"인데 왜 어떤 프로토콜은 차단에 더 강하고 어떤 프로토콜은 더 빠를까요? 이 글은 암호화 방식, 위장 능력, 성능 부담이라는 세 가지 기준으로 주요 프로토콜을 한자리에 놓고 비교합니다.

프로토콜이 해결하는 문제는 무엇인가

Shadowsocks든 VMess든, 본질적으로는 여러분의 네트워크 트래픽을 한 겹 감싸서 중간의 네트워크 장비(통신사, 방화벽)가 이것이 "프록시 트래픽"임을 알아채기 어렵게 만들면서, 전송 과정에서 데이터가 도청되거나 조작되지 않도록 보장합니다. 프로토콜 간의 차이는 주로 세 가지 측면에서 드러납니다.

  • 암호화 강도어떤 알고리즘으로 데이터를 암호화하는지, 전방 보안(forward secrecy)을 지원하는지, 해독되거나 분석될 가능성이 얼마나 되는지.
  • 위장 능력트래픽 특징이 정상적인 HTTPS/TLS 트래픽과 얼마나 비슷한지. 비슷할수록 트래픽 특징 기반 차단에 걸리기 어렵습니다.
  • 성능 부담암복호화와 핸드셰이크 과정에서 소모되는 연산 자원과 지연 시간으로, 사용 체감에 직접적인 영향을 줍니다.

Shadowsocks(SS): 가볍지만 특징이 뚜렷함

Shadowsocks는 가장 먼저 유행한 프로토콜로, 설계 사상이 매우 단순합니다. 공유 키 하나로 데이터를 대칭 암호화하며(흔히 chacha20-ietf-poly1305, aes-256-gcm 같은 AEAD 암호화 사용), 추가적인 핸드셰이크 부담이 거의 없습니다.

  • 장점: 구현이 단순하고 속도가 빠르며 클라이언트 리소스 사용량이 낮습니다. 거의 모든 플랫폼에 성숙한 구현체가 있습니다.
  • 단점: 트래픽 특징이 비교적 고정적이어서 트래픽 분석 기반 심층 패킷 검사(DPI)에 걸리기 쉽고, 검열이 엄격한 네트워크 환경에서는 더 쉽게 표적 속도 제한이나 차단을 당합니다.
  • 적합한 상황: 네트워크 환경이 비교적 자유롭고 속도와 안정성을 우선하는 상황.

VMess: V2Ray 생태계의 핵심 프로토콜

VMess는 V2Ray 프로젝트에서 나온 프로토콜로, SS를 기반으로 타임스탬프 검증, 사용자 UUID 인증 등의 메커니즘을 추가했으며, WebSocket + TLS 전송과 결합해 프록시 트래픽을 일반 웹페이지 HTTPS 요청으로 위장할 수 있어 원래의 SS보다 위장 능력이 뛰어납니다.

  • 장점: WS+TLS와 결합하면 위장성이 좋고 생태계가 성숙하며, 멀티플렉싱(mux)을 지원해 연결 핸드셰이크 횟수를 줄일 수 있습니다.
  • 단점: 설정 항목이 많고 암복호화 및 프로토콜 헤더 파싱 부담이 SS보다 약간 높으며, 시간 동기화에 일정한 요구가 있습니다(클라이언트와 서버의 시간 차이가 너무 크면 인증에 실패할 수 있음).
  • 적합한 상황: 강한 위장 능력이 필요하면서 다소 복잡한 설정도 감당할 수 있는 상황.

Trojan: 실제 웹사이트의 HTTPS 트래픽처럼 위장

Trojan의 설계 철학은 매우 직관적입니다. 표준 TLS 프로토콜을 그대로 재사용해서 서버가 평범한 HTTPS 웹사이트처럼 보이게 만듭니다(심지어 실제 웹 콘텐츠를 설정할 수도 있음). 프록시 트래픽과 해당 웹사이트에 정상적으로 접속하는 트래픽은 특징상 거의 구분이 불가능한데, 이는 그 자체가 표준 TLS이기 때문입니다.

Trojan 서버는 보통 Nginx와 함께 포트 재사용과 인증서 관리를 처리하며, 차단당하더라도 위장된 웹 콘텐츠에 그대로 접속할 수 있어 탐지 저항 능력이 한층 더 높아집니다. 이는 VMess보다 더 선호되는 이유 중 하나입니다.

  • 장점: 위장 능력이 가장 강하고 프로토콜 부담이 작으며(표준 TLS 라이브러리를 재사용) 배포도 비교적 간단합니다.
  • 단점: 유효한 도메인 인증서가 필요합니다(보통 Let's Encrypt 무료 인증서로 충분함). 서버 운영에 대한 요구가 다소 높습니다.
  • 적합한 상황: 검열이 엄격한 네트워크 환경, 또는 프로토콜을 자주 바꾸고 싶지 않고 장기적으로 안정적으로 쓰고 싶은 상황.

Hysteria2 / TUIC: QUIC 기반의 차세대 프로토콜

최근 몇 년 사이 떠오른 Hysteria2, TUIC 등의 프로토콜은 QUIC(UDP) 전송 계층을 기반으로 하며, 전통적인 TCP 기반 프로토콜에 비해 패킷 손실 저항력이 뛰어나고 연결 수립 지연이 낮아 저품질 네트워크나 고지연 환경(예: 국가 간 장거리 링크)에서 체감 성능이 눈에 띄게 향상됩니다.

  • 장점: UDP 기반이라 패킷 손실에 강하고 연결 수립이 빠르며, 저품질 네트워크에서 속도 우위가 뚜렷하고 프록시 상황에 맞춰 최적화된 혼잡 제어 알고리즘을 내장하고 있습니다.
  • 단점: 일부 네트워크 환경에서는 UDP 트래픽에 대한 속도 제한이나 차단이 TCP보다 더 엄격하며, 생태계 성숙도와 클라이언트 지원 수준이 앞의 세 프로토콜보다는 다소 부족합니다.
  • 적합한 상황: 네트워크 품질이 불안정하거나 국가 간 거리가 멀고, 다운로드/스트리밍 속도에 대한 요구가 높은 상황.

표 하나로 보는 선택 가이드

속도를 우선하고 네트워크 환경이 자유로운 경우

ShadowsocksHysteria2를 우선 선택하세요. 핸드셰이크가 빠르고 부담이 적어 일상적인 브라우징과 다운로드 체감이 가장 좋습니다.

검열이 엄격하고 장기적인 안정성이 필요한 경우 추천

Trojan을 우선 선택하세요. 표준 TLS 위장 덕분에 트래픽이 표적 탐지를 거의 받지 않아 장기간 사용해도 차단 위험이 가장 낮습니다.

생태계가 성숙하고 설정이 자유로운 경우

VMess는 V2Ray/Xray 생태계와 결합하면 플러그인과 전송 방식 선택이 가장 풍부해서, 설정 튜닝을 좋아하는 사용자에게 적합합니다.

저품질 네트워크, 국가 간 장거리 환경

Hysteria2 / TUIC는 QUIC 기반으로 패킷 손실 저항력이 강해 국가 간 고지연 링크에서 체감 우위가 뚜렷합니다.

실제 사용에서는 많은 구독 서비스가 여러 프로토콜의 노드를 동시에 제공하므로, 직접 구축할 필요는 전혀 없습니다. Clash 클라이언트에서 지연 시간과 현재 네트워크 환경에 맞춰 정책 그룹 안의 노드나 프로토콜 종류를 바로 전환하면 되고, 마음에 들지 않으면 언제든 바꿀 수 있습니다.

자주 묻는 질문

더 "새로운" 프로토콜이 무조건 더 좋은가요?

그렇지 않습니다. 새 프로토콜은 보통 특정 측면(예: 패킷 손실 저항력, 위장 능력)에서는 강점이 있지만, 생태계 성숙도와 클라이언트 호환성은 기존 프로토콜보다 부족할 수 있습니다. 선택할 때는 무작정 새것을 좇지 말고 자신의 네트워크 환경과 실제 필요에 맞춰 판단해야 합니다.

같은 구독 안에 여러 프로토콜 노드가 있는데, 어떤 걸 써야 할지 어떻게 알 수 있나요?

Clash 컨트롤 패널의 "프록시" 페이지에서 각 노드의 지연 측정 결과를 직접 비교해서 지연이 낮고 안정적인 노드를 우선 사용하면 됩니다. 확신이 서지 않으면 정책 그룹의 자동선택(url-test) 모드에 맡기면 클라이언트가 현재 최적의 노드를 자동으로 골라줍니다.

Clash 클라이언트는 이 모든 프로토콜을 지원하나요?

주요 Clash 클라이언트(Clash Verge, Clash Meta 코어 / Mihomo)는 이미 SS, VMess, Trojan, Hysteria2, TUIC 등의 프로토콜을 지원하며, 구독을 가져오기만 하면 자동으로 인식되어 프로토콜 파라미터를 수동으로 설정할 필요가 없습니다.

더 알아보기

다 배우셨나요? Clash를 설치해서 직접 사용해보세요

모든 플랫폼의 설치 파일을 한곳에서 받을 수 있으며, 추천 태그를 따라 선택하면 실수할 일이 없고 몇 분이면 바로 사용할 수 있습니다.

다운로드 페이지로 이동
#프로토콜상식 #Shadowsocks #Trojan
블로그 목록으로 돌아가기
Clash 클라이언트 다운로드모든 플랫폼 설치 파일, 지금 바로 시작