이 글은 Shadowrocket을 막 설치한 iPhone 및 iPad 사용자를 위한 안내입니다. 첫 연결 과정을 따라가며 시스템 VPN 승인, 기존 구성 가져오기, Home 상태 확인과 기본 테스트 방법을 설명합니다. ‘구성 추가 허용’, ‘터널 연결됨’, ‘웹사이트 접속 가능’은 서로 다른 상태임을 이해하고, 문제가 생겼을 때 확인할 항목을 파악할 수 있습니다.
첫 연결 전: 앱, 연결 정보, 구성 파일 구분하기
Shadowrocket은 App Store에서 일회성으로 구매하는 클로즈드 소스 상용 앱입니다. 클라이언트 구매에는 연결 서비스가 포함되지 않습니다. 아래 안내는 사용자가 이미 이용 중인 서비스 제공업체와 구독 또는 사용할 수 있는 연결 정보를 보유하고 있다는 전제에서 작성했습니다. 이 사이트는 노드, 구독 또는 연결 서비스를 제공·판매·추천하지 않습니다.
앱을 받을 때 개발자가 Shadow Launch Technology Limited인지, 앱 ID가 932747118인지 확인하세요. 이 글은 주로 iPhone과 iPad 사용자를 대상으로 합니다. Mac, Apple TV, Apple Vision의 호환성 및 시스템 요구 사항은 App Store 페이지를 기준으로 확인하세요. 앱을 받을 수 있는 유일한 경로는 App Store입니다. 자세한 확인 방법은 정품 확인 페이지를 참고하세요.
Home에서는 연결 상태를 확인하고 서버 항목을 선택하며 테스트를 실행합니다. Config에서는 구성 파일을 관리합니다. 규칙에 따른 트래픽 분기는 현재 사용 중인 구성을 기준으로 이해해야 합니다. Settings에서는 앱 설정을 조정합니다. 예를 들어 Settings → On Demand에서 관련 설정을 관리할 수 있습니다. Home의 서버 항목과 Config의 규칙 구성은 서로 다른 항목입니다.
VPN 구성 권한: 시스템 연결 구성 추가 허용
시스템에서 VPN 구성 추가를 허용하라는 메시지는 보통 처음 연결을 켜려고 할 때 표시되며, 앱을 열자마자 반드시 나타나는 것은 아닙니다. 허용을 누른 뒤 기기 암호나 기기에서 지원하는 인증 방식으로 확인해야 할 수 있습니다. 이 단계에서는 Shadowrocket이 네트워크 트래픽을 처리할 시스템 VPN 구성을 만들도록 허용합니다.
승인되었다는 것은 시스템에서 해당 구성을 만들 수 있다는 뜻일 뿐, 원격 연결 정보가 올바르거나 웹사이트에 접속할 수 있다는 의미는 아닙니다. 실제 트래픽 처리 방식은 Global Routing, 선택한 서버, 현재 규칙 및 관련 네트워크 설정에 따라 달라집니다.
-
연결 정보 준비하기
본인의 구독 URL 또는 전체 연결 정보를 보유하고 있는지 확인하세요. Home → SERVER가 비어 있다면 먼저 정보를 가져온 다음 연결을 시작하세요.
-
기존 구독 가져오기
Home → 오른쪽 위 ‘+’ → Type → Subscribe로 이동해 본인의 구독 URL을 입력하고 저장하세요. 내용이 로드되면 SERVER에 예상한 항목이 표시되는지 확인합니다.
-
선택한 항목 확인하기
Home → SERVER에서 사용할 항목을 선택하세요. 목록에 항목이 있다는 사실만으로 구성이 완전하다고 판단하지 말고, 항목 이름과 연결 정보의 출처를 확인하세요.
-
연결 켜고 승인하기
Home 상단의 연결 스위치를 조작하세요. 시스템에서 VPN 구성 추가를 요청하면 허용을 선택하고, 시스템에서 요구하는 인증을 완료합니다.
-
돌아가서 상태 확인하기
Home으로 돌아와 Not Connected가 Connected로 바뀌었는지 확인하세요. 이어서 Connectivity Test와 실제 웹사이트 접속을 각각 테스트하고 결과를 따로 기록합니다.
앞서 승인을 취소했다면 Home으로 돌아가 연결을 다시 켜고 시스템 안내를 처리하세요. 학교나 조직에서 관리하는 기기라면 기기 정책으로 VPN 구성이 제한될 수 있습니다. 서버 매개변수를 반복해서 바꾸기 전에 기기 관리자에게 확인하세요.
Home 상태 스위치와 SERVER: 연결 제어와 대상 선택
Not Connected는 현재 앱 터널이 연결되지 않았다는 뜻입니다. Connected로 바뀌더라도 대상 웹사이트에 접속할 수 있는지는 별도로 확인해야 합니다. 시스템 VPN 연결 상태와 특정 웹사이트의 HTTP 응답은 서로 다른 검사이므로, 한쪽 결과로 다른 쪽을 대신 판단할 수 없습니다.
SERVER에는 가져오거나 직접 추가한 서버 항목이 표시됩니다. 항목을 선택하면 프록시 전달이 필요한 경우 사용할 대상이 정해지지만, 모든 트래픽이 반드시 해당 서버를 거치는 것은 아닙니다. 실제 사용 여부는 Global Routing과 구성 규칙에도 영향을 받습니다.
확인 순서: 연결 상태와 서버 정보를 따로 점검하기
Home 상단 상태
- Not Connected: 먼저 스위치와 시스템 승인을 확인합니다.
- Connected: 라우팅 모드와 실제 접속 상태를 확인합니다.
- 연결 직후 끊김: 표시된 안내를 기록하고 다른 VPN 연결이 간섭하는지 확인합니다.
Home → SERVER
- 목록이 비어 있음: 기존 구독이 제대로 로드되었는지 확인합니다.
- 항목이 있음: 실제로 선택된 항목을 확인합니다.
- 매개변수 이상: 원본 정보를 기준으로 주소, 포트, 프로토콜, 인증 항목을 확인합니다.
먼저 터널이 연결되었는지 확인한 다음, 선택한 대상과 규칙이 예상대로인지 점검하세요. 한 번에 하나의 변수만 변경합니다.
항목을 직접 추가할 때 Type은 보유한 정보에 명시된 프로토콜과 일치해야 합니다. Shadowsocks, VMess, VLESS, Trojan, Hysteria2, WireGuard는 인증 및 전송 항목을 서로 바꿔 쓸 수 없습니다. 예를 들어 정보에 포트 443이 적혀 있다면 그대로 입력하세요. 단, 443이 모든 프로토콜이나 서비스의 고정 포트인 것은 아니며 포트만으로 프로토콜을 판단할 수도 없습니다.
Global Routing: 먼저 트래픽 처리 모드 확인하기
Home → Global Routing으로 이동해 현재 선택된 항목을 확인한 다음 테스트 결과를 해석하세요. 아래 비교는 Shadowrocket의 작동 모드 차이만 설명합니다. Config를 사용하려면 구성이 이미 있고 내용도 확인했다는 전제가 필요합니다. 아무 구성이나 바로 사용해도 된다는 뜻은 아닙니다.
Config
권장현재 구성에 설정된 규칙에 따라 트래픽의 목적지를 결정합니다. 규칙은 DIRECT, PROXY, REJECT 또는 구성에 정의된 정책을 지정할 수 있으므로, 특정 유형의 웹사이트가 반드시 직접 연결된다고 단정할 수 없습니다.
적합한 경우: 검토를 마친 규칙 구성이 있고 대상별로 트래픽을 분기하려는 경우.
Proxy
전역적으로 프록시 전달을 우선하며, 일반 요청의 목적지를 Config의 개별 분기 규칙에 따라 정하지 않습니다. 규칙 선택이 문제의 원인인지 비교해 볼 수 있지만 잘못된 연결 정보를 수정해 주지는 않습니다.
적합한 경우: 연결 정보가 유효하다는 것을 알고 있으며, 분기 문제를 임시로 비교 점검하려는 경우.
Direct
전역적으로 직접 연결을 우선합니다. SERVER 항목을 선택했더라도 Direct가 일반 요청을 해당 항목으로 전달하지는 않습니다.
적합한 경우: 현재 네트워크에서 직접 접속했을 때의 상태를 비교하려는 경우.
Scene
이미 설정된 시나리오 조건에 따라 해당 동작을 선택합니다. 사용 전에 시나리오 내용을 확인하세요. Config, Proxy, Direct와 고정적으로 같은 의미를 갖는 별도의 이름은 아닙니다.
적합한 경우: 시나리오를 설정했고 현재 조건이 적용되는지 확인할 수 있는 경우.
Config 모드에서는 규칙이 보통 순서대로 적용됩니다. 다음은 규칙 문법의 예시일 뿐 완전한 구성 파일이 아닙니다. example.com은 예시 도메인입니다. FINAL은 앞선 규칙 뒤에 배치해 일치하는 규칙이 없는 요청의 최종 처리를 지정합니다.
[Rule]
DOMAIN-SUFFIX,example.com,DIRECT
GEOIP,CN,DIRECT
IP-CIDR,192.168.0.0/16,DIRECT
FINAL,PROXY
DOMAIN-SUFFIX는 지정한 도메인과 그 하위 도메인을 일치시킵니다.GEOIP는 대상 IP의 지리 정보 데이터베이스 결과를 기준으로 일치시킵니다. 웹페이지 언어를 기준으로 판단하는 기능은 아닙니다.IP-CIDR는 대상 IP가 속한 네트워크 대역을 일치시킵니다. 예시의192.168.0.0/16은 사설 주소 범위입니다.FINAL,PROXY는 앞선 규칙과 일치하지 않은 요청을 PROXY로 전달한다는 뜻입니다. 실제 구성에 DIRECT가 지정되어 있다면 결과는 달라집니다.
Connectivity Test: 테스트 결과만으로 웹사이트 접속 여부를 판단할 수 없습니다
Home → Connectivity Test에서 연결 테스트를 실행할 수 있습니다. 결과는 선택한 테스트 방식과 대상에 맞춰 해석해야 합니다. 지연 시간 수치 하나만으로 도메인 조회, TLS 핸드셰이크, 웹사이트 응답, 트래픽 분기 규칙이 모두 올바르다고 확인할 수는 없습니다.
예를 들어 테스트에서 밀리초 단위 응답이 표시되지만 브라우저가 계속 로딩된다면, ‘테스트 응답은 있었으나 웹페이지 접속은 실패함’으로 기록해야 합니다. 연결 전체가 정상이라고 단정하지 마세요. 반대로 특정 테스트가 시간 초과되었다고 해서 모든 웹사이트에 접속할 수 없다고 단정할 수도 없습니다.
- 현재 Home 상태, Global Routing 선택 항목, SERVER에서 선택한 항목을 기록합니다.
- Connectivity Test를 실행하고 응답, 시간 초과, 오류 안내 중 어떤 결과가 나왔는지 기록합니다.
- 브라우저에서 접속 권한이 있는 대상을 열어 단일 웹사이트만 실패하는지 여러 웹사이트가 실패하는지 구분합니다.
- Config에서만 실패한다면 기존 설정을 저장한 뒤 Proxy로 임시 전환해 비교하세요. 테스트가 끝나면 원래 모드로 되돌립니다.
- 여러 도메인에서 모두 실패한다면 현재 Config의 DNS 관련 설정, 네트워크 환경, 연결 정보를 추가로 확인하세요. 구성을 한 번에 통째로 바꾸지 마세요.
문제 해결 정보를 공유할 때는 오류 안내, 시간, 작업 순서를 남기면 됩니다. 구독 URL의 token, 인증 암호, 개인 키는 가리세요. 이러한 정보가 있으면 다른 사람이 연결 정보를 사용할 수 있습니다.
구독 업데이트와 On Demand: 첫 연결 후 각각 확인하기
구독은 여러 연결 항목을 가져오는 방법이며, 구독 업데이트는 해당 정보를 다시 가져오는 작업입니다. 앱 업데이트나 Config의 규칙 파일 새로고침과는 다릅니다. 가져올 때 본인의 원본 URL을 사용하세요. https://example.com/sub?token=xxxx는 형식을 보여 주는 예시일 뿐 연결에 사용할 수 없습니다.
처음 가져오거나 나중에 업데이트한 뒤에는 SERVER 항목이 예상한 내용인지, 현재 선택한 항목을 여전히 사용할 수 있는지 확인하세요. 구독 업데이트로 이름이나 매개변수, 사용 가능한 항목이 바뀔 수 있습니다. ‘업데이트 완료’ 표시만으로 새 연결 테스트를 대신할 수는 없습니다.
- 업데이트 전: 본인의 구독 URL이 완전한지, 쿼리 매개변수가 빠지거나 불필요한 공백이 들어가지 않았는지 확인합니다.
- 업데이트 후: Home → SERVER로 돌아가 선택한 항목을 다시 확인한 뒤 Connectivity Test를 실행합니다.
- 자동 실행을 켜기 전: 먼저 수동 연결이 성공하는지 확인한 뒤
Settings → On Demand에서 실행 조건을 점검합니다. - 자동 재연결 문제를 확인할 때: On Demand를 잠시 끄고 수동으로 비교 테스트를 진행한 뒤, 필요하면 다시 켭니다.
On Demand는 지정한 조건에서 시스템이 연결을 시작하도록 설정합니다. 서버 주소, 인증 항목, DNS 구성을 수정하는 기능은 아닙니다. 수동으로 연결을 끈 뒤 다시 연결된다면 기존 구독을 바로 삭제하지 말고, 먼저 해당 설정과 시스템의 다른 VPN 구성에 자동 연결 동작이 설정되어 있는지 확인하세요.
첫 실행 중 자주 묻는 질문: 증상에 따라 다음 단계 확인하기
방금 허용 안 함을 눌렀어요. 다시 승인하려면 어떻게 하나요?
Home으로 돌아가 연결 스위치를 다시 조작하고 시스템 안내에 응답하세요. 여전히 추가할 수 없다면 기기의 ‘설정’에서 VPN을 검색해 기존 구성과 기기 관리 제한을 확인하세요. 기존 정보는 그대로 두고 제한 원인을 확인한 뒤 구성을 제거할지 결정하세요.
Connected인데 웹페이지가 열리지 않는 이유는 무엇인가요?
먼저 Home → Global Routing에서 선택한 항목을 기록한 다음 Connectivity Test를 실행하세요. Config에서만 실패한다면 현재 Config의 규칙과 DNS 설정을 확인합니다. 여러 모드에서 모두 실패한다면 연결 정보와 현재 네트워크를 점검하세요.
SERVER에 항목이 많은데 하나를 누르면 바로 연결되나요?
항목 선택과 연결 시작은 별개의 작업입니다. 먼저 대상 항목을 확인한 다음 Home 상단 스위치와 연결 상태를 확인하세요. Direct를 사용하면 항목을 선택했더라도 일반 요청이 자동으로 프록시를 통해 전달되지는 않습니다.
스위치를 껐는데 다시 연결됩니다. 어디를 변경해야 하나요?
Settings → On Demand에서 자동 실행 설정을 확인하세요. 먼저 해당 기능을 잠시 중지한 뒤 수동으로 연결 스위치를 테스트합니다. 같은 현상이 계속되면 시스템 VPN 구성에 다른 자동 연결 설정이 있는지 확인하세요.
구독과 규칙 구성을 모두 다시 가져와야 하나요?
다시 가져오기를 첫 단계로 삼을 필요는 없습니다. 먼저 SERVER 정보 가져오기 실패, 터널 연결 실패, Config 트래픽 분기 오류를 구분하세요. 문제가 발생한 계층을 확인한 뒤 해당 부분만 수정해야 기존 설정과 문제 해결에 필요한 단서를 잃지 않습니다.