Shadowrocket 지원 프로토콜: Shadowsocks부터 Hysteria2까지 한눈에 보기

Shadowrocket의 Shadowsocks, VMess, VLESS, Trojan, HTTP/SOCKS5, WireGuard, Hysteria2 특징과 주요 설정 항목을 정리했습니다.

이 글 미리 보기

Shadowrocket은 다양한 프록시 프로토콜과 터널 프로토콜을 지원합니다. 이미 이용 중인 서비스와 구독이 있고 연결 설정을 확인하려는 사용자를 위해, 먼저 표로 프로토콜을 구분한 뒤 인증·전송·TLS 항목을 점검하고 마지막으로 Global Routing을 통해 규칙 문제를 분리해 살펴봅니다. 각 설정값을 어디에 입력해야 하는지, 연결에 실패하면 어느 부분부터 확인해야 하는지 파악할 수 있습니다. 프로토콜 이름만으로 연결 속도를 알 수는 없습니다.

프로토콜 빠른 확인: Type을 먼저 선택하고 설정값을 점검하세요

Shadowrocket은 Shadowsocks, VMess, VLESS, Trojan, HTTP, SOCKS5, WireGuard, Hysteria2 등을 지원합니다. 서버를 추가할 때 Home → 오른쪽 위 “+” → Type에서 선택한 항목에 따라 필요한 설정값이 달라집니다. 프로토콜은 서비스 제공자가 안내한 연결 정보와 일치해야 하며, Type 이름만 다른 것으로 바꾼다고 프로토콜이 변환되는 것은 아닙니다.

프로토콜주요 특징우선 확인할 설정값
Shadowsocks정해진 암호화 방식과 비밀번호로 인증하며, 설정 항목이 비교적 간단합니다.서버 주소, 포트, 암호화 방식, 비밀번호, 추가 플러그인 필요 여부
VMessUUID로 사용자를 식별하며, 인증과 전송 설정이 모두 일치해야 합니다.UUID, 암호화 설정, AlterId(안내 정보에 있는 경우), 전송 방식, TLS
VLESS프로토콜 자체는 페이로드를 암호화하지 않으므로 실제 배포 환경의 보안 계층을 확인해야 합니다.UUID, 전송 방식, TLS 또는 REALITY 설정값, Flow(있는 경우)
Trojan일반적으로 TLS 연결에서 비밀번호로 인증합니다.비밀번호, 포트, TLS 서버 이름, 인증서 검증
HTTP / SOCKS5범용 프록시 유형이며, 인증 및 암호화 기능은 구체적인 설정에 따라 달라집니다.프록시 주소, 포트, 사용자 이름, 비밀번호, TLS 사용 여부
WireGuardUDP 기반의 암호화 터널로, 키와 상대 측 설정을 사용합니다.로컬 Private Key, 상대 측 Public Key, Endpoint, 터널 주소, 라우팅 범위
Hysteria2QUIC 기반이며 UDP를 사용해 프록시 트래픽을 전달할 수 있습니다.서버 주소, 포트, 인증, TLS 서버 이름, 혼잡 또는 난독화 설정(있는 경우)

이 표는 설정 항목을 식별하기 위한 것이며 성능 순위가 아닙니다. 실제로 설정할 수 있는 항목은 현재 설치된 Shadowrocket의 화면을 기준으로 확인하세요. 서비스 제공자가 안내한 확장 기능도 클라이언트에서 지원해야 사용할 수 있습니다. 설정 정보를 받으면 원본을 보존하고 항목별로 확인하세요. 이름이 비슷하다고 호환된다고 단정하지 마세요.

Shadowsocks, VMess, VLESS: 인증과 전송 설정을 따로 확인하세요

Shadowsocks: 암호화 방식과 비밀번호를 정확히 맞추세요

Shadowsocks의 서버 주소와 포트는 접속 지점을 지정하며, 암호화 방식과 비밀번호가 함께 맞아야 통신할 수 있습니다. 예를 들어 서버에서 aes-128-gcm을 지정했다면 클라이언트에서 임의로 chacha20-ietf-poly1305로 바꿀 수 없습니다. 플러그인이나 다른 확장 설정이 필요한 연결은 주소와 비밀번호만 남겨 일반 설정처럼 사용해서는 안 됩니다.

VMess: UUID가 맞아도 설정이 완전한 것은 아닙니다

VMess의 UUID는 사용자 식별자이며 서버 도메인이나 구독 token이 아닙니다. UUID 외에도 전송 방식, TLS, 서비스 제공자가 안내한 추가 설정을 확인해야 합니다. 안내 정보에 AlterId가 있다면 해당 값을 그대로 사용하고 다른 설정에서 값을 가져오지 마세요. 기기 시간이 크게 어긋나도 인증에 영향을 줄 수 있으므로 시스템 날짜와 시간이 정확한지 먼저 확인하세요.

VLESS: UUID를 암호화 설정으로 혼동하지 마세요

VLESS에서도 UUID는 인증에 사용되지만, VLESS 자체는 페이로드를 암호화하지 않습니다. 서비스 제공자는 TLS나 REALITY 등을 조합해 사용할 수 있습니다. Flow, Public Key, Short ID 등이 안내되어 있다면 해당 조합에 맞춰 모두 입력해야 합니다. REALITY는 일반 TLS 스위치를 켜는 것으로 대체할 수 없으며, Public Key를 비밀번호 입력란에 넣어서도 안 됩니다.

WebSocket은 별도의 인증 프로토콜이 아닙니다

WebSocket은 전송 방식이며, 자주 사용하는 설정값으로 Host와 Path가 있습니다. 예를 들어 안내된 Path가 /connect인데 /로 바꾸면 핸드셰이크에 실패할 수 있습니다. Host, 서버 주소, TLS 서버 이름이 서로 다를 수도 있으므로 안내 정보에 따라 각각 확인하세요.

Trojan, HTTP, SOCKS5: TLS와 프록시 인증을 구분하세요

Trojan은 일반적으로 TLS로 연결을 보호한 다음 비밀번호로 인증합니다. 인증서 검증 실패가 곧 비밀번호 오류를 뜻하지는 않습니다. 접속 주소는 IP인데 인증서는 도메인에 발급된 경우 TLS 서버 이름, 즉 SNI를 확인해야 합니다. 오류 메시지를 없애려고 인증서 검증을 건너뛰지 말고 도메인, 기기 시간, 서버 인증서 상태부터 점검하세요.

설정 항목의미혼동하기 쉬운 점
서버 주소클라이언트가 실제로 연결하는 도메인 또는 IP 주소입니다.TLS 인증서에 지정된 도메인과 다를 수 있습니다.
Port서버가 연결을 받는 포트입니다. 안내 정보에 443이 지정될 수 있습니다.443은 흔히 쓰이는 예일 뿐, 모든 프로토콜에 적용되는 것은 아닙니다.
SNITLS 핸드셰이크에서 전송하는 서버 이름입니다.전체 URL을 입력하지 마세요. https://나 경로도 포함하지 않습니다.
사용자 이름 및 비밀번호HTTP / SOCKS5 서비스에서 요구할 수 있는 프록시 인증 정보입니다.서비스 제공자가 명시적으로 안내한 경우가 아니라면 구독 사이트 로그인 정보가 아닙니다.

HTTP 프록시는 CONNECT를 통해 HTTPS 대상 연결을 전달하는 경우가 많지만, “대상 URL이 HTTPS를 사용한다”는 것과 “클라이언트에서 프록시 접속 지점까지 TLS를 사용한다”는 것은 별개의 문제입니다. SOCKS5 자체도 연결을 암호화하지 않으며, 사용자 이름과 비밀번호 인증이 암호화 계층을 대신하지 않습니다. 보안이 필요한 경우 프록시에 비밀번호가 설정되어 있는지만 보지 말고 전체 연결 경로를 확인하세요.

WireGuard와 Hysteria2: UDP 통신 가능 여부를 따로 확인하세요

WireGuard는 암호화 터널 프로토콜이며, “주소와 비밀번호”를 입력하는 프록시 설정이 아닙니다. 로컬 Private Key와 상대 측 Public Key를 구분하고, Endpoint에는 원격 접속 지점을 지정하며, 터널 주소는 터널 내부에서 사용합니다. 키 방향을 바꾸어 입력하거나 주소를 빠뜨리거나 라우팅 범위를 잘못 설정하면 설정을 저장했는데도 대상에 접속할 수 없을 수 있습니다.

Hysteria2는 QUIC을 사용하며 일반적으로 UDP로 연결을 설정합니다. 네트워크에서 TCP 443이 허용된다고 UDP 443도 허용되는 것은 아닙니다. 포트 번호가 같아도 두 프로토콜은 별개입니다. 인증, TLS 서버 이름, 선택적 난독화 설정은 서버 설정과 일치해야 합니다. 대역폭 관련 값을 입력해도 물리적인 네트워크나 서버가 실제로 제공할 수 있는 용량이 바뀌지는 않습니다.

요약: 먼저 UDP 연결을 확인한 뒤 설정을 조정하세요

같은 네트워크에서 TCP 기반 연결은 되는데 WireGuard나 Hysteria2가 계속 시간 초과된다면, 사용이 허용된 다른 네트워크에서 다시 테스트하고 서비스 제공자에게 UDP 포트를 확인하세요. 비밀번호를 바꾸거나 인증서 검증을 건너뛰거나 대역폭 값을 임의로 높이는 것부터 시작하지 마세요.

가져오기 및 확인: 서비스 제공자가 안내한 설정을 빠짐없이 보존하세요

이미 구독을 사용 중이라면 구독에 포함된 설정 조합을 유지하고 필요한 프로토콜이 모두 가져와졌는지 확인하세요. 구독 주소, 개별 서버 공유 링크, 구성 파일 링크는 용도가 서로 다릅니다. 링크가 https://로 시작한다는 이유만으로 종류를 판단해서는 안 됩니다. 구독 주소는 서비스 제공자에게 받으세요.

  1. 설정 정보 구분하기

    먼저 받은 정보가 구독 주소, 개별 서버 정보, 구성 파일 중 무엇인지 확인하세요. 구독 주소 예시 https://example.com/sub?token=xxxx는 형식만 보여 주는 것으로, 실제 서비스에 사용할 수 없습니다. 실제 token을 공개하지 마세요.

  2. 구독 가져오기

    Home → 오른쪽 위 “+” → Type → Subscribe에서 본인의 구독 주소를 입력하고 저장하세요. Home으로 돌아가 가져온 결과를 확인하고, 업데이트가 필요하면 Home 화면을 아래로 당겨 새로고침한 뒤 목록이 예상대로 바뀌었는지 확인하세요.

  3. 수동으로 설정 확인하기

    수동으로 서버를 추가하려면 Home → 오른쪽 위 “+” → Type에서 해당 프로토콜을 선택한 다음 안내 정보에 따라 주소, 포트, 인증 정보를 입력하세요. 전송 방식이나 TLS 옵션이 있으면 해당 항목도 확인해야 합니다. 기본 화면의 몇 가지 항목만 입력해서는 설정이 끝나지 않을 수 있습니다.

  4. 연결 다시 테스트하기

    Home에서 방금 확인한 서버를 선택해 연결한 다음 실제 접속하려는 대상으로 테스트하세요. 자동 연결의 영향을 분리하려면 Settings → On Demand에서 현재 설정을 기록하고, 문제를 확인하는 동안 필요 시 연결을 일시 중지한 뒤 점검이 끝나면 기존 설정으로 복원하세요.

구독을 업데이트하면 구독으로 관리되는 서버 설정이 덮어써질 수 있습니다. 비교 테스트가 필요하다면 기존 설정과 변경 사항을 먼저 기록하세요. 한 번의 테스트에서 프로토콜, DNS, 규칙, 전송 설정을 동시에 바꾸지 마세요. 조건을 한 번에 하나씩 변경해야 결과와 원인을 연결할 수 있습니다.

Global Routing: 프로토콜 연결과 규칙 기반 분할 라우팅은 별개입니다

Home에서는 서버를 선택하고 연결하며, Config에서는 구성 파일을 관리하고, Settings에서는 앱 설정을 조정합니다. Global Routing은 트래픽의 라우팅 방식을 결정할 뿐 Shadowsocks를 Trojan으로 바꾸거나 프로토콜 인증을 대신하지 않습니다. 문제를 확인하기 전에 이 설정을 점검해 트래픽이 선택한 서버를 거치지 않는 상황을 프로토콜 사용 불가로 오해하지 않도록 하세요.

Config

권장

현재 구성의 규칙에 따라 사용할 경로를 선택하며, 대상에 따라 프록시를 이용하거나 직접 연결하거나 연결이 거부될 수 있습니다. 사용 전 구성의 출처와 FINAL에 지정된 실제 동작을 확인하세요. 규칙에 일치하지 않은 트래픽이 반드시 직접 연결된다고 가정하지 마세요.

적합한 경우: 규칙을 확인한 뒤 평소처럼 대상별로 트래픽을 분할하려는 경우

Proxy

Shadowrocket이 처리하는 트래픽을 프록시 경로로 전달합니다. 규칙 일치 여부를 잠시 분리해 확인할 때 유용합니다. 잘못된 비밀번호, 연결되지 않는 포트, TLS 핸드셰이크 실패를 해결해 주지는 않습니다.

적합한 경우: 현재 서버로 같은 테스트 대상에 접속할 수 있는지 확인하려는 경우

Direct

트래픽을 직접 연결 방식으로 처리하며, 선택한 프록시 서버가 작동하는지 확인하는 용도로 사용할 수 없습니다. 전환 후 웹페이지가 다시 열린다면 직접 연결 경로가 작동한다는 뜻일 뿐입니다.

적합한 경우: 로컬 네트워크와 프록시 경로의 접속 결과를 비교하려는 경우

Global Routing의 Scene은 상황별 설정에 따라 라우팅 동작을 정합니다. 확인할 때는 각 Scene의 구체적인 조건도 살펴보세요. 개별 연결 설정을 확인하려는 경우 먼저 현재 방식을 기록한 다음 고정된 방식으로 다시 테스트해 네트워크 전환에 따른 Scene 변경을 방지하세요.

[Rule]
DOMAIN-SUFFIX,example.com,PROXY
IP-CIDR,192.0.2.0/24,DIRECT,no-resolve
GEOIP,CN,DIRECT
FINAL,PROXY

아래 내용은 Config 방식에서 사용하는 규칙 문법의 예시이며, 기존 구성을 그대로 교체하라는 의미가 아닙니다. DOMAIN-SUFFIX는 도메인 접미사를, IP-CIDR은 IP 주소 대역을 일치시킵니다. GEOIP는 IP 지리 정보를 사용하고, FINAL은 앞선 규칙에 일치하지 않은 트래픽을 처리합니다. 규칙은 순서대로 적용됩니다. 192.0.2.0/24는 문서용 예시 대역이며 실제 서비스 주소로 사용해서는 안 됩니다.

자주 묻는 질문: 증상별로 다음 확인 항목 찾기

가져오기는 성공했는데 연결이 시간 초과되는 이유는 무엇인가요?

가져오기에 성공했다는 것은 설정 정보를 읽었다는 뜻일 뿐, 접속 지점에 연결할 수 있다는 뜻은 아닙니다. Home에서 해당 서버의 편집 화면을 열어 주소, 포트, Type을 확인한 뒤 현재 네트워크도 점검하세요. Hysteria2와 WireGuard는 UDP 연결 가능 여부도 따로 확인해야 합니다. 구독 업데이트 성공을 연결 테스트 결과로 대신하지 마세요.

지연 시간은 표시되는데 웹페이지가 열리지 않는 이유는 무엇인가요?

지연 시간 테스트가 인증, TLS, DNS, 대상 사이트 접속까지 전체 경로를 확인하지 않을 수 있습니다. 먼저 Global Routing의 원래 값을 기록하고, 같은 대상을 Proxy로 임시 테스트하세요. Config에서만 실패한다면 Config에서 현재 구성과 대상에 일치하는 규칙을 확인한 뒤 테스트가 끝나면 원래 라우팅 방식으로 되돌리세요.

VLESS를 VMess로 바로 바꿀 수 있나요?

Type만 바꿔서는 안 됩니다. 두 프로토콜은 서버 설정과 인증 방식이 다르므로 UUID 문자열이 같아도 호환된다는 뜻은 아닙니다. 서비스 제공자에게 해당 프로토콜의 설정 정보를 모두 제공하는지 확인한 다음 Home → 오른쪽 위 “+”에서 새 항목을 추가하고, 기존 항목은 비교용으로 남겨 두세요.

항상 가장 빠른 프로토콜은 무엇인가요?

프로토콜 이름만으로 속도를 확정할 수는 없습니다. 동일한 네트워크와 대상, 테스트 시간대를 유지하면서 연결 성공 여부, 페이지 로딩, 지속적인 데이터 전송 상태를 각각 기록하세요. 이미 사용 중이며 설정이 정확한 연결끼리만 비교하세요. UDP가 제한된 환경에서 Hysteria2 연결 실패만으로 다른 프로토콜의 성능까지 판단해서는 안 됩니다.

설정 항목을 더 알아보려면 설정 항목 안내를, 용어를 확인하려면 용어집을 참조하세요. 문의할 때는 오류 메시지, 프로토콜 유형, 재현 절차를 포함하되 비밀번호, UUID, 구독 token, 개인 키는 가리세요. 연결 정보 전체를 공개된 페이지에 올리지 마세요.

App Store 정식 앱 확인