Shadowrocket 지원 프로토콜: Shadowsocks·VMess·VLESS·Trojan·WireGuard 10분 만에 이해하기

Shadowrocket의 Add Server에서 선택할 수 있는 프로토콜 유형, 필수 입력 항목과 주요 전송 방식을 하나씩 설명해 제공받은 설정값을 올바른 위치에 입력할 수 있도록 안내합니다.

이 글 한눈에 보기

자신이 이용하는 서비스 제공자로부터 서버 설정값이나 구독 링크를 받았지만 Add Server에서 어떤 Type을 선택해야 할지 모르겠는 사용자에게 적합합니다. 읽고 나면 Shadowsocks, VMess, VLESS, Trojan, Hysteria2, WireGuard의 핵심 필드를 구분하고 Address, Port, 인증 정보, Transport, TLS를 순서대로 확인할 수 있습니다.

구독 가져오기와 수동 추가부터 구분하기

Shadowrocket의 프로토콜 유형은 네트워크 회선 이름이 아닙니다. 서비스 제공자가 제공한 설정에 Shadowsocks, VMess, VLESS, Trojan, Hysteria2 또는 WireGuard가 적혀 있다면 Home 오른쪽 위의 「+」를 눌러 Add Server로 이동한 뒤 Type을 해당 프로토콜과 일치시키세요. 포트 번호만 보고 프로토콜을 추측하면 안 됩니다. 443 포트는 여러 설정에서 사용할 수 있으며, 포트 자체만으로 유형을 알 수 없습니다.

구독 링크가 있다면 일반적으로 먼저 Subscribe로 가져오는 것이 좋습니다. 구독 내용이 프로토콜 유형, 서버 주소와 전송 설정을 해당 항목에 입력하므로 대소문자, 경로 또는 인증서 이름을 필사하는 과정에서 빠뜨릴 가능성이 줄어듭니다. 완전한 단일 설정값만 있거나 특정 필드를 확인해야 할 때, 또는 서비스 제공자가 직접 입력하도록 안내했을 때는 수동 추가가 적합합니다.

Subscribe 가져오기

권장

기존 구독에서 서버 항목을 생성하고 이후 같은 출처에서 설정을 새로 고칠 수 있습니다. 프로토콜과 전송 필드는 보통 항목과 함께 입력됩니다.

적합한 경우: 완전한 구독 링크가 있고 여러 서버를 관리해야 할 때

Add Server 직접 입력

Address, Port, Password 또는 UUID를 항목별로 입력한 뒤 Transport, TLS, SNI 등의 추가 설정을 계속 확인합니다.

적합한 경우: 완전한 단일 설정값이 있고 필드 대응 관계를 확인해야 할 때

Config 파일

Config는 주로 규칙, DNS 및 분할 라우팅 설정을 담습니다. 서버 프로토콜에 필요한 연결 매개변수를 하나의 규칙 설정으로 대신할 수는 없습니다.

적합한 경우: 규칙 기반 라우팅을 관리할 때, 누락된 서버 인증 정보를 보완할 때가 아님

  1. 출처의 필드 확인

    먼저 서비스 제공자가 안내한 문서에서 명확한 프로토콜 이름, Address, Port와 인증 정보를 찾으세요. 프로토콜 이름이 없다면 원래 설정 출처에 확인해야 하며 포트만 보고 추정하면 안 됩니다.

  2. 추가 화면 열기

    Home을 열고 오른쪽 위의 「+」를 눌러 Add Server로 이동하세요. 구독을 가져온다면 Type을 Subscribe로 설정합니다.

  3. 기존 구독 붙여넣기

    URL에 자신의 링크를 입력합니다. 형식은 https://example.com/sub?token=xxxx처럼 쓸 수 있지만, 이 주소는 예시용 가짜 값이므로 연결에 사용할 수 없습니다.

  4. 해당 프로토콜 선택

    수동으로 추가할 때는 설정 문서에 명확히 표시된 프로토콜을 Type에서 선택한 다음 해당 유형에 표시되는 필드를 입력합니다.

  5. 저장 후 테스트

    저장한 뒤 Home으로 돌아가 생성된 서버 항목을 선택하고 Connectivity Test로 연결 가능 여부를 확인합니다.

여섯 가지 프로토콜에서 먼저 확인할 공통 필드

프로토콜마다 인증 방식은 다르지만 확인 순서는 동일하게 유지할 수 있습니다. 먼저 서버 주소와 포트를 확인하고, 다음으로 비밀번호나 키를 확인한 뒤 Transport와 TLS를 점검하세요. Address에는 호스트 이름이나 IP 주소만 입력하고 https://, 경로와 포트를 함께 넣지 마세요. Port는 설정 출처에 적힌 정수여야 합니다. 443, 8443 등은 흔한 예일 뿐 모든 서버에 공통으로 적용되는 고정 포트는 아닙니다.

6가지
이 글에서 확인하는 프로토콜: Shadowsocks, VMess, VLESS, Trojan, Hysteria2, WireGuard
4단계
주소·포트 → 인증 → Transport → TLS
4가지 관점
Global Routing:Config / Proxy / Direct / Scene
4개 키워드
DOMAIN-SUFFIX / GEOIP / IP-CIDR / FINAL
필드 계층 일반적인 화면 값 확인 방법
연결 대상 Address、Port 호스트 이름과 포트를 한 글자씩 대조하고 공백, 프로토콜 접두사 또는 웹 경로가 붙어 있지 않은지 확인하세요.
인증 정보 Password、UUID、Private Key 프로토콜에 맞게 입력하세요. 세 항목은 용도가 다르므로 서로 대체할 수 없으며 대소문자를 임의로 바꾸면 안 됩니다.
전송 설정 TCP、WebSocket、gRPC、QUIC 설정 문서에 명확히 제시된 Transport만 선택하고 Host, Path 또는 Service Name도 계속 입력하세요.
보안 설정 TLS、SNI、Public Key 도메인, 인증서 이름과 키는 같은 설정에서 가져와야 하며 다른 서버 항목에서 복사하면 안 됩니다.

결론: 프로토콜 이름이 포트 번호보다 우선합니다

443을 확인해도 대상 포트만 알 수 있을 뿐 Trojan, VLESS 또는 다른 Type을 선택할 수는 없습니다. Add Server의 Type은 서비스 제공자가 표시한 프로토콜을 기준으로 선택한 뒤 해당 프로토콜 전용 인증 필드를 확인해야 합니다.

Shadowsocks·VMess·VLESS 필드 대응 방법

Shadowsocks: Password와 Method는 함께 확인

Shadowsocks의 기본 정보에는 보통 Address, Port, Password와 Method가 포함됩니다. Method는 암호화 방식이며, 설정 출처에 특정 AEAD 이름이 제시될 수 있습니다. Shadowrocket의 선택 항목은 원본 설정과 한 글자씩 일치해야 합니다. 서버 주소와 비밀번호가 맞아도 Method가 다르면 포트가 응답할 수는 있지만 실제 인증은 완료되지 않습니다.

VMess: UUID 외에 Transport도 확인

VMess는 일반적으로 UUID 형식의 사용자 식별자를 사용합니다. 설정에 따라 추가 식별자, 보안 옵션, TLS와 Transport가 포함될 수 있습니다. 전송 방식이 WebSocket이면 보통 Path와 Host도 확인해야 하며, 다른 Transport가 명시되어 있다면 해당 항목에서 요구하는 추가 값을 입력해야 합니다. UUID만 복사하고 Path를 빠뜨리면 Address와 Port에는 도달해도 연결 테스트가 실패하는 경우가 많습니다.

VLESS: UUID·Flow·보안 계층을 각각 입력

VLESS도 UUID를 자주 사용하지만 VMess 항목의 이름만 바꿔 그대로 사용할 수는 없습니다. VLESS의 Flow, Transport와 보안 계층은 원본 설정에 맞춰 다시 대응해야 합니다. 일부 설정은 Flow를 사용하지 않으므로 출처가 지정한 빈 값으로 두세요. 출처에 Flow가 명확히 제시되어 있다면 동일한 항목을 선택해야 합니다. Reality를 사용하는 경우 Public Key, Short ID, Server Name 등이 추가될 수 있으며 이 필드들은 모두 같은 서버 설정에 속해야 합니다.

VMess와 VLESS에는 모두 UUID, TLS와 WebSocket 필드가 나타날 수 있지만 프로토콜 유형은 서로 다릅니다. 가장 안전한 방법은 올바른 Type으로 항목을 새로 만든 뒤 설정값을 하나씩 옮기는 것이며, 표시 이름만 수정해서 사용하면 안 됩니다.

Trojan·Hysteria2·WireGuard 식별 방법

Trojan: Password·TLS·SNI를 중점적으로 확인

Trojan 항목의 핵심 인증 값은 보통 Password이며 TLS와 함께 사용하는 경우가 많습니다. SNI 또는 Server Name은 인증서에 대응하는 호스트 이름을 지정합니다. 연결에 사용하는 Address와 같을 수도 있고 설정 출처에서 별도로 지정할 수도 있습니다. 인증서 이름이 틀리면 포트에 접근할 수 있어도 연결이 핸드셰이크 단계에서 멈출 수 있습니다.

Hysteria2: QUIC 기반이므로 UDP 연결 가능 여부 확인

Hysteria2는 일반적으로 QUIC를 기반으로 작동합니다. 연결 대상은 여전히 Address와 Port로 구성되며 인증 정보는 보통 Password로 제공됩니다. 설정에는 SNI, Obfuscation 유형과 Obfuscation Password가 포함될 수도 있습니다. UDP 통신에 의존하므로 테스트 결과는 현재 네트워크가 해당 UDP 포트의 통신을 허용하는지에 영향을 받습니다. Wi-Fi와 셀룰러 네트워크를 바꾼 뒤 결과가 달라도 설정값이 변했다는 뜻은 아닙니다.

WireGuard: 인터페이스와 Peer 두 그룹으로 이해

WireGuard는 앞서 설명한 계정·비밀번호형 프로토콜과 필드 구조가 다릅니다. 설정값을 두 그룹으로 나눌 수 있습니다. 로컬 인터페이스에는 Private Key와 Address가, 원격 Peer에는 Public Key, Endpoint와 Allowed IPs가 포함됩니다. Endpoint는 보통 호스트 이름 또는 IP와 포트로 구성됩니다. Allowed IPs는 해당 Peer로 전달할 대상 범위를 정하며 Shadowrocket의 DOMAIN-SUFFIX 규칙과는 다릅니다.

결론: 먼저 인증 필드로 설정 구조를 식별하세요

Password는 Shadowsocks, Trojan과 Hysteria2에서, UUID는 VMess와 VLESS에서 흔히 사용됩니다. Private Key와 Peer Public Key는 WireGuard를 가리킵니다. 인증 필드는 재확인에만 활용하고 최종 Type은 원본 설정의 표기를 기준으로 선택해야 합니다.

Transport·TLS·포트를 서로 섞어 입력하면 안 되는 이유

프로토콜은 인증과 데이터 캡슐화 방식을 정하고, Transport는 데이터가 전달되는 방식을 결정하며, TLS는 해당 상황에서 암호화 핸드셰이크와 서버 신원 정보를 처리합니다. 세 계층은 조합될 수 있으므로 같은 VLESS 유형도 서로 다른 Transport를 사용할 수 있고, 같은 WebSocket 전송이 여러 프로토콜 항목에 나타날 수도 있습니다. Add Server 화면에 추가 필드가 표시되면 서비스 제공자가 제공한 전체 설정값과 계속 대조해야 하며 프로토콜 이름만 확인하고 멈추면 안 됩니다.

WebSocket의 Path는 보통 /로 시작하고 Host는 핸드셰이크 요청의 호스트 필드입니다. gRPC에서는 Service Name이, TLS 환경에서는 SNI가 자주 사용됩니다. 모두 텍스트 값처럼 보이지만 전송되는 위치가 다릅니다. Service Name을 Path에 입력하거나 Address를 SNI에 그대로 복사하는 것은 원본 설정이 정확히 같은 경우에만 맞을 수 있습니다.

설정 항목 해결하는 문제 잘못 입력했을 때 흔한 현상
Port 서버 수신 진입점 확인 시간 초과, 연결 거부 또는 관련 없는 서비스에 연결됩니다.
Transport TCP, WebSocket, gRPC 또는 QUIC 등 전달 방식 확인 포트에는 도달하지만 프로토콜 핸드셰이크가 완료되지 않습니다.
Path / Service Name 해당 WebSocket 경로 또는 gRPC 서비스 확인 연결이 빠르게 끊기고 서버가 진입점을 찾지 못합니다.
TLS / SNI TLS 연결을 설정하고 서버 이름 일치 확인 인증서 이름이 일치하지 않거나 핸드셰이크가 실패합니다.
UDP Hysteria2, WireGuard 등의 관련 통신 전달 같은 설정값도 접속 네트워크에 따라 결과가 달라집니다.

프로토콜 연결과 Global Routing은 별개의 기능입니다

서버 프로토콜은 연결을 만들고, Global Routing은 연결이 만들어진 뒤 트래픽을 처리하는 방식을 결정합니다. Config는 현재 규칙 설정을 읽고, Proxy는 선택한 서버를 통해 트래픽을 처리하며, Direct는 대상에 직접 연결합니다. Scene은 상황별 설정에 따라 동작합니다. 서버 항목 테스트가 성공했다고 해서 현재 Global Routing이 모든 요청을 해당 항목으로 보낸다는 뜻은 아닙니다.

Config 상태에서는 Shadowrocket이 규칙을 위에서부터 순서대로 대조합니다. 자주 쓰이는 키워드에는 DOMAIN-SUFFIX, GEOIP, IP-CIDR, FINAL이 있습니다. 앞쪽의 구체적인 규칙이 먼저 적용되고 FINAL은 앞에서 일치하지 않은 요청을 처리합니다. 아래 내용은 규칙 문법만 보여 주는 것이며 도메인과 주소는 문서용 예시입니다:

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

Config

권장

Config의 규칙을 순서대로 대조해 대상마다 Proxy 또는 Direct 등의 정책을 적용할 수 있습니다.

적합한 경우: 검증이 끝난 규칙 설정이 있고 일상적으로 대상별 라우팅을 사용할 때

Proxy

현재 선택한 서버를 모든 요청에 사용하여 문제가 규칙에 일치하지 않아 발생하는지 확인할 수 있습니다.

적합한 경우: 일시적으로 규칙 라우팅의 영향을 제외할 때

Direct

요청을 대상에 직접 연결하며 선택한 서버를 통해 전달하지 않습니다.

적합한 경우: 로컬 네트워크에서 대상에 직접 접근할 수 있는지 확인할 때

Scene

설정한 네트워크 상황에 따라 처리 방식을 전환하며 결과는 저장된 Scene 조건에 따라 달라집니다.

적합한 경우: 네트워크 환경별 설정을 명확히 구분해 둔 경우

결론: 프로토콜 테스트 전 라우팅 상태를 고정하세요

새 서버를 점검할 때 현재 Global Routing을 먼저 기록한 뒤 Proxy로 항목 자체를 확인하세요. 항목이 정상임을 확인하면 Config로 되돌아가 DOMAIN-SUFFIX, IP-CIDR과 FINAL의 적용 순서를 계속 점검합니다.

연결 실패 시 필드 계층별로 점검

오류 유형에 따라 점검을 시작할 지점도 다릅니다. Connectivity Test에서 즉시 시간 초과가 표시되면 Address, Port와 현재 네트워크의 연결 가능성을 먼저 확인하세요. 빠르게 실패하지만 포트가 응답하는 것처럼 보이면 프로토콜 Type, Password, UUID, Method와 Transport를 확인합니다. TLS 핸드셰이크 문제라면 SNI, 기기 시간과 인증서 대응 관계를 중점적으로 점검하세요. 한 번에 여러 필드를 바꾸지 마세요. 어떤 수정이 결과를 바꿨는지 알 수 없게 됩니다.

  1. Type 확인

    Add Server 편집 화면으로 돌아가 Type이 원본 설정에 명시된 Shadowsocks, VMess, VLESS, Trojan, Hysteria2 또는 WireGuard와 일치하는지 확인하세요.

  2. 주소와 포트 확인

    Address에서 불필요한 프로토콜 접두사, 경로와 공백을 제거하고 Port가 브라우저나 입력기에 의해 바뀌지 않았는지 확인하세요.

  3. 인증 정보 확인

    Password, UUID, Method, Private Key 또는 Public Key를 한 글자씩 대조하고 특히 대소문자와 하이픈을 확인하세요.

  4. 전송 및 보안 확인

    Transport, Host, Path, Service Name, TLS, SNI, Flow와 Reality 관련 값을 계속 대조하세요.

  5. 라우팅 고정 테스트

    기존 설정을 기록한 뒤 Global Routing을 일시적으로 Proxy로 설정하고 Connectivity Test를 실행해 규칙 라우팅 때문에 차이가 생겼는지 확인한 다음 원래 상태로 되돌립니다.

  6. On Demand 확인

    Settings → On Demand로 이동해 현재 Wi-Fi 또는 셀룰러 네트워크에서 자동 연결, 해제 또는 전환을 실행하는 조건이 있는지 확인하세요.

포트가 443이면 Trojan과 VLESS 중 무엇을 선택해야 하나요?

포트만으로 선택할 수 없습니다. 서비스 제공자가 전달한 설정 문서에서 프로토콜 이름과 Password 또는 UUID 같은 인증 필드를 확인하세요. 출처에 Type이 표시되어 있지 않다면 먼저 원본 설정 출처에 확인해야 합니다.

구독을 가져온 뒤 왜 여러 프로토콜이 표시되나요?

하나의 구독에서 서로 다른 Type의 서버 항목이 생성될 수 있습니다. 각 항목을 열어 유형을 확인하고 모든 항목을 하나의 프로토콜로 수동 변경하지 마세요. 업데이트할 때도 원래 Subscribe 출처에서 새로 고쳐야 합니다.

Connectivity Test는 성공했는데 요청이 서버를 거치지 않아요

Home에서 해당 항목이 선택되어 있는지 확인한 다음 Global Routing이 Direct인지 확인하세요. Config를 사용한다면 대상이 DOMAIN-SUFFIX, GEOIP 또는 IP-CIDR 규칙에 의해 Direct로 할당되어 있는지도 확인합니다.

다른 네트워크로 바꾸면 Hysteria2에 연결되지 않아요

먼저 해당 네트워크가 설정된 포트의 UDP 통신을 허용하는지 확인한 다음 Address, Port, Password와 SNI를 점검하세요. Wi-Fi와 셀룰러 네트워크의 결과가 다르면 테스트 상황을 각각 기록해 원래 서비스 설정 제공자에게 확인을 요청하세요.

On Demand는 언제 켜야 하나요?

네트워크 조건에 따라 연결을 자동으로 실행해야 할 때만 설정하세요. 경로는 Settings → On Demand입니다. 프로토콜 설정을 처음 점검할 때는 수동 테스트에 자동 동작이 영향을 주지 않도록 현재 상태를 먼저 확인하는 것이 좋습니다.

설치 출처와 사용 범위

Shadowrocket은 Apple 플랫폼의 폐쇄형 상용 앱이며 iPhone과 iPad에서 주로 사용합니다. Mac, Apple TV와 Apple Vision의 지원 여부는 App Store 호환성 항목을 기준으로 확인하고, 시스템 요구 사항은 App Store 페이지에 표시된 내용을 기준으로 하세요. 유일한 공식 획득 경로는 App Store입니다. 정품 제품 페이지의 개발자는 Shadow Launch Technology Limited이며 앱 ID는 932747118이고 구매 방식은 1회 구매입니다.

클라이언트 구매에는 회선 서비스가 포함되지 않습니다. 이 글은 사용자가 이미 보유한 서비스 제공자 설정값을 Shadowrocket에 대응하는 방법만 설명하며 회선 서비스, 서버 또는 구독을 제공하거나 추천하지 않습니다. 구독을 업데이트한 뒤 필드가 바뀌었다면 사용자의 원래 설정 출처를 기준으로 해야 하며 기존 항목의 Password, UUID, SNI 또는 키를 새 항목에 복사하지 마세요.

App Store에서 Shadowrocket 다운로드