Shadowrocket을 처음 설정할 때는 먼저 본인이 보유한 연결 정보를 준비하고, Home에서 서버를 추가해 선택한 다음 Global Routing을 확인합니다. 이후 연결 스위치를 켜고 시스템에서 VPN 구성을 허용하면 됩니다. iPhone과 iPad를 처음 사용하는 분을 위해 연결 상태, 라우팅 방식, 연결 테스트, 서버 목록의 차이를 설명하고, 연결 실패와 자동 재연결 시 확인할 순서도 정리했습니다.
첫 연결 전 알아둘 점: 클라이언트, 서버, 구성 파일 구분하기
Shadowrocket은 Apple 플랫폼 전용 유료 앱이며 App Store에서만 받을 수 있습니다. 구매 전 개발자 Shadow Launch Technology Limited와 앱 ID 932747118을 확인하세요. 가격과 시스템 요구 사항은 App Store 페이지를 기준으로 합니다. 이 글은 주로 iPhone과 iPad의 사용 절차를 다루며, 화면에 표시되는 문구는 기기에 따라 다를 수 있습니다.
클라이언트 앱을 구매해도 회선 이용권이 포함되는 것은 아닙니다. 구매 후 사용할 수 있는 서버가 자동으로 생성되지 않습니다. 아래 절차는 이미 이용 중인 서비스나 직접 관리하는 서버의 연결 정보를 보유한 경우를 전제로 합니다. 이 사이트는 노드나 구독 서비스를 제공·판매·추천하지 않습니다. 해당 정보가 없다면 먼저 화면 구성을 살펴보고, 연결 스위치를 반복해서 켜지 않아도 됩니다.
Home의 서버 항목에는 연결 주소, 포트, 인증 정보 등이 포함됩니다. Config의 구성 파일은 규칙과 DNS 등의 동작을 정의할 수 있습니다. 구독을 가져온 뒤 SERVER 목록에 항목이 늘어났다고 해서 원하는 분할 라우팅 규칙을 확보하거나 활성화한 것은 아닙니다. 반대로 .conf 파일만 가져와도 파일에서 참조하는 프록시 정책에 사용할 서버가 있다는 보장은 없습니다.
첫 설정 절차: 서버 항목을 추가한 뒤 VPN 구성 허용하기
시스템 권한 요청은 보통 앱을 처음 여는 순간이 아니라, 연결을 처음 시도해 VPN 구성을 만들어야 할 때 표시됩니다. 다음 순서대로 진행하면 정보가 준비되지 않은 문제와 시스템 권한이 승인되지 않은 문제를 구분할 수 있습니다.
-
앱 확인
App Store에서 Shadowrocket을 받은 뒤 실행하고 Home으로 이동합니다. 먼저 이용 중인 서비스가 유효한지 확인하고, 서비스 제공자가 안내한 연결 정보나 구독 URL을 준비하세요.
-
항목 추가
구독을 사용하는 경우 Home에서 오른쪽 상단의 “+” → Type → Subscribe로 이동한 뒤 본인의 구독 URL을 입력하고 저장합니다. 구독 주소는 민감한 정보이므로 실제 token이 포함된 화면이나 QR 코드를 공개하지 마세요.
-
서버 선택
Home으로 돌아와 구독 항목이 불러와질 때까지 기다린 뒤 SERVER 목록에서 사용할 항목을 선택합니다. 직접 추가하려면 “+”에서 실제 프로토콜을 선택하고 주소, 포트, 인증 정보를 각각 입력하세요. 구독 URL을 단일 서버 주소로 입력하면 안 됩니다.
-
라우팅 확인
Home → Global Routing으로 이동해 현재 선택된 방식을 확인합니다. 사용할 구성 파일이 있다면 Config를 선택하세요. 규칙의 영향을 임시로 확인해야 한다면 Proxy를 사용할 수 있으며, 점검을 마친 뒤 기존 라우팅 방식으로 되돌리세요.
-
구성 허용
Home 상단의 연결 스위치를 켭니다. 시스템에서 VPN 구성 추가를 요청하면 허용을 선택하고 안내에 따라 기기 인증을 완료하세요. 앱으로 돌아온 뒤 연결 상태를 확인하고, 접근 권한이 있는 대상을 테스트합니다.
Home 화면 항목별 기능: 스위치, 목록, 테스트
Not Connected는 상태 표시이지 오류 원인이 아닙니다. 현재 연결이 설정되지 않았다는 뜻일 뿐, 이 문구만으로 구독 오류나 서버 장애, 시스템 권한 문제를 판단할 수는 없습니다. 상단 스위치는 연결을 켜고 끄며, Global Routing은 요청 처리 방식을 정합니다. SERVER 목록에서는 연결 항목을 선택하고 Connectivity Test에서는 연결을 테스트합니다. 네 항목의 역할을 각각 구분해 확인하세요.
연결 및 라우팅
- Not Connected
- 현재 연결되지 않은 상태입니다. 먼저 스위치와 권한을 확인하세요.
- 상단 스위치
- 연결을 시작하거나 끕니다. 구독을 가져오는 기능은 아닙니다.
- Global Routing
- Proxy, Direct, Config, Scene 등의 라우팅 방식을 선택합니다.
스위치는 연결 여부를, 라우팅 방식은 연결 후 요청 처리 방법을 결정합니다.
목록 및 테스트
- SERVER
- 서버 항목이나 구독 그룹을 표시합니다. 사용할 항목을 선택하세요.
- Connectivity Test
- 현재 테스트 설정에 따라 연결을 확인합니다. 결과는 테스트 대상과 함께 해석해야 합니다.
- Config
- 구성 파일을 관리합니다. Config 라우팅을 사용할 때는 현재 활성화된 구성을 확인하세요.
목록에 항목이 있는지, 테스트 결과가 나오는지, 실제 요청이 성공하는지는 서로 다른 확인 사항입니다.
테스트에서 지연 시간이 표시된다는 것은 해당 시점에 테스트 방식으로 응답을 받았다는 뜻입니다. 테스트 대상, 제한 시간, 네트워크 환경에 따라 결과가 달라질 수 있으므로 낮은 수치만 보고 모든 사이트의 속도가 더 빠르다고 판단하면 안 됩니다. 테스트에는 응답이 있지만 특정 페이지가 열리지 않는다면 해당 페이지에 적용되는 규칙, DNS, 대상 사이트를 추가로 확인하세요. 지연 시간이 가장 짧은 항목만 반복해서 선택하지 마세요.
Global Routing: 네 가지 방식 선택하기
처음 설정할 때는 무엇을 확인하려는지 먼저 정하세요. 서버가 요청을 프록시할 수 있는지 확인하는 것과 구성 파일의 분할 라우팅 규칙을 확인하는 것은 목적이 다릅니다. 아래에서 ‘권장’이라고 한 내용은 사용할 구성 파일을 준비하고 확인한 뒤 일상적으로 사용하는 경우에 한정되며, 특정 회선이나 서비스를 추천하는 뜻이 아닙니다.
Config
권장현재 활성화된 구성의 규칙에 따라 처리 방식을 결정합니다. 규칙에서 DIRECT, PROXY 또는 다른 정의된 정책을 지정할 수 있습니다. 어떤 규칙에도 일치하지 않는 요청은 구성 파일 끝부분의 FINAL 설정 등을 확인하세요.
적합한 경우: 사용할 구성 파일이 있고 도메인이나 IP 등의 조건에 따라 요청을 분리해야 할 때
Proxy
Config의 일반적인 분할 라우팅 규칙에 따라 요청별 경로를 정하는 대신, 앱이 처리하는 요청을 프록시 방식으로 보냅니다. 유효한 서버 정보가 필요하며 이 방식으로 바꿔도 인증이나 서버 측 문제는 해결되지 않습니다.
적합한 경우: 선택한 서버를 임시로 점검해 분할 라우팅 규칙의 영향을 좁혀 확인할 때
Direct
요청을 직접 연결합니다. 이 상태에서 페이지가 열린다고 해서 프록시 서버를 사용할 수 있다는 뜻은 아닙니다. Global Routing에서 Direct를 선택하는 것과 상단 연결 스위치를 끄는 것은 서로 다른 동작입니다.
적합한 경우: 현재 네트워크에서 같은 대상에 직접 연결할 수 있는지 비교할 때
Scene
사용 시나리오에 맞춰 라우팅을 처리합니다. 실제 동작은 설정된 시나리오 조건과 해당 조건에 연결된 동작에 따라 달라집니다. 처음 설정할 때 시나리오 설정을 확인하지 않았다면 이름만 보고 어떤 경로가 선택될지 판단하지 마세요.
적합한 경우: 시나리오가 설정되어 있고 트리거 조건과 라우팅 동작을 하나씩 확인할 수 있을 때
아래는 Config 규칙을 이해하기 위한 최소 예시입니다. 서버 정보는 포함되어 있지 않으며 첫 연결에 필요한 전체 구성 파일도 아닙니다. DOMAIN-SUFFIX는 도메인 접미사를 기준으로 일치하며, 규칙은 순서대로 확인하고 앞선 규칙에 일치하지 않는 요청은 FINAL이 처리합니다.
[Rule]
DOMAIN-SUFFIX,example.com,PROXY
FINAL,DIRECT
이 예시에서는 example.com과 하위 도메인에 PROXY를 적용하고, 그 외에 일치하는 규칙이 없는 요청에는 DIRECT를 적용합니다. 따라서 “앱은 연결됐지만 특정 요청은 직접 연결됨”이라는 상황은 구성에 따라 정상일 수 있습니다. GEOIP나 IP-CIDR를 사용할 때는 요청에 대상 IP가 이미 있는지, 도메인 해석이 규칙 일치에 관여하는지도 고려해야 합니다. 첫 연결을 위해 규칙 종류를 모두 추가할 필요는 없습니다.
SERVER와 구독 확인: 추가, 갱신, 선택 순서
구독은 연결 항목을 한 번에 가져오는 방법이지, 연결 상태 자체는 아닙니다. 예시 주소 https://example.com/sub?token=xxxx는 URL 형식을 설명하기 위한 것입니다. token은 명백한 예시 값이며 실제로 사용할 수 있는 서비스가 아닙니다. 본인이 이용 중인 서비스의 실제 주소를 입력하고 기존 쿼리 매개변수를 그대로 유지하세요.
- 추가한 뒤 내용 확인: Home으로 돌아와 구독 그룹 아래에 항목이 표시되는지 확인합니다. 그룹 이름만 있고 서버 항목이 없다면 URL이 완전한지, 서비스가 유효한지, 현재 네트워크에서 구독 내용을 가져올 수 있는지 먼저 확인하세요.
- 갱신 후 다시 확인: Home 화면을 아래로 당겨 구독을 새로 고친 뒤 항목이 실제로 바뀌었는지, 기존에 선택한 항목이 여전히 있는지 확인합니다. 구독을 갱신했다고 해서 새 서버로 자동 전환되는 것은 아닙니다.
- 연결 전 선택 확인: 사용할 SERVER 항목을 직접 선택한 뒤 연결 스위치를 켭니다. 목록의 정렬 순서나 방금 테스트한 항목만으로 해당 항목이 선택됐다고 판단하지 마세요.
- 서버 정보를 직접 입력할 때 확인할 항목: Type은 실제 서비스와 일치해야 합니다. 예를 들어 Trojan의 비밀번호와 Shadowsocks의 암호화 방식 및 비밀번호는 서로 다른 프로토콜 항목이므로 이름만 바꿔 서로 대체할 수 없습니다. 포트도 서비스 제공자가 안내한 실제 값이어야 합니다.
가져오기에 성공했는데도 연결되지 않는다면 ‘구독 갱신’과 ‘연결 테스트’를 나눠 확인하세요. 먼저 항목을 가져올 수 있는지 확인한 뒤 선택한 항목으로 연결되는지 테스트합니다. 구성 파일 갱신도 Config에서 별도로 확인해야 합니다. 구독 갱신에 성공했다고 해서 규칙 파일까지 갱신된 것은 아닙니다.
Settings → On Demand: 먼저 수동 연결을 확인한 뒤 자동 연결 설정하기
On Demand는 설정한 조건에 따라 VPN 연결 동작을 실행하는 기능입니다. 지연 시간 테스트 도구나 서버 정보를 수정하는 버튼이 아닙니다. 처음에는 재현 가능한 수동 연결을 한 번 완료한 다음 Settings → On Demand에서 조건과 동작을 확인하는 편이 좋습니다. 그렇지 않으면 자동 실행이 연결 실패 원인을 파악하는 데 방해가 될 수 있습니다.
두 단계 확인: 수동 연결과 On Demand
첫 수동 연결
- Home에서 사용할 서버 항목을 직접 선택합니다.
- 한 번에 여러 변수를 바꾸지 않도록 Global Routing을 고정합니다.
- 연결한 뒤 같은 대상에 접속하고, 수동으로 연결을 끊어 결과를 비교합니다.
이후 자동 연결
- Settings → On Demand로 이동해 설정된 조건을 확인합니다.
- Wi-Fi 등 네트워크 조건별 연결 동작을 하나씩 확인합니다.
- 네트워크를 전환한 뒤 예상대로 실행되는지 확인하고, 스위치의 표시만 보지 마세요.
먼저 수동 연결이 되는지 확인한 뒤 자동 실행을 테스트하세요. Global Routing은 라우팅 방식을 정하고, On Demand는 조건에 따라 언제 연결할지 정합니다.
수동으로 연결을 끊은 뒤 다시 연결된다면 먼저 On Demand와 시스템 VPN 구성의 주문형 연결 상태를 확인해 자동 실행 조건이 있는지 살펴보세요. 모든 항목을 바로 삭제하지 마세요. 자동 연결을 사용 중지하려면 앱 설정과 시스템의 해당 VPN 구성 상태를 모두 확인한 뒤, 같은 네트워크 전환을 다시 수행해 동작을 검증하세요.
연결 후 확인 방법: 증상별 점검 순서
연결 상태가 바뀌는 것은 첫 단계입니다. 그다음에는 실제 요청이 예상대로 처리되는지 확인해야 합니다. 아래는 문제를 점검하는 순서로, 이 사이트에서 직접 테스트한 결과가 아니며 특정 네트워크에서 같은 현상이 반드시 발생한다는 뜻도 아닙니다. 한 번에 설정 하나만 바꾸고 원래 값을 기록해 두면 되돌리기 쉽습니다.
- 스위치가 켜진 상태로 유지되지 않음: 시스템에서 VPN 구성 추가를 허용했는지, 서버 항목이 선택되어 있는지, 앱에 오류 메시지가 표시되는지 확인하세요. 권한 요청이 표시되지 않아도 반드시 문제가 있는 것은 아닙니다. 이전에 구성이 만들어졌을 수도 있습니다.
- 구독 목록이 비어 있음: 먼저 URL, 구독 유효성, 갱신 실패를 확인하세요. 사용할 항목이 목록에 없다면 Global Routing을 바꿔도 서버가 생성되지 않습니다.
- 연결됨으로 표시되지만 대상에 접속할 수 없음: 현재 Global Routing, Config에서 활성화된 구성, 대상에 예상한 정책이 적용되는지 확인하세요. 같은 대상을 Proxy와 Direct에서 각각 확인한 뒤 테스트를 마치면 원래 설정으로 되돌립니다.
- 테스트에는 응답이 있지만 웹페이지가 열리지 않음: 테스트 대상과 웹페이지가 서로 다른 대상인지 확인한 뒤 도메인 해석, 대상의 접근 제한, 선택한 항목의 실제 연결 상태를 확인하세요.
- Wi-Fi를 바꾼 뒤 동작이 달라짐: 먼저 새 네트워크에서 대상에 접속할 수 있는지 확인한 다음 Scene 및 On Demand 조건을 살펴보세요. 라우팅 변경과 자동 연결 동작 변화를 혼동하지 않도록 주의하세요.