Shadowrocket을 처음 사용할 때는 기존 서버 구성 준비, 시스템의 VPN 구성 추가 허용, 실제 연결 확인의 세 단계를 구분해야 합니다. Home 화면을 처음 보는 사용자를 위해 권한 요청부터 화면 구성, 라우팅 방식, 연결 확인 순서까지 안내합니다. 이 글을 읽고 나면 서버를 선택하지 않은 상태인지, 연결 권한이 허용되지 않은 상태인지, 연결 후 접속 결과를 더 확인해야 하는지 판단할 수 있습니다.
시작 전 확인: 앱 구매와 연결 구성은 별개
Shadowrocket은 Apple 플랫폼에서 제공되는 유료 상용 앱으로, 주로 iPhone과 iPad에서 사용합니다. 앱은 App Store에서만 받을 수 있습니다. App Store 페이지에서 앱 이름이 Shadowrocket인지, 개발자가 Shadow Launch Technology Limited인지 확인하세요. 시스템 요구 사항은 App Store 페이지의 안내를 따릅니다.
앱 구매와 서버 이용 요금제는 별개입니다. 앱을 구매해도 사용할 수 있는 서버가 자동으로 제공되지는 않습니다. Home의 SERVER 목록에는 이미 보유한 서버 또는 구독 구성을 불러와야 합니다. 이 글에서는 자체 서비스 구성을 보유하고 있다는 전제하에 앱에서 가져오기, 선택하기, 확인하기를 설명합니다.
SERVER 목록이 비어 있다면 연결 스위치를 반복해서 누르지 말고 먼저 구성을 준비하세요. 구독 URL, 서버 주소, 포트, 인증 정보와 전송 매개변수는 보유한 서비스 안내를 기준으로 입력해야 합니다. 웹페이지 주소나 임의의 포트로 서버 정보를 대신할 수 없습니다.
VPN 구성 추가: 시스템 권한의 용도 확인
‘VPN 구성 추가’는 시스템 권한 요청이며, 구독을 가져오라는 안내가 아닙니다. Shadowrocket은 시스템의 네트워크 확장 기능을 사용해 연결을 설정합니다. 따라서 처음 연결을 시작할 때 해당 구성이 시스템에 저장되어 있지 않으면 VPN 구성을 추가하라는 요청이 표시됩니다. 앱을 열자마자 바로 요청이 나타나지 않을 수도 있으며, 즉시 표시되지 않는다고 해서 앱에 문제가 있는 것은 아닙니다.
-
구성 준비
Home에서 SERVER 목록에 알아볼 수 있는 서버가 있는지 확인합니다. 기존 구독을 사용한다면 Home 오른쪽 위의 ‘+’를 눌러 Add Server로 이동하고, Type을 Subscribe로 설정한 뒤 전체 구독 URL을 입력해 저장하세요. 내용이 불러와질 때까지 기다린 다음 목록을 확인합니다.
-
서버 선택
Home으로 돌아와 SERVER 목록에서 사용할 서버 왼쪽의 선택 표시를 누릅니다. 서버 상세 정보를 여는 것과 현재 서버로 선택하는 것은 별개의 동작입니다. 선택 표시가 원하는 항목에 있는지 확인하세요.
-
스위치 켜기
Home 상단의 연결 스위치를 누릅니다. 시스템에서 VPN 구성 추가를 요청하면 요청한 앱이 Shadowrocket인지 확인하고 허용을 선택한 뒤, 시스템 안내에 따라 기기 인증을 완료하세요.
-
돌아가서 확인
Home으로 돌아와 연결 상태를 확인한 다음 Connectivity Test를 실행하고 실제로 사용하려는 웹페이지에도 접속해 보세요. 시스템 권한을 허용했다는 것은 구성을 설정할 수 있다는 뜻일 뿐, 서버 인증이나 원하는 사이트 접속까지 성공했다는 의미는 아닙니다.
Home 화면: 상태, 정책, 테스트, 목록
Home은 평소 연결을 조작하는 화면입니다. 상단 상태로 연결이 시작되었는지 확인하고, Global Routing에서 연결 정책을 선택하며, Connectivity Test로 테스트를 실행할 수 있습니다. SERVER에는 선택 가능한 서버 항목이 표시됩니다. 각 영역은 서로 연관되어 있지만, 한 영역의 결과만으로 나머지 항목까지 확인했다고 볼 수는 없습니다.
| 영역 | 주요 역할 | 처음 사용할 때 확인할 점 |
|---|---|---|
Not Connected 상태 및 연결 스위치 |
연결되지 않은 상태를 표시하고 연결을 시작하거나 중지하는 기능을 제공합니다. | 스위치가 켜진 상태를 유지하는지, 연결 후 다시 연결되지 않은 상태로 바뀌는지 확인합니다. |
Global Routing |
Config, Proxy, Direct, Scene 등의 라우팅 방식을 선택합니다. | 현재 선택이 이번 확인 목적에 맞는지 확인합니다. |
Connectivity Test |
연결 테스트를 실행해 서버 또는 테스트 대상의 응답을 확인할 수 있습니다. | 테스트가 실제로 시작되었는지, 결과가 비어 있거나 시간 초과되지 않았는지 확인합니다. |
SERVER |
추가된 서버 목록을 표시하고 서버 선택 및 상세 정보 확인 기능을 제공합니다. | 목록에 항목이 있는지, 현재 선택된 서버가 예상한 항목인지 확인합니다. |
Not Connected가 표시되면 먼저 ‘목록에 서버가 있는지, 서버가 선택되었는지, 권한이 허용되었는지’ 순서로 확인하세요. 스위치를 켜도 잠시 후 바로 꺼진다면 당시 표시된 안내를 기록하고 원인을 살펴보세요. 목록에 서버 이름이 있다는 사실만으로 인증 정보와 전송 매개변수가 올바른지는 알 수 없습니다.
Global Routing: 네 가지 라우팅 방식 구분
Global Routing은 서버 목록이 아니며, 누락된 서비스 정보를 대신 채워 주지도 않습니다. 처음 문제를 확인할 때는 어떤 방식을 사용해 테스트할지 정하고, 한 번에 한 가지 변수만 바꾸는 것이 좋습니다. 아래의 ‘권장’은 올바른 구성 파일을 이미 보유한 경우를 전제로 하며, 어떤 구성이든 모든 네트워크에서 사용할 수 있다는 뜻은 아닙니다.
Config
권장현재 적용 중인 구성의 규칙에 따라 연결 정책을 결정합니다. 규칙은 프록시, 직접 연결 또는 그 밖에 정의된 정책을 지정할 수 있습니다. Config를 ‘모든 연결이 현재 서버를 사용한다’는 뜻으로 이해하면 안 됩니다.
적합한 경우: 구성 내용을 확인했고 정해 둔 규칙에 따라 평소처럼 사용하려는 경우
Proxy
앱이 처리하는 연결을 프록시로 라우팅합니다. 규칙에 따른 분기 변수를 일시적으로 줄이는 데 적합합니다. 사용할 수 있는 서버 구성이 있어야 하며, Proxy를 선택해도 잘못된 주소, 포트 또는 인증 정보가 수정되는 것은 아닙니다.
적합한 경우: 프록시 연결을 잠깐 테스트해 서버 문제와 규칙 문제를 구분하려는 경우
Direct
직접 연결로 라우팅합니다. 이 상태에서 일반 웹페이지가 열린다는 것은 해당 페이지가 현재 직접 연결 네트워크에서 접속된다는 뜻일 뿐, 선택한 서버가 정상 작동한다는 근거는 아닙니다.
적합한 경우: 현재 네트워크의 직접 연결 상태를 비교하려는 경우
Scene
구성된 시나리오 조건에 따라 해당 라우팅 동작을 선택합니다. Scene을 다른 서버나 고정된 프록시 방식으로 간주하지 말고, 시나리오 조건과 각 조건에 지정된 동작을 먼저 확인하세요.
적합한 경우: 시나리오 구성을 이해하고 네트워크 조건에 따라 동작을 전환하려는 경우
Proxy에서는 원하는 사이트에 접속되지만 Config에서는 실패한다면 VPN 구성을 바로 다시 만들기보다 현재 구성과 일치하는 규칙을 확인하세요. Config의 규칙은 순서대로 적용됩니다. 앞쪽 규칙에 일치하면 뒤쪽 규칙까지 적용되지 않을 수 있습니다.
SERVER: 항목 선택과 상세 정보 확인은 별개
SERVER 목록의 이름은 항목을 식별하는 단서일 뿐, 사용 가능하다는 증거는 아닙니다. 직접 추가한 항목과 구독에서 불러온 항목 모두 서버 측 설정과 일치하는 프로토콜 및 매개변수를 사용해야 합니다. 처음 연결할 때는 먼저 항목 하나를 지정해 확인한 다음, 여러 그룹이나 자동 선택 설정을 살펴보세요.
- 현재 선택 확인: 서버 왼쪽의 선택 표시를 확인하세요. 상세 정보 화면을 열거나 항목을 둘러보는 것만으로는 해당 서버가 현재 선택된 것이 아닙니다.
- 기본 매개변수 확인: 주소와 포트는 서로 맞아야 하며, 포트는 보유한 서비스 안내를 따라야 합니다. 프로토콜에서 TLS를 사용한다는 이유만으로 포트를
443으로 바꾸지 마세요. - 프로토콜 항목 확인: VMess와 VLESS의 UUID는 Trojan의 비밀번호를 대신할 수 없습니다. TLS, 전송 방식, 관련 호스트 이름도 서버 측 설정과 일치해야 합니다.
- 구독 업데이트 구분: 구독을 업데이트하면 서버 구성을 다시 불러오며, VPN에 다시 연결되는 것은 아닙니다. 업데이트 후에는 목록 내용과 현재 선택을 다시 확인하세요.
목록이 비어 있다면 구독 URL이 온전한지, 유효한 구성을 반환하는지, 기존 서비스가 여전히 유효한지 먼저 확인하세요. 구독 URL에 인증 토큰이 포함될 수 있으므로 문제를 확인할 때는 오류 유형만 기록하고 전체 URL을 공개 게시판에 올리지 마세요. Global Routing을 반복해서 전환해도 빈 목록은 해결되지 않습니다. 두 설정은 서로 다른 문제를 다룹니다.
Connectivity Test: 테스트 결과와 실제 접속 결과 비교
Connectivity Test는 테스트 조건에서 확인된 응답 정보를 제공할 뿐, 모든 앱이나 웹사이트에 접속할 수 있다는 뜻은 아닙니다. 테스트 방식과 대상에 따라 결과가 달라질 수 있으며, 한 번 측정한 응답 시간은 다운로드 속도와 같지 않습니다. 처음 확인할 때는 같은 네트워크, 같은 서버, 같은 라우팅 방식으로 반복해서 결과를 살펴보세요.
확인 방법: 연결 테스트와 실제 요청 결과를 따로 기록
Connectivity Test
- 누른 뒤 테스트가 시작되었는지 확인합니다. 결과가 아직 나오지 않았다고 실패로 판단하지 마세요.
- 수치가 표시되는지, 시간 초과가 발생하는지, 당시 어떤 테스트 방식을 사용했는지 기록합니다.
- Wi-Fi와 셀룰러 네트워크를 바꿔 다시 테스트하고, 서로 다른 네트워크의 결과를 섞지 마세요.
실제 웹페이지 접속
- Home의 연결 스위치가 계속 켜져 있는지 확인합니다.
- VPN 상태만 확인하지 말고 실제로 접속하려는 페이지를 엽니다.
- 특정 대상 하나만 접속되지 않으면 해당 대상의 DNS 확인, 규칙, 서비스 상태를 살펴봅니다.
정리: 테스트 응답, 연결 유지, 원하는 대상에 대한 접속 결과를 함께 확인해야 첫 연결 검증을 마칠 수 있습니다.
결과가 비어 있다면 이번 테스트가 끝날 때까지 기다리고, 목록에 테스트할 서버가 실제로 있는지 확인하세요. 시간 초과가 발생하면 현재 네트워크와 서버 정보를 점검합니다. 테스트는 성공했지만 웹페이지가 열리지 않는다면 DNS, 규칙 일치 여부, TLS 매개변수, 대상 사이트 자체의 문제를 구분해 확인해야 합니다. 시간 초과 한 번만으로 시스템 권한이 사라졌다고 판단하지 마세요.
Config 및 Settings: 첫 연결 후 조정
Home에서는 평소 서버 선택과 연결을 관리하고, Config에서는 구성 파일을 관리하며, Settings에서는 앱 설정을 관리합니다. 서버 구독과 구성 파일은 서로 다른 항목입니다. 구독은 주로 서버 항목을 제공하고, 구성 파일에는 공통 설정, 규칙, 정책이 포함될 수 있습니다. Global Routing에서 Config를 선택했다면 실제로 적용 중인 구성 파일이 무엇인지 확인하세요.
- Config: 현재 구성에서 규칙 순서와 정책 이름을 확인합니다.
DOMAIN-SUFFIX는 도메인 접미사로 일치 여부를 판단하고,IP-CIDR은 IP 대역으로,GEOIP는 IP의 지리적 위치로 일치 여부를 판단합니다.FINAL은 앞선 규칙에 일치하지 않을 때 최종 처리를 지정합니다. - Settings → On Demand: 조건에 따라 연결을 시작하도록 설정합니다. 먼저 수동 연결을 확인한 다음 자동 연결을 설정하세요. 그래야 아직 해결하지 못한 연결 문제와 자동 연결 동작이 겹치지 않습니다.
- 구성 조정: 한 번에 한 종류의 설정만 바꾸고, 복구할 수 있도록 기존 구성을 보관하세요. 먼저 서버가 정상적으로 작동하는지 확인한 다음 라우팅이나 DNS를 조정하면 어떤 변경이 결과에 영향을 주었는지 파악하기 쉽습니다.
Config에서 규칙을 읽을 때는 일치 조건과 마지막에 지정된 정책을 함께 확인해야 합니다. 예를 들어 아래 구문은 예시 도메인 접미사를 PROXY로 보내고 나머지는 DIRECT로 처리합니다. 문법을 보여 주기 위한 예시일 뿐 완전한 구성은 아니며, 보유한 서비스 매개변수를 대신하지 않습니다.
[Rule]
DOMAIN-SUFFIX,example.com,PROXY
FINAL,DIRECT
처음 사용을 마치는 기준은 모든 설정을 켜는 것이 아니라, 현재 선택한 서버와 라우팅 방식, 확인 결과를 설명할 수 있는지입니다. 수동 연결이 아직 안정적이지 않다면 On Demand 설정은 그대로 두세요. 자동 연결이 필요할 때 조건과 예상 동작을 따로 확인하면 됩니다.