이 글은 Shadowrocket을 사용할 준비가 되었고, 이미 이용 중인 서비스와 구독 정보가 있는 사용자를 위한 안내입니다. 먼저 앱 구매, 서버 정보, 규칙 설정을 구분한 다음 가져오기, 권한 승인, 테스트, 라우팅 선택 순서로 진행하세요. 업데이트 실패나 연결 끊김이 발생하면 한 번에 한 가지 조건만 바꿔 원인을 확인하세요. 여러 설정을 동시에 바꾸면 원인을 파악하기 어렵습니다.
1. 구매하면 바로 연결할 수 있나요?
앱을 구매했다고 해서 바로 연결할 수 있는 것은 아닙니다. Shadowrocket은 폐쇄형 유료 앱으로, 한 번 구매하면 계속 사용할 수 있습니다. 앱 구매와 서버 이용 요금은 별개입니다. App Store에서는 앱을 구매하고 설치하며, 연결에 필요한 서버 주소, 포트, 인증 정보는 사용자가 이미 이용 중인 서비스에서 제공받아야 합니다. 설치 후에도 Home에 사용할 수 있는 서버 항목이 있어야 합니다.
앱은 App Store에서만 받을 수 있습니다. 개발자가 Shadow Launch Technology Limited인지, 앱 ID가 932747118인지 확인하세요. 시스템 요구 사항과 호환성은 App Store 페이지의 안내를 기준으로 합니다. 아래 세 가지 수치는 조작 개념을 설명하는 것으로, 서비스 이용 가능성을 보장하지 않습니다.
2. 구독 링크는 어디에 추가하나요?
구독은 사용자가 이미 이용 중인 서비스의 서버 정보를 한꺼번에 가져오는 데 사용하며, 규칙 설정 파일과는 다릅니다. 앱에 가져올 수 있는 구독 URL인지 확인하세요. 서비스 웹사이트 로그인 주소와 혼동하지 마세요. token이 포함된 링크에는 보통 접속 정보가 들어 있으므로 비밀번호처럼 취급하고 공개 스크린샷에 노출하지 마세요.
-
새 항목 추가
Home에서 오른쪽 위 “+”를 누른 다음 Add Server를 엽니다.
-
유형 선택
Type에서 Subscribe를 선택하고, 이미 이용 중인 구독 URL을 입력합니다. 이 글의
https://example.com/sub?token=xxxx는 예시용 가짜 주소이며 연결에 사용할 수 없습니다. -
정보 저장
URL 앞뒤에 공백, 줄바꿈, 한글 문장 부호가 섞이지 않았는지 확인하세요. 알아보기 쉬운 메모를 입력한 뒤 저장합니다.
-
목록 확인
Home으로 돌아가 구독 아래에 서버 항목이 표시되는지 확인합니다. 아직 불러오지 않았다면 구독을 업데이트한 다음 항목 하나를 선택해 테스트하세요.
저장 후 구독 이름만 보이고 서버가 표시되지 않는다면 같은 주소를 반복해서 추가하지 마세요. 먼저 업데이트 오류가 있는지 확인한 뒤 링크가 여전히 유효한지, 응답 내용이 구독 데이터인지 확인하세요. 웹사이트 로그인이 성공해도 구독 요청까지 성공한 것은 아닙니다.
3. 구독은 어떻게 업데이트하나요? 실패하면 무엇을 확인해야 하나요?
구독을 업데이트하면 서버 목록을 다시 불러옵니다. 서비스 이용 기간이 연장되는 것은 아니며, Config의 규칙 파일이 함께 업데이트되는 것도 아닙니다. Home에서 아래로 당겨 새로 고침한 뒤 해당 구독의 상태와 항목 변화를 확인하세요. 새로 고침 애니메이션만 보고 요청 성공 여부를 판단하지 마세요. 구독 항목을 직접 수정했다면 업데이트 전에 필요한 내용을 따로 기록하세요. 원격 데이터가 로컬 변경 사항을 덮어쓸 수 있습니다.
업데이트할 때마다 timeout이 발생하면 어떻게 하나요?
먼저 현재 네트워크에서 요청을 보낼 수 있는지 확인하세요. 구독 URL에 기존 연결을 통한 접속이 필요하다면 먼저 연결한 뒤 Settings → Subscribe에서 Update via Proxy를 확인하고 다시 시도하세요. 이 옵션으로 만료된 URL을 복구할 수는 없습니다.
업데이트했는데 목록이 그대로예요. 업데이트가 안 된 건가요?
현재 보고 있는 구독 그룹과 URL이 맞는지 확인한 다음 오류 메시지가 있는지 살펴보세요. 원격 목록에 변경 사항이 없다면 업데이트에 성공해도 같은 목록이 표시될 수 있습니다. 항목 수가 그대로라는 이유만으로 실패라고 판단하지 마세요.
링크는 열리는데 가져오기가 안 되나요?
응답 내용이 구독 데이터인지, 로그인 페이지나 오류 페이지인지 확인하세요. 이미 이용 중인 서비스의 관리 페이지에서 전체 주소를 다시 복사하세요. token을 수정하거나 로그인 페이지 주소를 Subscribe에 입력하지 마세요.
4. 처음 연결할 때 VPN 구성을 추가해야 하는 이유는 무엇인가요?
처음 연결을 활성화할 때 시스템에서 VPN 구성 추가를 허용할지 물을 수 있습니다. 이는 Shadowrocket이 기기의 네트워크 트래픽을 처리하는 데 필요한 시스템 권한이며, 구독을 가져오는 과정과는 다릅니다. 현재 조작 중인 앱이 Shadowrocket인지 확인한 뒤 진행하고, 시스템 안내에 따라 인증을 완료하세요.
- Home에서 가져온 서버를 선택하고, 정보가 비어 있거나 입력이 덜 된 항목이 아닌지 확인합니다.
- Home 상단의 연결 스위치를 켜고 시스템의 VPN 구성 추가 안내를 확인합니다.
- 허용한 뒤 시스템 안내에 따라 인증을 완료하고 Home으로 돌아가 연결 상태를 확인합니다.
- 이전에 권한 요청을 취소했다면 연결을 다시 켜서 안내가 다시 표시되는지 확인하세요. 시스템 설정에서 VPN을 검색해 구성이 있는지 확인할 수도 있습니다.
시스템에 VPN 연결됨으로 표시되는 것은 터널이 연결된 상태라는 뜻일 뿐입니다. 서버 인증, DNS, 대상 웹사이트까지 정상인지 확인해 주지는 않습니다. 연결은 되었지만 웹페이지가 열리지 않는다면 시스템 구성을 반복해서 삭제하지 말고 Connectivity Test를 실행하고 라우팅 설정을 확인하세요.
5. Global Routing에서는 어떤 항목을 선택해야 하나요?
평소 기존 규칙을 사용하려면 Config를 선택하세요. 규칙이 문제의 원인인지 일시적으로 확인하려면 Proxy 또는 Direct로 바꿔 비교할 수 있습니다. 여기서 Config는 Global Routing의 선택 항목이고, 화면 하단의 Config는 구성 파일 관리 페이지입니다. 두 곳을 모두 확인해야 합니다.
| 옵션 | 용도 | 확인할 항목 |
|---|---|---|
Proxy | 프록시 라우팅을 사용해 비교 테스트합니다. | 선택한 서버를 사용할 수 있는지 확인합니다. |
Direct | 프록시 서버를 거치지 않고 직접 연결합니다. | 현재 네트워크에서 대상에 접속할 수 있는지 확인합니다. |
Config | 현재 활성화된 구성의 규칙에 따라 트래픽을 처리합니다. | 활성 구성, 규칙 순서, 매칭 정책 |
Scene | 설정한 Scene 조건에 따라 라우팅을 적용합니다. | Scene 조건이 현재 네트워크에 맞는지 확인합니다. |
Scene은 ‘가장 빠른 서버를 자동으로 선택’한다는 뜻이 아닙니다. Scene을 설정하지 않았다면 자동화에 적합해 보인다는 이유만으로 선택하지 마세요. 문제 확인을 마친 뒤 필요한 라우팅 옵션으로 되돌리고 테스트 전후의 차이를 기록하세요.
6. Config는 어떻게 전환하나요? 규칙이 적용되지 않는 이유는 무엇인가요?
화면 하단의 Config로 이동해 사용할 구성 파일을 선택하고, 작업 메뉴에서 Use Config를 선택합니다. 그런 다음 Home으로 돌아가 Global Routing을 Config로 설정하세요. 파일을 다운로드하거나 편집 또는 열기만 해서는 현재 구성으로 활성화되지 않습니다. 수정하기 전에 원본 파일을 보관해 두면 문제를 점검할 때 되돌아갈 기준으로 삼을 수 있습니다.
활성화 여부 확인
- 파일 위치
- 하단의 Config
- 활성화 방법
- 파일 선택 → Use Config
- 라우팅 옵션
- Home → Global Routing → Config
파일이 저장된 상태와 활성화된 상태는 서로 다릅니다.
규칙 의미
- DOMAIN-SUFFIX
- 지정한 도메인 접미사와 하위 도메인에 일치합니다.
- IP-CIDR
- 대상 IPv4 주소 대역에 일치합니다.
- FINAL
- 앞선 규칙에 일치하지 않은 트래픽을 처리합니다.
규칙은 위에서 아래 순서로 검사하므로 FINAL은 맨 마지막에 두어야 합니다.
아래는 규칙 텍스트 예시일 뿐, 앱 화면이나 완전한 구성 파일이 아닙니다. GEOIP는 대상 IP의 지리 데이터베이스상 위치를 기준으로 매칭하므로 실제로 해석된 대상 IP가 규칙에 지정된 지역에 속하는지 확인해야 합니다. PROXY, DIRECT, REJECT는 각각 프록시, 직접 연결, 차단을 뜻합니다. 규칙의 정책 값에 한국어 설명을 입력하지 마세요.
[Rule]
DOMAIN-SUFFIX,example.com,PROXY
IP-CIDR,192.0.2.0/24,DIRECT,no-resolve
GEOIP,CN,DIRECT
FINAL,PROXY
7. 연결 스위치가 저절로 꺼지거나, 끈 뒤 다시 연결되는 이유는 무엇인가요?
‘연결이 끊김’과 ‘자동 재연결’을 구분하세요. 연결이 끊긴 경우에는 네트워크 변경, 서버 상태, 다른 VPN 구성의 영향을 확인해야 합니다. 자동으로 다시 연결된다면 먼저 Settings → On Demand를 확인하세요. On Demand는 조건에 따라 연결 동작을 실행하는 기능입니다. 서버 인증 정보를 개선하거나 네트워크 전환 중 요청이 항상 유지되도록 보장하지는 않습니다.
- 직접 연결을 끊었는데 다시 연결됨: Settings → On Demand에서 현재 네트워크에 해당하는 조건이 활성화되어 있는지 확인하세요. 기능을 잠시 끈 뒤 다시 관찰해 보세요.
- Wi-Fi에서 셀룰러로 전환한 뒤 연결이 끊김: 전환 시각을 기록하고 셀룰러 데이터가 정상적으로 작동하는지 확인한 다음 다시 연결해 동일한 작업을 반복하세요.
- 다른 VPN을 켠 뒤 연결이 끊김: 시스템에서 현재 활성화된 VPN 구성을 확인하고, 문제를 점검하는 동안에는 테스트에 필요한 연결만 유지하세요.
- 특정 서버에서만 연결이 끊김: 네트워크와 구성을 그대로 둔 상태에서 이미 보유한 다른 서버 항목으로 테스트하고 결과를 비교하세요.
앱 창을 닫는 것과 VPN 연결을 끊는 것은 같은 동작이 아닙니다. 연결을 중단하려면 Home의 연결 스위치를 사용하고 On Demand 조건을 확인하세요. 시스템 상태와 앱 표시가 일치하지 않는다면 시스템의 VPN 설정에서 현재 상태를 확인하세요.
8. Connectivity Test에서 지연이 확인됐는데 웹페이지가 열리지 않는 이유는 무엇인가요?
지연 결과는 현재 테스트 방식으로 확인한 응답만 나타내며, 대상 웹사이트의 모든 요청이 완료된다는 뜻은 아닙니다. 먼저 Home에서 Connectivity Test를 실행한 다음 명확한 대상에 실제로 접속해 보세요. 테스트 시간 초과 여부, 연결 수립 여부, 웹페이지에 DNS 또는 인증 관련 오류가 표시되는지를 각각 기록하세요.
- 서버의 Type, Address, Port, 인증 항목을 확인해 이미 이용 중인 서비스에서 제공한 정보와 일치하는지 확인하세요. 실제 포트 값을 사용해야 합니다. TLS가 표시된다는 이유만으로 임의로
443을 입력하지 마세요. - 프로토콜에 맞는 항목을 확인하세요. Shadowsocks는 암호화 방식과 비밀번호, VMess 또는 VLESS는 UUID, Trojan은 비밀번호를 확인하고, 서비스에서 요구하는 TLS, SNI, 전송 설정도 점검하세요.
- Hysteria2 또는 WireGuard를 사용한다면 각각의 인증 정보나 키, 주소 설정을 확인하세요. 다른 프로토콜의 항목을 그대로 가져다 쓰지 마세요.
- 기기의 날짜와 시간대가 올바른지 확인하세요. 시간을 맞춰야 한다면 시스템 설정 → 일반 → 날짜 및 시간에서 자동 설정을 확인하세요.
- Proxy와 Config를 번갈아 선택해 같은 대상을 테스트하세요. Config에서만 실패한다면 활성 구성으로 돌아가 규칙, 정책, DNS 설정을 확인하세요.
각 단계를 마칠 때마다 같은 테스트를 반복하세요. 서버 변경, 포트 수정, TLS 해제, 구성 변경을 한꺼번에 하면 접속이 복구되더라도 무엇이 문제를 해결했는지 알기 어렵습니다.
9. iPhone이나 iPad를 바꾸면 어떻게 복원하나요?
먼저 앱 구매 내역을 복원한 다음 연결 정보를 복원하세요. 두 과정은 별개입니다. 기존에 구매한 Apple 계정으로 App Store의 구입 항목에서 앱을 다시 받을 수 있습니다. 서버, 구독, 구성은 미리 정보를 보관했거나 적절한 백업을 완료했는지에 따라 복원 여부가 달라집니다. 앱 재설치에 성공했다고 모든 설정이 복원된 것은 아닙니다.
기기 이전 확인: 기존 기기 백업, 새 기기에서 검증
기존 기기
- 처음 구매한 계정과 이미 이용 중인 구독의 출처를 확인합니다.
- 현재 활성 구성과 필요한 수동 서버 설정을 보관합니다.
- Global Routing과 On Demand 설정을 따로 기록합니다.
새 기기
- App Store의 구입 항목에서 Shadowrocket을 다시 받습니다.
- 보관한 정보를 가져온 뒤 구성과 서버를 다시 선택합니다.
- VPN 권한을 승인하고 연결 및 실제 접속을 테스트합니다.
iPhone과 iPad에서 각각 연결 상태를 확인하세요. 앱 구매 내역은 구독 인증 정보의 백업이 아닙니다.
iCloud나 시스템 백업을 이용한다면 기기를 옮기기 전에 기존 기기의 관련 동기화가 실제로 완료됐는지 확인하고, 이전 후에는 항목별로 검증하세요. 모든 정보가 자동으로 나타난다고 가정하지 마세요. 두 기기에서 같은 서비스를 동시에 사용할 수 있는지는 앱 구매 횟수가 아니라 이미 이용 중인 서비스의 연결 제한을 기준으로 합니다.
10. 문제가 생겼을 때 어떤 정보를 기록해야 문제를 쉽게 찾을 수 있나요?
효과적인 기록은 같은 문제가 다시 발생하는 상황을 재현할 수 있어야 합니다. 어떤 네트워크에서 발생했는지, 어떤 프로토콜을 사용했는지, Global Routing 옵션과 현재 구성이 무엇인지, 오류가 구독 업데이트·연결 수립·실제 접속 중 어느 단계에서 발생했는지 적어 두세요. ‘열리지 않음’보다 ‘Connectivity Test는 시간 초과되지만 구독은 업데이트 가능’이라고 쓰는 편이 구체적입니다.
- 테스트 조건 기록: 예를 들어 “집 Wi-Fi에서 Global Routing은 Config로 설정. Proxy로 바꾸자 같은 대상에 접속됨”이라고 기록하세요. 조사 범위를 규칙이나 관련 구성으로 좁힐 수 있습니다.
- 원래 오류 메시지 기록:
timeout과 같은 영어 오류 문구와 발생 시각을 그대로 보관하세요. 모든 오류를 ‘네트워크 문제’로 뭉뚱그려 바꾸지 마세요. - 민감한 정보 삭제: 구독 URL의 token, 비밀번호, UUID, 개인 키, QR 코드는 공개 문의 자료에 포함하지 마세요.
- 되돌릴 지점 보관: 구성을 편집하기 전에 백업하고, 매번 한 항목만 변경하세요. 테스트가 끝나면 임시로 변경한 라우팅 및 자동 연결 설정을 원래대로 되돌리세요.