2026-10-02 · 프로토콜 해설 · 약 9분

Shadowrocket 지원 프로토콜: Shadowsocks·VMess·VLESS·Trojan·Hysteria2·WireGuard 한눈에 보기

Shadowrocket에서 추가할 수 있는 프로토콜 8종의 전송 방식과 주요 설정 항목을 빠르게 살펴봅니다.

이 글 미리보기

Shadowrocket에서는 여러 프로토콜을 추가할 수 있지만, 프로토콜 유형은 사용 중인 서버 설정과 일치해야 합니다. Type을 바꾼다고 한 종류의 노드가 다른 종류로 변환되지는 않습니다. 이미 서비스와 구독을 이용 중인 사용자를 위해 프로토콜·전송 방식·라우팅의 차이를 먼저 살펴보고, 자주 쓰이는 8가지 유형의 설정을 확인한 뒤 가져오기, 테스트, 문제 진단 순서를 안내합니다.

1. 지원 프로토콜 및 설정 빠른 확인

Shadowrocket에서 프로토콜을 선택하려면 Home → 오른쪽 상단 ‘+’ → Type으로 이동합니다. 아래 표에는 이 글에서 다루는 8가지 유형을 정리했으며, 앱에서 선택할 수 있는 전체 항목을 뜻하지는 않습니다. 구체적인 입력란은 현재 앱의 추가 화면을 기준으로 확인하세요. 연결 속도를 추측해 프로토콜을 고르지 말고, 보유한 연결 정보를 따르세요.

8종
이 글에서 다루는 프로토콜 유형 수이며, 앱이 지원하는 전체 개수가 아닙니다
443
TLS 서비스에서 자주 쓰이는 포트 예시입니다. 실제 값은 보유한 설정 정보를 따르세요
4개
Global Routing의 Proxy / Direct / Config / Scene
프로토콜 전송 방식 우선 확인할 설정
Shadowsocks지정된 암호화 방식을 사용해 프록시 데이터를 보호하며, TCP와 UDP 포워딩을 지원할 수 있습니다주소, 포트, 암호화 방식, 비밀번호. 플러그인이 있다면 플러그인 설정도 확인
VMessUUID 등의 정보로 인증하며, 여러 전송 방식과 함께 사용할 수 있습니다주소, 포트, UUID, 암호화 옵션, 전송 방식, TLS
VLESS인증과 외부 전송을 분리하며, 프로토콜 자체는 데이터를 암호화하지 않습니다주소, 포트, UUID, 전송 방식 및 관련 보안 설정
Trojan일반적으로 TLS를 사용하며 비밀번호로 인증합니다주소, 포트, 비밀번호, SNI, 인증서 검증
HTTPHTTP 프록시를 사용하며, HTTPS 대상에는 보통 CONNECT로 터널을 연결합니다주소, 포트, 선택 항목인 사용자 이름과 비밀번호, 프록시 연결의 TLS 설정
SOCKS5범용 프록시 프로토콜입니다. TCP와 UDP를 사용할 수 있지만 양쪽 모두 지원해야 합니다주소, 포트, 선택 항목인 사용자 이름과 비밀번호, UDP 지원 여부
Hysteria2QUIC 기반이며 UDP를 사용합니다주소, 포트, 인증 정보, SNI, 인증서, 선택 항목인 난독화 설정
WireGuardUDP 기반 암호화 터널이며 키로 피어를 식별합니다개인 키, 피어 공개 키, 엔드포인트, 터널 주소, 선택 항목인 사전 공유 키

요약: 서버 정보에 맞춰 Type 선택

보유한 설정 정보에 명시된 프로토콜을 먼저 확인한 다음 항목별로 입력하세요. 주소와 포트만으로는 연결을 구성할 수 없습니다. 인증·전송·보안 설정이 누락됐다면 원본 정보를 확인해 보완하고, Type을 하나씩 바꿔 가며 연결을 시도하지 마세요.

2. 프로토콜·전송 방식·TLS·라우팅은 서로 다른 계층

프로토콜은 클라이언트와 서버가 인증하고 데이터를 구성하는 방식을 정합니다. TCP, UDP, WebSocket 등은 전송 방식이나 데이터가 전달되는 경로를 설명하고, TLS는 해당 연결의 암호화와 신원 확인에 사용됩니다. Global Routing은 요청을 어떻게 분기할지 결정합니다. 한 설정에 여러 항목이 함께 표시될 수 있지만, 한 계층을 수정해도 다른 계층의 문제까지 자동으로 해결되지는 않습니다.

Home에서는 연결과 기록을 관리하고, Config에서는 구성 파일을 관리하며, Settings에서는 앱 설정을 변경합니다. Config 라우팅을 사용할 때는 현재 구성의 규칙에 따라 트래픽이 어디로 향하는지 확인하세요. Scene은 선택한 장면에 맞춰 점검해야 합니다. Settings → On Demand는 조건에 따라 연결을 시작하는 설정이며, 프로토콜 변환이나 노드 인증 설정이 아닙니다.

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

위 내용은 규칙 문법의 예시이며, 연결 가능한 서버 설정이 아닙니다. DOMAIN-SUFFIX는 도메인 접미사로, IP-CIDR은 IP 주소 대역으로 매칭합니다. GEOIP는 IP의 지리적 위치 정보를 사용하고, FINAL은 앞선 규칙에 매칭되지 않은 트래픽을 처리합니다. 규칙은 보통 위에서 아래 순서로 적용됩니다. 이 키워드로 노드의 비밀번호, UUID 또는 키를 대신할 수는 없습니다.

3. Shadowsocks·VMess·VLESS·Trojan 구분하기

Shadowsocks: 암호화 방식과 비밀번호를 함께 확인

Shadowsocks의 비밀번호가 맞더라도 연결 설정이 완전하다는 뜻은 아닙니다. 암호화 방식도 서버 설정과 일치해야 합니다. 이름이 비슷하다는 이유만으로 목록에서 다른 방식을 선택하지 마세요. 보유한 설정에 플러그인이 포함되어 있다면 앱에서 해당 설정을 지원하는지, 플러그인 모드·Host·경로가 무엇인지도 확인하세요. 플러그인 설정은 범용 TLS 스위치가 아닙니다.

VMess와 VLESS: UUID가 같아도 서로 바꿔 쓸 수 없습니다

둘 다 UUID를 사용할 수 있지만 인증 방식과 데이터 처리 방식은 다릅니다. VMess에서는 UUID, 암호화 옵션, 서버가 요구하는 전송 설정을 확인하세요. 인증 오류가 발생하면 기기의 날짜와 시간도 점검해야 합니다. VLESS 자체는 데이터를 암호화하지 않습니다. 연결 보안은 외부 보안 및 전송 설정에 따라 달라지므로 UUID를 암호화 설정으로 간주하지 마세요.

Trojan: 비밀번호뿐 아니라 TLS도 확인

Trojan 설정에는 보통 주소, 포트, 비밀번호, SNI가 포함됩니다. 포트 443은 자주 사용되는 배포 예시일 뿐 필수 값은 아닙니다. 인증서 이름과 연결 주소가 다르다면 인증서 검증을 바로 끄지 말고 서버가 지정한 SNI를 확인하세요. 비밀번호 오류와 인증서 검증 실패는 서로 다른 단계에서 발생하는 문제입니다.

4. Hysteria2·WireGuard·HTTP·SOCKS5 점검하기

Hysteria2와 WireGuard는 모두 UDP를 사용하지만 서로 다른 프로토콜입니다. Hysteria2는 QUIC 기반이므로 인증 정보, TLS, 선택적 난독화 설정을 확인해야 합니다. WireGuard는 공개 키·개인 키와 터널 주소를 사용하므로 피어 설정이 완전해야 합니다. UDP 연결이 된다는 사실만으로 인증, 터널 라우팅, DNS까지 올바르게 설정됐다고 단정할 수는 없습니다.

유형구분해서 확인할 설정연결에 문제가 있을 때 먼저 확인
Hysteria2인증 정보와 난독화 비밀번호는 서로 다른 역할을 할 수 있습니다현재 네트워크에서 지정된 포트로 UDP 연결이 가능한지 확인한 다음 인증 정보와 인증서 이름을 점검하세요
WireGuard로컬 개인 키와 피어 공개 키는 서로 바꿔 쓸 수 없습니다. 터널 주소는 서버 엔드포인트가 아닙니다엔드포인트, 키 쌍, 터널 주소, 허용된 라우팅 범위가 모두 설정됐는지 확인하세요
HTTPHTTPS 웹사이트에 접속한다고 해서 클라이언트와 프록시 사이에 TLS가 자동으로 적용되는 것은 아닙니다프록시 연결의 TLS 요구 사항, 사용자 이름과 비밀번호, 서버의 CONNECT 허용 여부
SOCKS5프로토콜 자체는 전송 데이터를 암호화하지 않습니다. TCP 지원이 UDP 지원을 보장하지는 않습니다인증 방식, 서버의 UDP 지원 여부, 네트워크 연결 가능 여부

프로토콜 이름만으로 속도를 판단하지 마세요. 처리량과 지연 시간은 네트워크 경로, 패킷 손실, 서버 부하, 대역폭 제한의 영향도 받습니다. 기존 연결을 비교할 때는 테스트 네트워크와 대상, 시간을 최대한 동일하게 유지하고 성공 여부와 구체적인 오류를 기록하세요. 한 번 측정한 지연 시간만으로 모든 네트워크에서 특정 프로토콜이 더 적합하다고 결론 내릴 수는 없습니다.

5. 기존 구독 또는 연결 정보를 가져와 확인하기

구독은 연결 기록을 일괄로 가져오는 방식이지, 아홉 번째 전송 프로토콜이 아닙니다. 하나의 구독에 여러 프로토콜이 포함될 수 있으며, 업데이트 후 기록이 바뀔 수도 있습니다. 이 글에서는 이미 서비스와 구독을 이용 중인 경우를 전제로 합니다. 작업 전 원본 정보를 보관하고, 구독 주소와 공유 링크에 포함된 인증 정보는 민감 정보로 취급하세요.

  1. 원본 정보 확인

    구독 주소인지 단일 노드 정보인지 먼저 확인하세요. 구독 주소는 https://example.com/sub?token=xxxx와 같은 형식입니다. 이 주소는 가짜 값으로 만든 예시이므로 연결에 사용할 수 없습니다. 노드의 Server 주소로 사용하지 마세요.

  2. 추가 방법 선택

    기존 구독을 가져오려면 Home → 오른쪽 상단 ‘+’ → Type → Subscribe로 이동해 본인의 구독 주소 전체를 입력하고 저장하세요. 수동으로 추가할 때는 Type에서 보유한 정보에 명시된 프로토콜을 선택합니다. Subscribe를 선택하면 안 됩니다.

  3. 가져온 항목 확인

    구독을 저장하고 업데이트한 다음 Home으로 돌아가 생성된 기록을 확인하세요. 대상 기록을 열어 Type, 주소, 포트를 확인합니다. TLS나 추가 전송 설정이 있다면 원본 정보와 항목별로 대조하고, 표시 이름만 확인하지 마세요.

  4. 테스트 라우팅 확인

    Home에서 테스트할 기록을 선택하고 Global Routing을 확인하세요. 규칙의 영향을 배제해야 한다면 일반 웹 요청을 테스트하는 동안 일시적으로 Proxy를 사용할 수 있습니다. 테스트가 끝나면 기존 라우팅으로 되돌리세요. 프로토콜, DNS, 여러 규칙을 동시에 변경하지 마세요.

  5. 연결 후 재확인

    연결을 켜고 시스템 안내에 따라 VPN 구성을 허용한 다음 대상에 접속할 수 있는지 확인하세요. 이후 자동 연결 동작을 점검하려면 Settings → On Demand로 이동합니다. 먼저 수동 연결 문제와 자동 실행 문제를 분리해 확인하세요.

구독 업데이트는 원격에 있는 기록을 다시 가져오는 작업으로, 앱 업그레이드와는 다르며 각 기록에 직접 적용한 수정 사항이 유지된다는 보장도 없습니다. 업데이트 후 프로토콜, 포트, 이름이 바뀌었다면 이전 정보와 새 정보를 먼저 대조하세요. 목록이 비어 있다면 앱이 특정 프로토콜을 지원하지 않는다고 단정하지 말고 구독 응답 내용과 주소가 완전한지 확인하세요.

6. 프로토콜 선택 및 연결 문제 FAQ

주소와 포트만 있는데 Trojan을 바로 선택해도 되나요?

그 정보만으로는 프로토콜을 판단할 수 없습니다. Trojan에는 비밀번호와 올바른 TLS 설정도 필요하며, 다른 유형은 UUID나 키가 필요할 수 있습니다. 기존 연결 정보에서 프로토콜 이름과 필수 항목을 확인한 다음 Home → ‘+’ → Type에서 해당 유형을 선택하세요.

VLESS를 VMess로 바꾸면 왜 연결되지 않나요?

Type은 표시 이름만 바꾸는 설정이 아니라 실제로 사용할 프로토콜을 결정합니다. 유형을 VMess로 바꿔도 원격 VLESS 서버가 VMess 연결을 받아들이는 것은 아닙니다. 원래 Type으로 되돌린 다음 UUID, 전송 방식, 보안 설정을 확인하세요.

Hysteria2가 한 네트워크에서는 작동하는데 다른 네트워크에서는 실패하나요?

먼저 기록의 설정을 바꾸지 않은 상태로 두 네트워크에서 UDP 연결이 가능한지 각각 확인하세요. 일부 네트워크에서는 UDP가 제한될 수 있습니다. TLS 또는 인증 오류가 나타나면 SNI, 기기의 날짜와 시간, 인증 항목을 확인하세요. 시간 초과만으로 비밀번호 오류라고 판단하면 안 됩니다.

연결됨으로 표시되는데 웹페이지가 열리지 않는 이유는 무엇인가요?

VPN 연결 상태가 원격 프록시 요청의 성공을 뜻하지는 않습니다. 먼저 Home에서 현재 기록을 확인하고 Global Routing이 Direct로 설정되어 있는지 살펴보세요. Config를 사용한다면 매칭되는 규칙과 최종 정책을 확인하고, 도메인 이름 해석 문제와 프록시 인증 문제를 나눠 점검하세요.

하나의 구독에 여러 프로토콜을 함께 넣을 수 있나요?

가능합니다. 단, 반환된 내용이 앱에서 해석할 수 있는 형식이고 각 기록에 필요한 설정이 포함되어야 합니다. 가져온 후 기록별 Type을 확인하세요. 기록이 누락됐다면 구독 응답 내용과 해당 기록의 형식을 먼저 확인하고, 다른 기록의 Type을 바꿔 보완하지 마세요.

App Store 정식 앱 확인