공식 매뉴얼 · iPhone / iPad
Shadowrocket 사용법
먼저 기존 연결 정보를 가져오고 Global Routing을 선택한 다음 스위치를 켜 실제 접속을 확인하세요. 이 페이지에서는 처음 설정하는 순서대로 안내합니다. 이미 완료한 단계는 목차에서 건너뛸 수 있습니다. iPhone과 iPad 모두 화면의 영문 메뉴명을 기준으로 찾으세요. 실제 배치는 현재 앱 화면을 기준으로 확인해야 합니다.
정보를 준비한 뒤 입력 방식부터 구분하세요. 구독 링크는 여러 연결 항목을 가져오는 데 사용하고, 개별 서버 정보는 연결 하나를 직접 추가할 때 사용합니다. 둘 다 입력할 필요는 없습니다. 구독은 규칙 구성 파일과 다릅니다. 구독은 서버 정보를 제공하고, 구성 파일은 요청을 어떻게 분기할지 결정합니다. 처음에는 확인 가능한 연결 하나를 설정한 뒤 복잡한 규칙을 다루세요.
Home → Add Server
1단계: 서버 추가 또는 Subscribe 가져오기
보유한 정보에 맞는 가져오기 방식을 선택하세요. 저장한 뒤 먼저 Home의 SERVER에 항목이 표시되는지 확인하고 모드를 선택합니다.
개별 서버 정보가 있는 경우: Add Server 입력
Home을 열고 SERVER 그룹 근처에서 Add Server를 누르세요. 편집 화면에서 먼저 Type을 눌러 제공받은 정보에 지정된 프로토콜을 선택합니다. 선택한 Type에 따라 입력 항목이 달라집니다. 스크린샷에 표시된 Host, Port, Password, Method는 입력 항목의 한 가지 예이며, 모든 프로토콜에 동일한 정보를 입력해야 한다는 뜻은 아닙니다.
보유한 서버 주소를 Host에, 포트를 Port에 입력한 뒤 제공받은 정보에 맞춰 인증 및 암호화 항목을 채우세요. Host에는 일반적으로 도메인이나 IP 주소를 입력하며 웹페이지 경로를 임의로 덧붙이지 않습니다. Password의 대소문자와 기호를 그대로 유지하고, 복사한 뒤 앞뒤 공백이 없는지 확인하세요. Method는 서버 정보와 일치해야 합니다. 화면에 저장하기 위해 임의로 다른 값을 선택하면 안 됩니다. 추가 인증 정보나 전송 매개변수가 있다면 현재 화면의 해당 항목에 맞춰 입력하고, 정보가 부족하면 이용 중인 서비스 제공업체에 확인하세요.
보유한 정보가 QR 코드로 제공됐다면 Scan QR Code를 사용할 수 있습니다. 스캔한 뒤에도 Type, Host, Port가 원래 정보와 일치하는지 확인하고 저장하세요. Import from Cloud JSON은 특정 형식의 가져오기 메뉴이므로 일반 구독 링크를 여기에 입력하면 안 됩니다. 내용을 인식하지 못하면 프로토콜을 계속 바꾸기보다 먼저 정보의 형식을 확인하세요.
직접 보유한 구독 링크가 있는 경우: Subscribe 선택
Add Server로 이동해 Type을 열고 Subscribe를 선택한 다음 URL 항목에 직접 보유한 전체 구독 링크를 붙여 넣으세요. 구독 주소에는 쿼리 매개변수가 포함될 수 있으며, 이 역시 주소의 일부입니다. 복사할 때 매개변수를 삭제하거나 줄바꿈으로 뒷부분을 끊거나 마지막 문자를 누락하지 마세요. 알아보기 쉬운 설명을 입력해 저장한 뒤 Home으로 돌아가 구독 정보를 가져와 서버 항목이 표시되는지 확인합니다.
저장 후 구독 그룹만 보이고 선택할 서버가 없다면 해당 그룹에서 업데이트가 필요한지, 가져오기 오류가 표시됐는지 먼저 확인하세요. 구독을 업데이트하려면 현재 네트워크에서 구독 주소에 접속할 수 있어야 하며 주소가 유효해야 합니다. 구독 링크에는 접속 정보가 포함될 수 있으므로 일반 웹페이지 링크처럼 공개적으로 공유하지 마세요. 만료, 인증, 응답 형식 문제는 문제 해결을 참고하세요.
저장이 끝나면 Home의 SERVER에서 사용할 서버를 선택하고 선택 표시가 나타나는지 확인하세요. 추가가 완료됐다는 것은 정보가 앱에 저장됐다는 뜻일 뿐, 서버에 연결할 수 있다는 의미는 아닙니다. 다음 단계에서 요청 처리 방식을 정한 뒤 테스트와 실제 접속으로 결과를 확인하세요.
Global Routing · Config / Proxy / Direct
2단계: Global Routing 모드 선택
Config, Proxy, Direct는 각각 규칙, 프록시 경로, 직접 연결 경로에 따라 요청을 처리합니다.
Home으로 돌아가 Global Routing을 눌러 옵션을 확인하세요. 여기서는 요청 처리 방식을 바꾸며 가져오기 출처나 서버 인증 정보는 변경되지 않습니다. 처음 설정할 때는 현재 선택 항목의 의미를 확인한 다음 연결 스위치를 켜세요. 특정 페이지가 일시적으로 열리지 않는다고 해서 모드, 서버, DNS를 한꺼번에 변경하지 마세요.
Config: 현재 규칙에 따라 요청 분기
Config를 선택하면 현재 구성 파일의 규칙에 따라 요청이 처리됩니다. Config 페이지에 들어가 목록에 파일이 있는지만 보지 말고 실제로 어떤 구성이 활성화돼 있는지 확인하세요. 해당 파일을 열어 Rule 내용과 연결된 정책을 점검합니다. 구성 편집 화면의 General, Rule, Hosts, URL Rewrite, HTTPS Decryption은 각각 다른 기능을 합니다. 처음 연결할 때 각 항목을 모두 수정할 필요는 없습니다.
규칙은 일반적으로 표시된 순서대로 확인하며, 일치하는 규칙을 찾으면 해당 정책을 적용합니다. 아래 예시는 도메인 접미사와 기본 규칙의 작성 방식을 설명할 뿐, 사용자의 네트워크에 필요한 전체 구성은 아니며 현재 파일을 그대로 대체해서도 안 됩니다. example.com은 예시 도메인입니다. 실제 대상에 프록시를 적용할지는 사용 중인 규칙과 목적에 따라 결정해야 합니다.
[Rule]
DOMAIN-SUFFIX,example.com,PROXY
FINAL,DIRECT
첫 번째 규칙은 example.com과 하위 도메인을 찾아 PROXY를 적용합니다. 앞선 규칙에 일치하지 않는 요청은 FINAL에 따라 DIRECT로 처리됩니다. 따라서 스위치를 켰더라도 일부 요청은 직접 연결될 수 있습니다. 규칙을 수정하려면 Add Rule을 사용하거나 기존 항목을 편집하세요. 먼저 원래 구성을 보존하고 규칙을 하나씩 검증하세요. 자세한 절차는 고급 문제 해결 매뉴얼을 참고하세요.
Proxy와 Direct: 연결 경로 구분
Proxy는 선택한 프록시 경로가 작동하는지 임시로 확인할 때 유용하지만, 실제 요청 처리에는 다른 관련 설정도 영향을 줄 수 있습니다. Direct는 직접 연결 경로를 사용하며 원격 프록시 서버를 확인하는 용도가 아닙니다. Config에서 특정 대상에 접속할 수 없지만 Proxy에서는 가능하다면 먼저 어떤 규칙이 해당 대상에 적용되는지 확인하세요. 프록시 경로 자체가 작동하지 않으면 새로운 분기 규칙을 추가하기 전에 서버 매개변수와 테스트 절차를 다시 확인합니다.
선택한 뒤 Home으로 돌아가 Global Routing에 의도한 모드가 표시되는지 확인하세요. 규칙 분기가 필요한 일상적인 사용이라면 확인을 마친 후 Config로 되돌리고 활성화된 구성 파일도 다시 확인합니다. 서버와 모드가 정해졌으니 다음으로 연결을 승인합니다.
Home · Not Connected
3단계: 스위치를 켜고 시스템 승인 완료
선택한 서버와 Global Routing을 확인한 뒤 Home 상단의 연결 스위치를 켜세요.
Home에서 다음 세 가지를 확인하세요. SERVER에 선택 가능한 항목이 있고, 사용할 서버가 선택돼 있으며, Global Routing에 의도한 모드가 표시돼야 합니다. 스크린샷 상단의 Not Connected는 당시 앱 연결이 아직 설정되지 않았다는 뜻입니다. 옆의 스위치를 눌러 연결을 시작하세요. Add Server로 다시 들어가 정보를 저장할 필요는 없습니다.
처음 연결할 때 시스템에서 Shadowrocket이 VPN 구성을 추가하도록 허용해 달라는 메시지가 나타날 수 있습니다. 이는 앱이 시스템 네트워크 확장 기능을 사용하는 데 필요한 승인 절차입니다. 알림에 표시된 앱 이름을 확인하고 시스템 안내에 따라 허용한 다음 기기에서 요구하는 인증을 완료하세요. 승인을 취소하면 연결 스위치를 켜도 연결되지 않습니다. 앱으로 돌아가 다시 시도해 승인을 완료해야 합니다.
승인한 뒤 Home으로 돌아가 상단 상태와 스위치가 계속 켜져 있는지 확인하세요. 앱에 연결됨으로 표시돼도 로컬 연결 기능이 시작됐다는 뜻일 뿐, 모든 원격 서버와 DNS 요청 또는 웹페이지 접속이 검증됐다는 의미는 아닙니다. 규칙에 따라 요청이 Proxy 또는 DIRECT로 처리될 수 있으므로 연결 상태와 실제 사용 가능 여부를 따로 확인하세요.
스위치를 켠 직후 꺼진다면 시스템 알림이나 앱 오류가 있었는지 먼저 확인하세요. 스위치를 빠르게 연속해서 누르거나 모든 구성을 바로 삭제하지 마세요. 승인이 완료됐는지 확인하고, 기기에서 다른 VPN 구성을 사용 중인지 또는 기기 관리 제한이 있는지 살펴보세요. 관리 기기의 제한 사항은 해당 기기 관리자에게 확인해야 합니다. 현재 정보를 보존하고 아래 절차에 따라 실패한 단계를 찾아보세요.
iPad에서는 사용 가능한 공간과 화면 배치가 다를 수 있지만 Home, SERVER, Global Routing 등의 메뉴명을 기준으로 찾으면 됩니다. 다른 기기로 바꾼 경우 해당 기기의 연결 승인과 현재 구성을 각각 확인하세요. 앱이 설치돼 있거나 구입 내역이 있어도 서버 정보와 선택 상태까지 동기화됐다는 뜻은 아닙니다.
연결이 유지되는 것을 확인한 뒤 브라우저로 전환해 테스트하세요. 테스트 중에는 Wi‑Fi에서 셀룰러 네트워크로 바꾸는 등 네트워크 환경을 동시에 변경하지 마세요. 설정 변경과 접속 네트워크 변경 중 무엇이 결과에 영향을 줬는지 판단하기 어려워집니다. 한 차례 테스트한 뒤 다른 네트워크 환경도 각각 확인하세요.
Connectivity Test → 실제 접속 → 요청 경로
4단계: 연결 및 규칙 적용 여부 확인
확인할 항목은 두 가지입니다. 선택한 서버가 테스트에 응답하는지, 접속하려는 대상이 의도한 경로로 작동하는지 살펴보세요. Home에서 Connectivity Test를 열어 선택한 서버의 결과를 확인합니다. 결과는 현재 테스트 방식이 확인하는 단계만 보여줍니다. 모든 웹페이지 접속, 모든 프로토콜의 정상 작동 또는 실제 전송 속도를 보장하지는 않습니다.
테스트 결과가 표시되면 브라우저에서 원래 접속하려던 페이지를 다시 여세요. 문제를 재현할 수 있는 대상을 하나 선택하고 여러 페이지를 한꺼번에 열지 않는 것이 좋습니다. 도메인 확인이 되는지, 로딩이 시작되는지, 어느 단계에서 멈추는지 기록하세요. 한 번 새로고침한 뒤 적당한 시간 동안 기다리면 충분합니다. 연속으로 새로고침하면 연결 수만 늘어날 뿐 원인을 찾는 데 도움이 되지 않습니다.
규칙에 따른 분기를 확인하려면 앱에서 볼 수 있는 연결 기록이나 로그를 열어 대상 도메인, 일치한 규칙, 적용된 정책을 확인하세요. Config에서 대상에 DIRECT가 적용되는 것은 규칙의 의도된 결과일 수 있습니다. 시스템에 VPN 상태가 표시된다는 이유만으로 모든 트래픽이 프록시를 통한다고 판단하면 안 됩니다. Data의 트래픽 변화는 참고 자료로 활용할 수 있지만, 통계가 증가했다는 사실만으로 특정 규칙이 적용됐다고 단정할 수는 없습니다.
결과에 따라 다음 단계 선택
- 테스트와 실제 접속이 모두 성공한 경우: 현재 서버와 구성을 유지하세요. Proxy를 임시로 사용했다면 Config로 되돌린 뒤 같은 대상을 다시 확인합니다.
- 테스트는 실패했지만 일부 페이지에 접속할 수 있는 경우: 테스트 방식과 해당 페이지의 실제 연결 경로를 먼저 확인하세요. 페이지에 DIRECT가 적용됐거나 테스트 대상이 실제 접속 대상과 다를 수 있습니다.
- 테스트는 성공했지만 페이지가 열리지 않는 경우: 해당 페이지의 DNS, 규칙 정책, 연결 기록을 확인하세요. 테스트 성공만으로 서버 매개변수가 모두 올바르다고 판단하면 안 됩니다.
- 네트워크를 바꾼 뒤 결과가 달라진 경우: 두 네트워크의 결과를 각각 기록하고 접속 네트워크 제한과 DNS 확인 차이를 살펴보세요. 모든 문제를 구독 오류로 단정하지 마세요.
결과를 비교해야 한다면 한 번에 하나만 변경하세요. 예를 들어 Config만 Proxy로 임시 변경하고 나머지 설정은 그대로 둔 채 같은 페이지에 접속합니다. 결과가 달라졌다면 규칙을 확인할 근거가 됩니다. 테스트가 끝나면 평소 사용하던 모드로 복원하세요. 시간 초과가 반복되거나 DNS 확인 또는 성능에 문제가 있다면 문제 해결에서 증상에 맞는 항목을 확인하세요. 시작 단계에서 모든 고급 설정을 바꿀 필요는 없습니다.
Settings · Test Method / On Demand / Diagnostics
5단계: 실패한 단계에 따라 Settings 확인
가져오기, 테스트, 승인, 실제 접속 중 어느 단계에서 문제가 발생했는지 먼저 찾으세요. 기존 구성은 보존하고 관련 설정을 한 번에 하나씩만 변경합니다.
가져온 뒤 서버가 표시되지 않음: 정보 출처부터 확인
Add Server로 돌아가 구독 링크를 일반 서버의 Host에 입력한 것이 아니라 Subscribe로 가져왔는지 확인하세요. 링크가 온전한지, 구독이 유효한지, 업데이트 중 인증 또는 형식 오류가 표시됐는지 살펴봅니다. 수동으로 추가했다면 Type, Host, Port와 인증 항목을 다시 대조하세요. 저장할 수 있다는 사실만으로 매개변수가 서버 요구 사항에 맞는 것은 아닙니다. 정보가 부족하면 이용 중인 서비스 제공업체에 확인하세요. 스크린샷만 보고 입력값을 추측하면 안 됩니다.
Connectivity Test 시간 초과: 테스트와 연결을 구분
Settings에서 Test Method를 열어 현재 어떤 방식으로 테스트하는지 확인하세요. 테스트 방식마다 확인하는 단계가 다르므로 결과를 앱의 웹 브라우징 속도로 해석하면 안 됩니다. 먼저 선택한 서버와 포트를 확인한 다음 현재 네트워크에서 서버에 연결할 수 있는지 살펴보세요. 직접 보유한 다른 서버 항목으로 비교할 때는 모드와 네트워크를 그대로 두고 서버만 바꿔야 특정 항목의 문제인지 판단할 수 있습니다.
연결이 유지되지 않거나 자동으로 바뀜: On Demand 확인
네트워크 상태에 따라 연결이 시작되거나 중단된다면 On Demand가 켜져 있는지, 기존 조건이 어떻게 설정됐는지 확인하세요. On Demand는 조건에 따라 연결을 시작하는 기능이지 속도를 높이는 스위치가 아닙니다. 처음 문제를 점검할 때는 현재 상태를 기록하고 잠시 끈 다음 수동으로 연결해 자동 실행과 수동 조작을 구분할 수 있습니다. 원인을 확인한 뒤 필요한 조건을 복원하세요. Today Widget은 빠른 조작 관련 설정이며 서버 사용 가능 여부를 판단하는 기준이 아닙니다.
테스트는 정상이지만 웹페이지 접속 실패: 진단 정보 확인
Diagnostics와 현재 앱에서 제공하는 로그를 확인해 실패한 단계를 찾고 DNS 확인, 원격 연결, 규칙 정책을 구분하세요. 특정 도메인만 실패한다면 모든 DNS 설정을 바로 바꾸지 말고 해당 대상의 기록부터 확인합니다. Settings의 Proxy, TCP, UDP는 서로 다른 연결 동작과 관련 있습니다. 이름만 보고 문제 해결을 위해 한꺼번에 변경하지 마세요. 변경 전 용도를 확인하고 원래 값을 복원할 수 있도록 기록해 두세요.
업데이트 후 이상 동작, 배터리 소모 변화, iPad 특유의 문제가 발생하면 현재 네트워크, Global Routing, 선택한 서버와 재현 절차를 먼저 기록하세요. 재설치를 첫 번째 조치로 삼지 마세요. 기존 단서를 잃지 않도록 필요한 정보를 보관하고 구성과 승인을 확인하세요. 업데이트 및 시스템 요구 사항은 App Store 페이지에 표시된 내용을 기준으로 하며, 스크린샷의 외관만으로 앱 버전을 추측하지 마세요.
위 절차를 마치면 문제가 발생한 단계를 구분할 수 있어야 합니다. 가져왔지만 항목이 생성되지 않았는지, 서버 테스트에 실패했는지, 시스템 승인이 완료되지 않았는지, 규칙 적용 후 실제 요청이 실패했는지 확인하세요. 원인을 파악한 뒤 문제 해결을 참고하고, 단계별 점검이 더 필요하면 고급 문제 해결 매뉴얼을 확인하세요. 평소 사용하기 전에는 Home의 연결 상태와 선택한 서버, Config 파일이 모두 의도한 설정인지 마지막으로 확인합니다.