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

Shadowrocket에서 추가할 수 있는 프로토콜과 특징, Add Server에서 확인할 항목을 빠르게 살펴봅니다. Shadowsocks, VMess, VLESS, Trojan, HTTP/SOCKS5, WireGuard, Hysteria2를 다룹니다.

이 글의 내용

Shadowrocket은 여러 연결 프로토콜을 지원하지만, 서버를 추가할 때는 프로토콜 이름만 보고 속도를 짐작하지 말고 사용 중인 서비스의 설정값을 기준으로 해야 합니다. 서비스와 연결 정보를 이미 보유한 사용자를 위해 프로토콜, 인증, 전송 계층을 구분하고 Add Server의 항목을 확인하는 방법을 설명합니다. 마지막으로 프로토콜 연결 문제와 Global Routing 규칙 문제를 구분합니다. 구독 링크는 서비스 제공업체에서 받으세요.

지원 프로토콜: 인증 항목과 전송 조건 확인하기

Shadowsocks, VMess, VLESS, Trojan, HTTP, SOCKS5, WireGuard, Hysteria2는 각각 설정 구조가 다릅니다. 같은 설정값에 이름만 달리 붙인 것이 아닙니다. 서버에서 사용하는 프로토콜에 맞는 Type을 클라이언트에서도 선택해야 합니다. 기존 항목의 Type을 Shadowsocks에서 Trojan으로 바꿔도 서버 설정이 함께 바뀌지 않으며, 속도를 높이는 방법도 아닙니다.

주요 프로토콜 설정 확인표
프로토콜주요 확인 항목혼동하기 쉬운 점
ShadowsocksAddress, Port, Password, 암호화 방식Password가 맞아도 암호화 방식이 다르면 정상적으로 통신할 수 없습니다.
VMessAddress, Port, UUID, 암호화 설정, 전송 매개변수UUID는 일반 계정 비밀번호와 다르며 전송 계층도 일치해야 합니다.
VLESSAddress, Port, UUID, 서버에서 요구하는 전송 및 보안 설정프로토콜 자체는 페이로드를 암호화하지 않으므로 별도의 보안 계층을 확인해야 합니다.
TrojanAddress, Port, Password, TLS, 서버 이름연결 주소와 인증서 검증에 사용하는 이름은 서로 다를 수 있습니다.
HTTP / SOCKS5Address, Port, 서버에서 요구하는 사용자 이름과 비밀번호HTTP와 SOCKS5는 핸드셰이크 방식이 달라 서로 바꿔 쓸 수 없습니다.
WireGuard로컬 키, Peer 공개 키, Endpoint, 터널 주소, 라우팅 매개변수서버 주소와 비밀번호만으로는 설정을 완료할 수 없습니다.
Hysteria2Address, Port, 인증 정보, TLS, 대역폭 관련 매개변수QUIC 기반이므로 해당 UDP 통신이 네트워크에서 허용되어야 합니다.

Add Server에 표시되는 항목은 Type에 따라 달라집니다. 앱 인터페이스 버전에 따라 항목의 그룹과 이름이 달라질 수도 있습니다. 표에는 확인해야 할 매개변수의 의미를 정리했으며, 모든 Type에 같은 입력란이 표시된다는 뜻은 아닙니다. 서비스 정보에 없는 고급 옵션은 먼저 가져온 값을 그대로 두고 다른 프로토콜의 설정을 적용하지 마세요.

정리: 설정값을 먼저 일치시킨 다음 연결을 테스트하세요

기존 구독을 정상적으로 가져올 수 있다면 가져온 설정으로 먼저 연결해 보세요. 특정 항목이 서비스 제공업체의 정보와 다르다는 점을 확인한 경우에만 수정하고, 비교할 수 있도록 원래 항목을 보관하세요.

Shadowsocks, VMess, VLESS, Trojan의 차이

Shadowsocks에서는 주로 암호화 방식과 Password를 확인합니다. VMess와 VLESS는 보통 UUID로 사용자를 식별하며, 전송 방식이 추가될 수 있습니다. Trojan은 비밀번호 인증과 TLS를 함께 사용합니다. 프로토콜 이름만으로 연결 과정 전체를 알 수는 없습니다. 연결을 설정할 수 있는지는 서버에서 개방한 포트, 전송 설정, 인증서 조건에도 달려 있습니다.

Address, SNI, Host를 같은 값으로 입력하지 마세요

Address는 클라이언트가 연결을 시도하는 서버 주소입니다. SNI는 TLS 핸드셰이크에서 서버 이름을 알리는 데 사용됩니다. WebSocket 등의 전송 방식에서는 Host가 애플리케이션 계층 요청에 사용될 수 있습니다. 일부 설정에서는 세 값이 같지만, 다른 설정에서는 서로 다릅니다. 값을 모두 같게 맞추려고 하나의 IP 주소로 통일하지 마세요.

전송 방식이 WebSocket이라면 Path와 Host도 각각 확인하세요. Path의 슬래시와 대소문자도 중요할 수 있습니다. 핸드셰이크가 실패하면 인증서 검증을 바로 끄기보다 먼저 해당 항목을 다시 확인하세요. 검증을 끄면 신원 확인이 약해지므로 일반적인 해결 방법으로 사용해서는 안 됩니다.

Hysteria2, WireGuard, HTTP/SOCKS5 이해하기

Hysteria2와 WireGuard는 모두 UDP를 사용하지만 용도와 설정 방식은 다릅니다. HTTP/SOCKS5는 프록시 프로토콜이며, 해당 Type을 선택한다고 모든 연결 구간이 자동으로 암호화되는 것은 아닙니다. 먼저 서버가 실제로 지원하는 프로토콜을 확인하고 네트워크에서 해당 통신을 허용하는지 살펴보세요.

Hysteria2
QUIC 기반 전송을 사용하려면 일반적으로 UDP 통신이 가능해야 합니다. 서비스 제공업체에서 인증 정보, 난독화 또는 대역폭 설정을 지정했다면 해당 값을 확인하세요. 대역폭 수치를 높인다고 실제 회선 용량이 커지는 것은 아닙니다. UDP가 차단된 경우 인증 비밀번호만 바꿔서는 연결 시간 초과를 해결할 수 없습니다.
WireGuard
키와 Peer 설정을 사용해 터널을 구성합니다. 로컬 Private Key와 상대방의 Public Key는 역할이 다르므로 서로 바꿔 쓸 수 없습니다. Endpoint는 상대방의 주소와 포트를 지정하며, 터널 주소와 라우팅 범위는 터널을 통해 트래픽을 전달하는 방식을 결정합니다. 수동으로 입력하려면 전체 설정을 확보해야 하며 Endpoint만 복사해서는 안 됩니다.
HTTP / SOCKS5
해당 유형의 프록시 서비스에 연결할 때 사용합니다. 인증 정보가 필요한지는 서버 설정에 따라 다릅니다. 일반 HTTP 프록시와 SOCKS5 자체는 전체 연결 구간을 암호화하지 않습니다. HTTP 프록시에서 TLS를 사용하는지는 별도로 확인하세요. SOCKS5의 UDP 지원 여부도 서버와 네트워크에 달려 있으므로 TCP 연결이 된다고 UDP도 사용할 수 있는 것은 아닙니다.

지연 시간이 낮다는 이유만으로 특정 프로토콜이 더 빠르다고 단정하지 마세요. 짧은 연결 테스트, 지속적인 다운로드, 동영상 재생, UDP 앱은 각각 부하가 다릅니다. 서버 부하, 패킷 손실, 경로, 서버 측 속도 제한에 따라 결과도 달라집니다. 이 글에서는 테스트 조건을 무시한 속도 순위를 제시하지 않으며, 어떤 프로토콜도 모든 네트워크에 적합한 기본값으로 취급하지 않습니다.

Add Server 설정 방법: 4단계로 정보 확인하기

수동 추가는 필요한 설정값을 모두 보유한 경우에 적합합니다. 구독 링크만 있다면 Subscribe를 사용해 가져오세요. 구독 URL을 특정 프로토콜의 Address에 입력해서는 안 됩니다. 구독은 설정 정보를 가져오는 방법이며, 실제 연결 프로토콜은 VMess, Trojan 등 개별 항목에서 사용됩니다.

  1. 정보 확인

    서비스 제공업체에서 프로토콜 이름, 서버 주소, 포트, 인증 정보를 받으세요. 구독 링크를 받았다면 구독 방식으로 가져오고, 개별 연결 설정을 받았다면 수동으로 추가하세요.

  2. Type 선택

    Home → 오른쪽 상단의 '+' → Add Server → Type으로 이동해 제공된 정보에 적힌 프로토콜을 선택하세요. 구독을 추가하려면 Subscribe를 선택하고 본인의 구독 링크를 입력한 뒤 저장하세요. 포트 번호만 보고 Type을 추측하지 마세요.

  3. 항목별 입력

    정보를 보면서 Address, Port, 해당 프로토콜의 인증 정보를 입력한 다음 TLS, SNI, 전송 방식, Path 등의 추가 매개변수를 확인하세요. 포트가 8443이라면 8443을 입력하세요. 익숙하다는 이유로 443으로 바꾸지 마세요.

  4. 저장 및 확인

    저장한 뒤 Home으로 돌아가 해당 항목을 선택해 연결하세요. 처음 연결할 때는 시스템 안내에 따라 VPN 구성을 허용합니다. 먼저 연결이 설정되는지 확인한 뒤 실제로 접속하려는 웹 페이지를 열어 보세요. 한 번 측정한 지연 시간만으로 모든 기능이 정상이라고 판단해서는 안 됩니다.

구독을 업데이트하면 보통 서버에서 제공하는 설정을 다시 가져오므로 수동으로 수정한 값이 덮어써질 수 있습니다. 비교 테스트가 필요하다면 기존 항목을 보관하거나 테스트용 항목을 따로 저장하고, 수정한 항목을 기록하세요. 구독 가져오기와 이후 관리는 구독 매뉴얼에서 확인할 수 있습니다. 업데이트 문제는 Subscribe 업데이트 안내를 참고하세요.

프로토콜과 Global Routing: 연결 방식과 트래픽 분기는 다릅니다

프로토콜은 클라이언트가 선택한 서버에 연결하는 방식을 결정하고, Global Routing은 트래픽의 경로를 결정합니다. Trojan이나 Hysteria2 설정이 완벽해도 Direct 모드에서는 트래픽이 예상대로 선택한 프록시를 거치지 않습니다. 문제를 확인할 때는 먼저 Home에서 Global Routing을 확인한 다음 Config에서 현재 사용 중인 설정을 살펴보세요.

Config

추천

현재 설정의 규칙과 정책에 따라 트래픽을 처리합니다. 프록시 정책에 일치하는 요청만 해당 연결을 사용합니다. 직접 연결과 차단 방식도 설정에 따라 결정되므로, 규칙에 일치하지 않는 요청이 자동으로 직접 연결된다고 단정해서는 안 됩니다.

적합한 경우: 확인을 마친 규칙 설정을 일상적인 트래픽 분기에 사용하는 경우

Proxy

클라이언트가 처리하는 트래픽을 프록시 모드로 전달해 일반 트래픽 분기 규칙의 영향을 잠시 배제할 수 있습니다. 사용한 뒤에도 선택한 서버가 올바른지 확인해야 합니다.

적합한 경우: 서버 연결을 잠시 확인해 규칙 문제와 연결 문제를 구분하는 경우

Direct

클라이언트가 처리하는 트래픽을 직접 연결 모드로 전달합니다. 프록시 프로토콜의 작동 여부를 확인하는 용도로는 사용할 수 없습니다.

적합한 경우: 로컬 네트워크에서 직접 연결했을 때와 비교하는 경우

Scene을 사용한다면 현재 씬에 실제 적용되는 설정부터 확인하세요. Scene은 별도의 연결 프로토콜이 아닙니다. Settings → On Demand는 조건에 따라 연결을 시작하는 동작을 관리하며, 특정 항목의 프로토콜을 VMess에서 VLESS로 바꾸지 않습니다. 문제 해결을 시작하기 전에 관련 스위치 상태를 기록해 자동 연결 동작이 확인을 방해하지 않도록 하세요.

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은 앞선 규칙에 일치하지 않은 트래픽을 처리합니다. 예시의 192.0.2.0/24는 문서용 주소 대역입니다. 실제 설정은 위에서 아래 순서로 확인하며, 처음 일치하는 규칙이 적용되면 검사가 끝납니다. 유형별로 정리하려고 기존 규칙의 순서를 바꾸지 마세요.

자주 묻는 질문: 프로토콜을 올바르게 골랐는데도 연결되지 않는 이유

포트는 모두 443인데 Type을 바꾸면 왜 연결되지 않나요?

포트는 서비스가 연결을 기다리는 위치일 뿐 프로토콜을 나타내지 않습니다. Home에서 해당 항목의 편집 화면을 열고 서비스 정보에 맞게 Type을 되돌린 다음 인증 정보와 전송 매개변수를 확인하세요. Trojan, VMess, VLESS는 모두 443을 사용할 수 있지만 핸드셰이크와 인증 방식은 서로 다릅니다.

지연 시간은 측정되는데 웹 페이지가 계속 열리지 않습니다. 비밀번호를 다시 입력해야 하나요?

먼저 지연 시간 테스트가 어떤 방식으로 동작하는지 확인하세요. 일부 테스트는 네트워크 계층에서 연결할 수 있다는 점만 확인하며 실제 요청까지 검증하지 않습니다. 그런 다음 Home에서 Global Routing과 선택한 항목을 확인하고 DNS 및 규칙 일치 여부를 살펴보세요. 잠시 Proxy 모드로 비교한 뒤 원래 모드로 되돌리세요. 자세한 문제 해결 방법은 연결 문제 해결을 참고하세요.

Hysteria2가 Wi-Fi에서 시간 초과되지만 셀룰러 네트워크에서는 연결되나요?

같은 항목과 설정을 유지한 채 네트워크만 바꿔 다시 확인하세요. 차이가 반복해서 나타나면 기존 네트워크의 UDP 제한, 게이트웨이 정책, 네트워크 경로를 점검하고 서비스 제공업체에 서버 상태를 문의하세요. 포트, 비밀번호, 대역폭 매개변수를 한꺼번에 바꾸면 어떤 요인이 영향을 줬는지 알 수 없습니다.

구독에 있는 VLESS를 VMess로 바로 바꿀 수 있나요?

Type만 바꿔서는 안 됩니다. VLESS와 VMess는 각각 서버에 해당 프로토콜 설정이 있어야 합니다. UUID가 같아 보여도 호환된다는 뜻은 아닙니다. 먼저 구독을 업데이트하고 다른 프로토콜 설정이 필요하다면 서비스 제공업체에서 받으세요. 확인할 때마다 오류가 확인된 항목 하나만 조정해 원래 작동하던 설정을 망가뜨리지 않도록 하세요.

마지막으로 ‘정보가 완전한가 → Type이 일치하는가 → 인증 및 전송 설정이 맞는가 → 네트워크에 연결할 수 있는가 → 트래픽 분기와 DNS가 예상대로 동작하는가’ 순서로 확인하세요. 문제를 문의할 때는 네트워크 유형, 선택한 프로토콜, 오류가 연결 단계에서 발생했는지 웹 페이지 접속 단계에서 발생했는지를 기록하고 민감한 정보를 삭제하세요. 이런 정보가 ‘프로토콜이 불안정하다’는 설명보다 원인을 찾는 데 도움이 됩니다.

App Store 정품 확인 →