Shadowrocket 구독 목록이 비어 있다면 먼저 저장된 URL이 전체 주소인지 확인하고, 서비스 제공자가 파싱 가능한 구독 내용을 반환하는지 살펴본 다음 업데이트가 실제로 완료됐는지 확인하세요. 본인 계정과 구독을 보유한 경우를 전제로 URL 오류, 요청 실패, 응답 내용 문제, 표시 문제를 구분해 점검합니다. 기존 항목은 그대로 두고 한 번에 한 가지 조건만 바꿔 구독 가져오기 실패와 연결 실패를 혼동하지 않도록 합니다.
먼저 실패 단계 구분하기
구독 업데이트는 저장된 URL 읽기, 해당 주소로 요청 보내기, 응답 내용을 항목으로 파싱하기의 세 단계로 이루어집니다. 목록이 비어 있다는 것은 현재 사용할 수 있는 항목이 보이지 않는다는 뜻일 뿐, 프로토콜을 지원하지 않는다거나 모든 연결 설정이 잘못됐다는 의미는 아닙니다. 먼저 Home에 구독 그룹이 남아 있는지, 기존 항목이 있는지, 업데이트할 때 어떤 안내가 표시됐는지 확인하세요.
요약: 응답을 먼저 확인한 뒤 연결 설정을 점검하세요
구독 항목이 생성되지 않았다면 먼저 URL, 요청 결과, 응답 형식을 확인하세요. 이 단계에서 개별 항목의 포트, 비밀번호, 프로토콜을 바꿔도 구독 서버가 로그인 페이지나 빈 내용을 반환하는 문제는 해결되지 않습니다.
기존 항목이 남아 있지만 업데이트에 실패했다면 현재 구독을 유지하고 오류 안내부터 기록하세요. 항목은 표시되는데 연결만 되지 않는다면 연결 설정과 네트워크 경로를 점검해야 합니다. 두 문제는 확인할 대상이 다르므로 구독을 반복해서 삭제하고 다시 추가하는 것으로 판단을 대신하지 마세요.
전체 구독 URL 확인하기
본인 서비스 제공자 계정 페이지에서 Shadowrocket 전용 구독 URL을 복사하세요. 계정 홈, 도움말 페이지, 구독 URL은 같은 도메인을 사용해도 응답 내용이 다를 수 있습니다. URL이 https://로 시작한다고 해서 반드시 구독 주소인 것은 아닙니다. 경로와 쿼리 매개변수, 서비스 제공자가 안내한 용도를 확인해야 합니다.
https://example.com/sub?token=xxxx
위 내용은 구조를 보여 주는 예시일 뿐 가져오기에 사용할 수 없습니다. example.com은 예시 도메인이고 xxxx는 가짜 값입니다. 실제 URL의 token은 인증에 사용되는 경우가 많으므로 서비스 제공자가 안내한 전체 값을 그대로 유지하세요. 매개변수 이름도 다를 수 있으니 예시의 이름이나 내용을 본인 URL에 복사하지 마세요.
-
URL 전체 복사하기
본인 서비스 제공자 계정 페이지의 구독 주소 복사 기능을 사용하세요. 채팅 미리보기나 스크린샷을 보고 직접 옮겨 적지 마세요. URL 앞뒤에 공백, 줄바꿈, 한글 문장 부호 또는 설명이 붙지 않았는지 확인하세요.
-
가져오기 유형 확인하기
Home → 오른쪽 상단 「+」 → Type → Subscribe로 이동하세요. 여기에는 구독 URL을 추가합니다. Config는 구성 파일용이므로 두 메뉴를 서로 바꿔 사용하면 안 됩니다.
-
URL 확인하기
URL에 주소 전체를 붙여 넣고
?,&,=와 매개변수 값이 그대로 있는지 확인하세요. URL에 퍼센트 인코딩이 포함되어 있다면 처음 복사한 값을 사용하고 직접 디코딩하거나 수정하지 마세요. -
저장 후 업데이트하기
저장한 뒤 Home으로 돌아가 해당 구독을 업데이트하고 완료될 때까지 기다리세요. Home에서 아래로 당겨 새로고침할 수 있습니다. 정확한 업데이트 메뉴는 현재 앱 화면을 기준으로 확인하세요. 안내 문구와 항목 변화를 기록하고 연속으로 반복 요청하지 마세요.
웹페이지 소스나 서식 있는 텍스트에서 복사한 URL은 특히 주의하세요. 매개변수 구분자가 문자 그대로 &로 들어갈 수 있지만 실제 URL에서는 보통 &를 사용합니다. 겉모양만 보고 판단하지 마세요. 서비스 제공자 계정 페이지의 복사 기능을 다시 사용한 뒤 앱에 저장된 URL과 문자를 하나씩 비교하는 것이 정확합니다.
서비스 제공자 응답 확인하기
URL이 정확해도 요청은 실패할 수 있습니다. 본인 서비스 제공자 계정 페이지에 로그인해 구독 권한, 유효 기간, URL이 재설정됐는지 확인하세요. 서비스 제공자가 최근 구독 URL을 새로 발급했다면 이전 주소는 더 이상 유효하지 않을 수 있습니다. 앱에 저장된 이전 URL은 새 주소로 자동 변경되지 않으므로 계정 페이지에 표시된 최신 주소와 대조하세요.
아래 영어 문구는 서버 응답을 확인하기 위한 HTTP 상태 원문이며, Shadowrocket에 반드시 같은 문구가 표시된다는 뜻은 아닙니다. 실제 안내, 응답 기록 또는 서비스 제공자 답변에서 해당 상태를 확인한 경우에만 그 항목에 따라 조치하세요. 상태를 확인할 수 없다면 목록이 비어 있다는 이유만으로 구체적인 상태 코드를 추측하지 마세요.
오류: 401 Unauthorized
원인 및 해결: 해당 인터페이스의 인증에 실패했습니다. 매개변수가 누락됐거나 인증 정보가 만료됐을 수 있습니다. 유효한 구독 URL을 다시 복사하고 인증 매개변수를 확인한 다음 서비스 제공자에게 구독 권한을 문의하세요.
오류: 403 Forbidden
원인 및 해결: 서버가 이번 요청을 거부했습니다. 구체적인 이유는 서버의 접근 정책에 따라 다릅니다. 발생 시간과 사용한 네트워크를 기록해 서비스 제공자에게 제한 조건을 확인하세요. 프로토콜 매개변수를 바꿔 해결하려고 하지 마세요.
오류: 404 Not Found
원인 및 해결: 서버에서 요청 경로에 해당하는 리소스를 찾지 못했습니다. URL이 잘리지 않았는지, 경로가 변경되지 않았는지 확인하고 서비스 제공자 계정 페이지에서 전체 주소를 다시 복사하세요.
오류: 429 Too Many Requests
원인 및 해결: 서버가 요청 횟수를 제한했습니다. 연속으로 새로고침하지 마세요. 응답에 Retry-After가 있다면 안내된 시간만큼 기다리고, 없다면 서비스 제공자에게 허용되는 업데이트 간격을 문의하세요.
HTTP 요청에 성공해도 파싱까지 성공한 것은 아닙니다. 예를 들어 서버가 200 OK를 반환하더라도 본문이 로그인 페이지, 계정 안내 페이지 또는 점검 페이지라면 앱은 이를 구독 항목으로 처리할 수 없습니다. 서비스 제공자에게 구독 인터페이스가 실제로 어떤 형식의 내용을 반환하는지 확인하세요. 브라우저에서 페이지가 열린다는 이유만으로 구독이 정상이라고 판단하지 마세요.
형식 오류와 빈 응답 구분하기
구독 내용의 포맷과 각 항목에 사용되는 프로토콜은 서로 다른 층위입니다. Shadowsocks, VMess, VLESS, Trojan, Hysteria2, WireGuard는 프로토콜 이름일 뿐, 구독 응답을 가져올 수 있는지는 이름만으로 판단할 수 없습니다. 앱이 해당 프로토콜을 지원하더라도 응답은 앱이 인식할 수 있는 구독 형식이어야 하며 유효한 항목을 포함해야 합니다.
| 실제 증상 | 먼저 확인할 항목 | 다음 조치 |
|---|---|---|
| 응답이 HTML 로그인 페이지임 | 계정 페이지 주소를 잘못 복사했거나 로그인 페이지로 리디렉션됐는지 확인 | 전용 구독 URL을 다시 받고, 브라우저 로그인 없이 인터페이스를 이용할 수 있는지 서비스 제공자에게 확인 |
| 응답 본문이 비어 있음 | 계정에 반환할 항목이 있는지, 인터페이스에 문제가 있는지 확인 | 서비스 제공자에게 해당 계정의 구독 내용을 확인해 달라고 요청하고 기존 항목은 유지 |
| 본문은 있지만 파싱되지 않음 | 내보내기 형식, 인코딩, 내용의 완전성 | Shadowrocket에 맞는 출력 형식을 선택했는지 확인 |
| 업데이트 후 일부 항목만 표시됨 | 서버가 반환한 항목 수와 앱 내 필터 조건 | 검색 조건을 지우고 그룹을 펼친 다음 서비스 제공자가 반환할 것으로 안내한 내용과 대조 |
구독 본문을 무작정 반복해서 인코딩하거나 디코딩하지 말고 불필요해 보이는 줄바꿈이나 구분자를 모두 지우지도 마세요. 이런 조작은 원래 형식을 바꿔 서버 문제를 새로운 파싱 문제로 만들 수 있습니다. 편집하지 않은 구독 URL을 다시 받은 뒤 서비스 제공자에게 원본 응답을 확인해 달라고 요청하세요.
규칙 파일은 노드 구독과 다릅니다. DOMAIN-SUFFIX, GEOIP, IP-CIDR, FINAL은 규칙 매칭과 정책 선택에 사용됩니다. 이런 키워드가 포함된 구성 내용이 Home의 Subscribe 그룹에 연결 항목을 생성한다는 뜻은 아닙니다. 형식이 헷갈린다면 서비스 제공자가 준 것이 구독인지 구성 파일인지 먼저 확인하세요.
업데이트 시점 확인하기
서비스 제공자가 계정 권한을 변경하거나 URL을 재설정하거나 구독 내용을 조정한 경우 앱에서 다시 요청해야 새 결과를 받을 수 있습니다. 구독 URL 저장, 업데이트 시작, 파싱 완료는 각각 다른 작업입니다. 실제 완료 안내와 항목 변화를 기준으로 판단하세요. 목록에 변화가 없더라도 반드시 실패한 것은 아닙니다. 서버가 이전과 같은 내용을 반환했을 수 있습니다.
- 저장 후 한 번 확인: URL이 저장됐는지 확인한 다음 해당 구독을 업데이트하세요. 요청이 끝나기 전에 다시 새로고침하면 여러 요청의 안내를 혼동할 수 있습니다.
- 권한 변경 후 확인: 먼저 서비스 제공자에게 변경이 적용됐는지 확인한 뒤 업데이트하세요. URL도 재설정됐다면 먼저 새 주소로 바꿔야 합니다. 이전 주소를 새로고침하는 것만으로는 해결되지 않습니다.
- 네트워크 전환 후 재확인: 같은 URL로 사용 가능한 Wi-Fi와 셀룰러 네트워크에서 각각 업데이트해 어느 쪽에서 완료되는지 기록하세요. 매번 네트워크만 바꾸고 URL이나 프로토콜은 동시에 변경하지 마세요.
- 요청 제한 시 재시도 중단: 요청 횟수 제한이 발생하면 서버 안내에 따라 기다리세요. 모든 구독에 공통으로 적용되는 고정 새로고침 간격은 없으므로 연속해서 버튼을 누르지 마세요.
연결 상태도 함께 기록하세요. Home → Global Routing의 Proxy, Direct, Config, Scene은 라우팅 선택과 관련이 있습니다. Settings → On Demand는 조건에 따른 연결 설정과 관련이 있습니다. 둘 다 구독 내용을 파싱하는 기능은 아닙니다. On Demand는 테스트 중 연결 상태에 영향을 줄 수 있으므로 실제 상태를 확인한 뒤 결과를 비교하세요. 이를 구독 자동 업데이트 스위치로 오해하지 마세요.
요약: 같은 URL로 한 번에 한 가지 조건만 바꿔 확인하세요
같은 구독이 한 네트워크에서는 업데이트되고 다른 네트워크에서는 실패한다면, 먼저 실패한 네트워크에서 구독 도메인까지의 접근 경로를 확인하세요. 두 네트워크 모두 응답을 받지만 파싱에 실패한다면 서비스 제공자에게 출력 내용과 형식을 먼저 확인해 달라고 요청하세요.
목록이 비어 보일 때 표시 상태 확인하기
업데이트 후 명확한 오류는 없는데 Home에 항목이 보이지 않는다면 실제로 빈 목록을 반환한 것인지 판단하기 전에 표시 범위부터 확인하세요. 검색창에 입력된 내용이 있는지, 구독 그룹이 접혀 있는지, 방금 업데이트한 그룹을 보고 있는지 살펴보세요. 이름이 비슷한 구독이 여러 개 있으면 한 그룹의 업데이트 결과를 다른 그룹의 목록과 혼동하기 쉽습니다.
- Home의 검색 조건을 지우고 대상 구독 그룹을 펼쳐 이름 검색 결과만 보고 있는 것은 아닌지 확인하세요.
- 대상 그룹에 저장된 URL이 방금 복사한 주소와 같은지 확인하세요. 점검 중에는 민감한 매개변수가 보이는 스크린샷을 공개하지 마세요.
- 업데이트 전후의 항목 수와 표시된 안내를 기록하세요. 업데이트 시각이 표시되지 않는다면 기기의 현재 시각을 앱이 보고한 업데이트 완료 시각으로 간주하지 마세요.
- 서비스 제공자에게 이번에 해당 계정에서 반환되어야 할 항목을 확인하세요. 서버가 빈 응답을 반환한다면 로컬 새로고침으로 항목이 생기지 않습니다.
항목은 표시되지만 특정 항목만 연결에 실패한다면 해당 항목의 프로토콜, 서버 주소, 포트, 인증 정보를 따로 확인하세요. 구독 요청에 사용하는 HTTPS 포트는 보통 443이지만 URL에 다른 포트를 명시할 수도 있습니다. 이 포트는 구독에 포함된 각 서버의 연결 포트와 반드시 같은 것은 아니므로 모든 항목을 443으로 일괄 변경하지 마세요.
문의 전에 확인 자료 보관하기
위 항목을 확인해도 원인을 찾지 못했다면 재현 가능한 기록으로 정리하세요. 서비스 제공자가 요청 도달 여부, 인증 성공 여부, 당시 반환된 내용을 확인할 수 있도록 정보를 제공하는 것이 목적입니다. 단순히 “사용할 수 없습니다”라고만 보내지 마세요. 정확한 시간, 증상, 재현 절차를 알려 주면 같은 질문을 반복하는 일을 줄이고 연결 문제를 구독 문제로 오해하는 것도 방지할 수 있습니다.
- 발생 위치: Home → Subscribe에서 구독을 업데이트할 때인지, Config에서 구성을 가져올 때인지 구분해 설명하세요. 두 경우는 따로 기록해야 합니다.
- 실제 안내 문구: 실제 표시된 오류를 그대로 기록하세요. 추측한 HTTP 상태를 앱에 표시된 내용처럼 적지 마세요.
- 발생 시각: 서비스 제공자가 요청 기록을 찾을 수 있도록 날짜, 시각, 시간대를 알려 주세요. 이는 문제가 발생한 시각이며 앱 업데이트 날짜가 아닙니다.
- 비교 조건: Wi-Fi 또는 셀룰러 네트워크, 실제 연결 상태, URL 재설정 직후였는지, 각 회차에서 유일하게 변경한 항목을 기록하세요.
- 결과 변화: 업데이트 전후에 항목이 있었는지, 기존 항목이 유지됐는지, 검색 조건을 지웠는지, 서비스 제공자가 반환할 것으로 안내한 내용이 무엇인지 설명하세요.
Shadowrocket은 Apple 플랫폼 전용 유료 앱이며 주로 iPhone과 iPad에서 사용합니다. 앱을 받을 수 있는 유일한 경로는 App Store입니다. 시스템 요구 사항과 구매 가능 여부는 App Store 페이지에 표시된 내용을 기준으로 확인하세요. 앱 출처를 점검하려면 개발자 Shadow Launch Technology Limited, 공식 앱 아이콘, 앱 ID 932747118을 확인한 뒤 구독 문제를 계속 살펴보세요.