Shadowrocket의 긴 튜토리얼입니다. 홈의 짧은 절차에 더해 세 가지 가져오기 비교, 지연 테스트, Global Routing, 규칙 원리, 실기기에서 자주 본 장애를 보탭니다.
참고: 조작 경로는 App Store 설명과 실기기 확인을 따릅니다. 화면 스케치는 실제 흐름을 다시 그린 원작(공식 스크린샷 아님)입니다. 메뉴 문구와 위치는 버전에 따라 바뀔 수 있습니다. 기기 표시를 우선하세요.
Shadowrocket는 클라이언트입니다. 규칙에 따라 전달합니다. 어디에 도착하고 얼마나 빠르게 느끼는지는 쓰는 서버(노드)에 달립니다. 시작 전에 두 가지를 확인하세요.
http(s):// 또는 sub://로 시작하는 링크. 직접 만든 서버 패널이나 계약한 사업자가 줍니다. 없으면 앱이 붙을 곳이 없습니다.참고: Shadowrocket는 노드나 구독을 제공·판매하지 않습니다. 출처는 직접 준비합니다. 이 글은 클라이언트 설정 방법만 다룹니다.
이미 스토어에 있으면 로그아웃은 건너뛰세요. 없으면 설정 → 사용자 이름 → 미디어 및 구입 항목 → 로그아웃 후 취급 지역 Apple ID로 들어갑니다. 청구지를 물으면 선택이 있을 때 ‘없음’.
App Store에서 Shadowrocket를 검색해 구매합니다(대략 $2.99 일회, 화면 가격이 기준). 설치 후 App Store를 평소 ID로 되돌릴 수 있습니다. 앱은 남습니다.
첫 실행에서 Shadowrocket는 "VPN 구성" 추가를 묻습니다. iOS 보안 확인입니다. 전달하는 프록시 계열 앱은 모두 이 경로를 탑니다. 개인 데이터 업로드가 아닙니다. "허용"한 뒤 Face ID / Touch ID 또는 암호로 확인하세요.
가져오기는 세 가지입니다. 모두 홈 오른쪽 위 +에서 시작하고 Type은 Subscribe. 차이는 URL을 넣는 방법입니다.
홈 오른쪽 위 + → Type에서 Subscribe → URL 붙여넣기 → 알아보기 쉬운 Alias(일부 iOS에서는 영문이 잘리지 않음) → 저장.
여기서 건너뛰기 쉬움: 저장해도 노드 목록은 비어 있습니다. 추가는 URL을 기록한 것뿐입니다. 아직 노드를 안 가져왔습니다. 홈으로 돌아가 방금 저장한 행을 열고 "업데이트"를 눌러야 Shadowrocket가 URL에 접속하고 목록이 채워집니다.
팁: 같은 URL 끝에 #1, #2를 붙이면 다른 이름으로 중복 추가할 수 있어 피드 비교에 좋습니다. 매번 "업데이트"하기 싫으면 설정 → Subscribe에서 "열 때 업데이트"(다시 열 때 새로 고침)와 "백그라운드 자동 업데이트"("설정 → 일반 → 백그라운드 App 새로 고침"에서 Shadowrocket를 허용해야 뒤에서 동작).
| 방법 | 맞는 장면 | FAQ |
|---|---|---|
| URL 붙이기 | URL이 메모, 채팅, 메일에 있음 | 링크가 잘림 — 열어 전체 선택 후 복사. 손으로 드래그 선택하지 말 것 |
| QR 읽기 | 사업자가 구독 QR 이미지를 줌 | 반사로 안 읽힘 — 밝기 최대, 카메라를 조금 멀리 |
| 클립보드 자동 감지 | 브라우저나 채팅에서 방금 복사함 | 콜드 스타트 또는 백그라운드에서 돌아올 때만. 옛 URL이 남아 있으면 오감지되니 먼저 비우기 |
가져온 뒤 노드 목록이 비면 URL 자체가 만료됐거나 아직 시작 전인 경우가 많습니다. 사업자에게 확인할 일이며 클라이언트 고장이 아닙니다.
가져온 뒤 노드는 홈에서 그룹으로 보입니다. 테스트와 선택 전에 작은 변경을. Settings → 지연 테스트 방법을 기본에서 CONNECT로. 지연 숫자가 실제 연결에 더 가깝습니다.
구독 그룹 오른쪽 Test로 일괄 측정할 수 있습니다. 색: 초록은 지연이 낮아 쓸 수 있음, 노랑은 높음, 빨강 / Timeout은 지금 못 씀 — 다른 것을 고르면 되고 앱 고장이 아닙니다. 행을 누르면 그것이 현재 노드가 됩니다.
Global Routing은 "특정 노드에 안 맞은 트래픽 전체를 어떻게 할지"입니다. 모드는 넷.
Scene은 만지고 싶은 사람용입니다. 일상은 Configuration으로 충분한 경우가 많습니다.
홈으로 돌아와 위쪽 스위치를 누르세요. 첫 연결에서 VPN 허용이 다시 뜰 수 있습니다. 성공하면 상태 표시줄에 작은 VPN, 스위치가 켜지고 "연결됨"과 경과 시간이 보입니다.
| 보이는 것 | 의미 |
|---|---|
| 상태 표시줄 VPN이 켜진 채 유지 | 터널 유지. 시스템도 프록시가 켜진 것으로 인식 |
| 스위치는 켜졌는데 아이콘이 계속 깜빡임 | 연결 시도 중 미성공. 노드 타임아웃이 많음. 다른 노드로 |
| 붙었다가 몇 초 뒤 끊김 | 노드 또는 서버 쪽. 다른 노드 시험. 여러 개가 같으면 사업자에게 |
| VPN 표시가 사라지고 스위치가 꺼짐 | 오래 백그라운드면 시스템이 연결을 회수할 수 있음. 스위치를 다시 켜기 |
프록시 연결은 iOS VPN 인터페이스를 백그라운드에서 유지합니다. 잠금이나 앱 전환으로는 보통 안 끊깁니다. 저전력 모드가 길면 시스템이 뒤 통신을 제한해 수동으로 끊길 수 있습니다. 절전 방침이지 앱 고장이 아닙니다. 안정이 우선이면 배터리 설정에서 Shadowrocket의 저전력 제한을 완화하세요.
⚠️ 흔한 증상: 스위치를 켠 뒤 아이콘이 계속 깜빡임. 지금 노드 타임아웃인 경우가 많습니다. 목록으로 돌아가 지연이 평범한 노드로 바꾸세요.
스위치가 켜진 것은 VPN 인터페이스가 섰다는 뜻뿐입니다. 기대한 대로 프록시를 탔다는 보장이 아닙니다. 다음 순서로 한 바퀴 확인하세요.
| 확인할 것 | 절차 | 정상 모습 |
|---|---|---|
| 사이트 접속 | 브라우저에서 이전에 안 열리던 사이트 열기 | 페이지가 로드됨. 빙글빙글이나 타임아웃 없음 |
| IP 소재 | 아무 "내 IP" 사이트 열기 | 표시는 노드 지역이지, 손회선의 실제 IP가 아님 |
| 트래픽 비율 | Data에서 Direct와 Proxy 보기 | Proxy는 쓰면서 계속 늘음. 0에 머무르지 않음 |
| 체감 | 몇 분 보통으로 둘러보고 뚜렷한 끊김이 없는지 | 가까운 사이트를 평소처럼 여는 속도에 가까움 |
아래 Data 탭은 백업과 로그 입구입니다. 위는 iCloud 백업, 가운데는 노드 가져오기/내보내기/삭제, Statistics가 트래픽, Logging에서 Proxy / DNS 로그를 봅니다.
Statistics를 열면 Direct(노드 없음)와 Proxy(노드 경유) 누계가 나옵니다. Direct가 계속 늘고 Proxy가 오래 0이면 Global Routing이나 규칙이 전부를 직접 연결로 본 것입니다. 이전 장으로 돌아가 모드를 Config 또는 Proxy로 두고, 그 사이트에 맞는 줄이 PROXY인지 확인하세요.
Direct가 0이 되지는 않습니다. 한국 사이트, Apple 통신, 시스템 요청은 DIRECT로 남는 경우가 많습니다. 정상이니 Direct를 0으로 만들 필요는 없습니다.
Shadowrocket에는 기본 규칙 default.conf가 들어 있어 흔한 사이트는 커버합니다. 파일을 망가뜨리면 Config에서 기본 구성 복원. 사용자 규칙 예:
DOMAIN-SUFFIX,netflix.com,PROXY
DOMAIN-SUFFIX,naver.com,DIRECT
GEOIP,KR,DIRECT
FINAL,PROXY
각 줄은 "대조 조건, 대조 내용, 정책". 위에서 대조하고 맞으면 멈춥니다. 마지막 줄 FINAL은 아무것도 안 맞았을 때 폴백입니다.
중요한 제한: iOS에는 "이 앱만 프록시" 공식 API가 없습니다. 어떤 앱은 노드, 다른 앱은 직접 연결처럼 보일 때 Shadowrocket는 그 앱이 자주 쓰는 도메인, IP 대역, User-Agent로 근사할 뿐, 어느 앱의 요청인지는 보지 않습니다. 그래서 앱 단위 분기는 그 앱/사이트용 규칙 세트를 가져오는 경우가 많고, 시스템 앱 목록에서 고르는 것이 아닙니다.
규칙 파일도 구독 URL로 가져와 자동 업데이트할 수 있습니다. Config → 오른쪽 위 + → 규칙 URL 붙이기 → 다운로드 → 해당 파일을 눌러 사용. 매번 손으로 고칠 필요는 없습니다.
먼저 URL이 유효하고 만료되지 않았는지, 복사가 완전한지(잘림, 여분 공백)를 확인하세요. 둘 다 정상이면 구독을 아래로 당겨 수동 새로 고침하세요.
Global Routing이 Configuration 또는 Proxy인지, 불러온 규칙에서 그 사이트가 PROXY를 가리키고 DIRECT가 아닌지 확인하세요.
지금 노드가 불안정하거나 서버 쪽 문제인 경우가 많습니다. 지연이 낮은 다른 노드로. 전부가 같으면 사업자에게 서버 상태를 확인하세요.
Config에서 "기본 구성 복원"을 눌러 내장 default.conf로 되돌린 뒤, 사용자 규칙을 조금씩 얹으세요. 한 번에 크게 바꾸지 않는 편이 가르기 쉽습니다.
Settings → 지연 테스트 방법을 CONNECT로 두세요. 실제 핸드셰이크에 가깝고 숫자로 쓰기 좋습니다.
이것으로도 안 되면 홈 FAQ로.