이 글은 이미 본인이 이용하는 서비스 제공업체의 구독 링크를 보유한 사용자를 위한 안내입니다. 먼저 요청 실패, 응답을 파싱할 수 없는 경우, 유효한 항목이 없는 경우를 구분하세요. 그런 다음 링크와 계정 상태를 확인하고 마지막으로 Subscribe 업데이트 경로를 점검합니다. 문제를 확인하는 동안 기존 구독과 사용 가능한 항목은 유지하고, 한 번에 조건 하나만 바꾸며 결과를 기록하세요.
1. 먼저 ‘가져오기 실패’와 ‘가져온 뒤 목록이 비어 있음’을 구분하세요
Shadowrocket은 App Store에서 판매되는 클로즈드 소스 상용 앱이며, 일회성 구매 방식입니다. 제품 페이지에서 개발자 Shadow Launch Technology Limited와 앱 ID 932747118을 확인할 수 있습니다. 클라이언트 구매에는 연결 서비스 요금제가 포함되지 않습니다. 이 글에서는 서버나 구독을 제공하거나 판매하거나 추천하지 않습니다.
구독 업데이트는 구독 주소 요청, 응답 내용 읽기, 지원되는 항목을 목록에 추가하는 세 단계로 진행됩니다. 목록이 비어 있다고 해서 반드시 네트워크 연결에 실패한 것은 아닙니다. 서버가 정상적으로 응답해도 로그인 페이지나 오류 안내, 유효한 항목이 없는 내용을 반환할 수 있습니다.
- 요청이 완료되지 않음: 시간 초과, 도메인 이름을 찾을 수 없음 또는 연결 실패로 나타납니다. 먼저 접속 경로를 확인하고 프로토콜 매개변수는 섣불리 바꾸지 마세요.
- 요청은 완료됐지만 파싱에 실패함: 응답 형식을 중점적으로 확인하세요. 웹페이지가 열린다고 해서 가져올 수 있는 구독 내용이라는 뜻은 아닙니다.
- 업데이트 후에도 항목이 없음: 응답에 유효한 항목이 실제로 포함되어 있는지, 계정에 해당 항목을 이용할 권한이 있는지 제공업체에 확인하세요.
- 항목은 표시되지만 연결에 실패함: 가져오기 단계에서는 결과를 얻은 상태이므로 서버 연결 상태와 인증 매개변수를 확인하세요.
2. Subscribe 링크를 확인하고 웹페이지 주소와 혼동하지 마세요
먼저 본인의 서비스 제공업체 계정 페이지에서 전체 구독 주소를 다시 복사하세요. 계정 홈, 주문 페이지, 로그인 페이지와 구독 API는 용도가 서로 다릅니다. 도메인이 같다는 이유만으로 주소가 올바르다고 판단하지 말고, 익숙하지 않은 매개변수를 직접 조합하지 마세요.
https://example.com/sub?token=xxxx
위 내용은 연결에 사용할 수 없는 형식의 예시입니다. https://는 프로토콜 부분이고, /sub는 예시 경로이며, token=xxxx는 예시 인증 매개변수입니다. 실제 API의 경로와 매개변수 이름은 서비스 제공업체가 정하므로 예시와 다를 수 있습니다.
-
기존 기록 유지
먼저 기존 구독의 이름, 현재 항목 수, 오류 메시지를 기록하세요. 기존 목록에 사용 가능한 항목이 있다면 그룹 전체를 먼저 삭제하지 마세요.
-
주소 다시 복사
본인의 서비스 제공업체 페이지에서 복사 기능을 이용해 링크를 가져오세요. 앞뒤에 공백, 줄바꿈, 따옴표 또는 메신저에서 덧붙인 문장 부호가 있는지 확인하세요.
-
Subscribe 선택
Home → 오른쪽 위 ‘+’ → Type → Subscribe로 이동하세요. URL에 전체 구독 주소를 붙여 넣고, 주소 전체를 개별 서버의 Address 또는 Password 입력란에 넣지 마세요.
-
저장하고 새로고침
저장한 뒤 Home으로 돌아가 아래로 당겨 업데이트하세요. 요청이 끝날 때까지 기다린 다음 알림과 항목 수를 기록하고 다음 단계를 결정하세요.
쿼리 매개변수의 &, = 및 퍼센트 인코딩은 인증에 사용될 수 있습니다. 뒤쪽 매개변수를 임의로 삭제하거나 URL을 중복 인코딩하지 마세요. 복사한 문자열에 문자 그대로 &가 포함되어 있다면 조각마다 추측해 수정하지 말고 원래 페이지에서 올바른 링크를 다시 복사하세요.
3. 제공업체 응답 확인: 상태 코드가 유효한 항목을 뜻하지는 않습니다
오류 상세 정보나 제공업체가 제공한 진단 기록에 HTTP 상태 코드가 있다면 이를 바탕으로 원인을 좁힐 수 있습니다. 아래는 표준 HTTP 상태 설명이며, Shadowrocket이 모든 상황에서 같은 오류를 표시한다는 뜻은 아닙니다. 상태 코드가 보이지 않는다면 특정 오류라고 단정하지 마세요.
HTTP 401 Unauthorized
원인과 해결 방법: API 인증을 통과하지 못한 상태이며, 토큰이 없거나 만료됐을 수 있습니다. 유효한 본인 구독 주소를 다시 복사하고 인증 상태를 제공업체에 확인하세요.
HTTP 403 Forbidden
원인과 해결 방법: 서버가 현재 요청을 거부한 상태이며, 계정 권한이나 접근 제한이 원인일 수 있습니다. 발생 시각과 네트워크 종류를 기록한 뒤 거부 사유를 제공업체에 문의하세요. 클라이언트의 비밀번호 입력란을 반복해서 바꾸지 마세요.
HTTP 429 Too Many Requests
원인과 해결 방법: API가 요청 빈도 제한을 적용했습니다. 연속으로 새로고침하지 말고 제공업체 안내나 응답의 Retry-After 지시에 따라 기다린 후 한 번 업데이트하세요.
200 OK는 HTTP 요청이 성공적으로 응답했다는 뜻일 뿐, 내용이 파싱 가능하다는 뜻은 아닙니다. 로그인 페이지, 점검 공지, 인증 페이지에도 이 상태 코드가 사용될 수 있습니다. 브라우저에는 로그인 상태가 남아 있을 수 있지만 클라이언트의 구독 요청에는 같은 세션 정보가 없을 수 있습니다.
- HTML 페이지가 반환됨: 해당 주소가 클라이언트에서 직접 읽을 수 있는 구독 API인지, 브라우저 로그인에 의존하는지 제공업체에 확인하세요.
- 빈 내용이 반환됨: 계정 상태와 구독 권한, API가 유효한 항목을 생성했는지 확인하세요.
- 내용은 반환되지만 파싱에 실패함: 선택한 구독 형식이 Shadowrocket에서 지원되는지 확인하세요. 파일 확장자만 바꿔 형식을 변경하려고 하지 마세요.
- 인증서 오류가 표시됨: 기기의 날짜와 시간을 확인하고 도메인 인증서를 제공업체에 점검해 달라고 요청하세요. 보안 검사를 끄는 방법을 일반적인 해결책으로 사용하지 마세요.
결론: 먼저 API가 무엇을 반환하는지 확인하세요
HTTP 응답을 받았는데도 가져오기에 실패한다면 우선 응답 내용과 형식을 제공업체에 확인하세요. Global Routing을 바꿔도 로그인 페이지가 구독 항목으로 변환되지는 않습니다.
4. 업데이트 시점과 Update via Proxy 확인
구독 API와 구독에 포함된 서버는 테스트 대상이 서로 다릅니다. 일반 웹페이지가 열린다는 것은 일부 네트워크 접속이 정상이라는 뜻일 뿐입니다. 특정 항목의 Connectivity Test가 성공해도 구독 도메인에 현재 접속할 수 있다는 뜻은 아닙니다. 두 테스트 결과를 따로 기록하세요.
Settings → Subscribe에서 Update via Proxy를 확인하세요. 이 설정은 구독 업데이트의 접속 경로를 바꾸는 기능이며, 링크 형식이나 계정 권한을 수정하는 스위치가 아닙니다. 사용할 수 있는 프록시 연결이 먼저 준비되어 있어야 합니다. 그렇지 않으면 항목을 받아야 업데이트할 수 있는데, 업데이트하려면 그 항목이 필요한 상황이 반복될 수 있습니다.
- 현재 목록을 유지한 채 안정적인 네트워크에서 업데이트를 한 번 완료하고 시간 초과 여부를 기록하세요.
- 사용 가능한 항목이 있다면 먼저 해당 항목을 선택해 연결을 켜고 실제 접속이 정상인지 확인하세요.
- Settings → Subscribe로 이동해 Update via Proxy를 켠 다음 Home으로 돌아가 아래로 당겨 한 번 업데이트하세요.
- 두 번의 결과를 비교하세요. 업데이트 경로를 바꾼 뒤 결과도 달라졌을 때에만 해당 경로의 연결 상태를 더 확인할 근거가 생깁니다.
- 401, 403 또는 내용 파싱 오류가 명확히 나타나면 인증과 응답 내용 확인으로 돌아가세요. 운에 맡기듯 네트워크를 계속 바꾸지 마세요.
처음 가져오는 중이고 사용 가능한 항목이 전혀 없다면 Update via Proxy를 필수 조건으로 여기지 마세요. 본인이 이용 권한을 가진 다른 안정적인 네트워크에서 한 번 비교해 볼 수 있습니다. API에 여전히 접속할 수 없다면 필요한 접속 조건을 제공업체에 확인하세요.
5. 항목이 표시되면 ‘빈 구독’ 문제 해결을 중단하세요
목록에 서버 항목이 표시된다면 적어도 일부 내용은 정상적으로 파싱된 것입니다. 같은 주소를 반복해서 가져오기보다 해당 항목을 테스트하세요. 제공업체가 비밀번호, 포트 또는 서버 주소를 변경한 뒤에도 이전 항목이 기기에 남아 있을 수 있으므로 이번 업데이트가 실제로 성공했는지 먼저 확인하세요.
- Home → Connectivity Test: 선택한 항목의 연결 상태를 확인합니다. 한 번 성공했다고 모든 웹사이트, 프로토콜, 시간대에 문제가 없다는 뜻은 아닙니다.
- Home → Global Routing: 현재 Proxy, Direct, Config 또는 Scene 중 무엇을 선택했는지 확인하세요. Direct에서 직접 연결에 성공해도 선택한 프록시 항목이 작동한다는 근거가 되지 않습니다.
- Config 사용 시: 현재 설정의 매칭 규칙과 정책을 확인하세요.
DOMAIN-SUFFIX,IP-CIDR,GEOIP및FINAL은 트래픽 처리 방식을 결정하며 구독 목록을 생성하지 않습니다. - 일부 항목만 사용 가능함: 실패한 항목의 이름과 테스트 시각을 기록해 제공업체에 해당 서버를 확인해 달라고 요청하세요. 구독 전체를 삭제할 필요는 없습니다.
구독 API가 HTTPS 기본 포트 443을 사용하더라도 구독에 포함된 서버가 443을 사용한다는 뜻은 아닙니다. Shadowsocks, VMess, VLESS, Trojan, Hysteria2, WireGuard는 각각 연결 매개변수가 다릅니다. 구독 URL의 포트를 모든 항목에 그대로 입력하거나 테스트를 통과하려고 Type을 임의로 바꾸지 마세요.
6. 제공업체에 문의하기 전에 재현에 필요한 정보를 정리하세요
클라이언트에서 링크, 업데이트 경로, 표시된 안내를 확인할 수는 있지만 제공업체를 대신해 계정 권한을 복구하거나 API 인증서를 고치거나 원격 항목을 생성할 수는 없습니다. 문의할 때는 단순히 ‘작동하지 않는다’고만 쓰지 말고 어느 단계에서 문제가 발생했는지 설명하세요.
- 발생 시각: 서버 로그와 대조할 수 있도록 날짜, 정확한 시각, 시간대를 기록하세요.
- 네트워크 환경: Wi-Fi 또는 셀룰러 네트워크 중 무엇을 사용했는지, 다른 네트워크에서도 재현되는지 설명하세요.
- 업데이트 경로: Update via Proxy의 설정 상태를 알리세요. 켜져 있었다면 의존한 연결이 정상 작동하는지 확인했는지도 설명하세요.
- 표시된 결과: 오류 원문, HTTP 상태 코드(있는 경우), 업데이트 전후 항목 수를 제공하고 추측한 원인을 덧붙이지 마세요.
- 개인정보 보호: 공개용 스크린샷에서는 전체 구독 URL, token, 비밀번호, 계정 정보를 가리세요. 전체 인증 정보는 제공업체의 비공개 지원 절차를 통해서만 전달하세요.
결론: 한 번에 조건 하나만 바꾸세요
기존 기록을 유지하고 링크, 네트워크, 업데이트 경로를 각각 테스트하세요. 구독을 새로 만들고 네트워크를 바꾸고 연결 설정까지 동시에 수정하면 문제가 해결되더라도 무엇이 원인이었는지 알기 어렵습니다.
7. 구독 가져오기 및 업데이트 FAQ
브라우저에서는 링크가 열리는데 왜 가져오기에 실패하나요?
먼저 열린 페이지가 구독 내용인지 로그인 페이지인지 확인하세요. 브라우저에는 계정 세션이 유지될 수 있습니다. 서비스 제공업체 페이지에서 구독 주소를 다시 복사한 다음 Home → ‘+’ → Type → Subscribe에서 추가하세요. 그래도 실패하면 클라이언트에서 API에 직접 접속할 수 있는지 제공업체에 확인하세요.
업데이트에 실패하면 기존 구독을 바로 삭제해야 하나요?
먼저 삭제하지 마세요. 기존 그룹과 사용 가능한 항목을 유지하고 오류를 기록한 뒤 URL과 업데이트 경로를 확인하세요. 기록을 삭제해도 원격 인증 문제는 해결되지 않으며, 이후 결과를 비교하기 어려워질 수 있습니다.
구독 링크를 재설정했는데 기존 링크도 계속 사용할 수 있나요?
기존 링크가 즉시 만료되는지는 제공업체가 결정합니다. 재설정한 뒤에는 해당 Subscribe 항목에 새 전체 URL을 입력하고 수동으로 한 번 새로고침하세요. 이전 목록이 기기에 남아 있어도 기존 링크의 접근 권한이 유지된다는 뜻은 아닙니다.
Update via Proxy를 켠 뒤에도 시간 초과가 발생하면 어떻게 하나요?
먼저 현재 프록시 연결 자체가 작동하는지 확인한 다음, 해당 경로로 구독 API에 접속할 수 있는지 점검하세요. 사용할 수 있는 연결이 없다면 검증 가능한 업데이트 경로부터 복구하세요. 두 경로 모두 실패한다면 발생 시각, 네트워크 환경, 오류 메시지를 제공업체에 전달하세요.
Shadowrocket을 구매했는데 Home이 비어 있는 이유는 무엇인가요?
구매한 것은 클라이언트이며 연결 서비스 요금제는 포함되지 않습니다. 본인이 서비스 제공업체의 구독을 보유한 경우 Subscribe 절차에 따라 가져와야 합니다. 앱은 Apple 플랫폼에서만 제공되며 iPhone과 iPad를 주 대상으로 합니다. 시스템 요구 사항은 App Store 페이지의 안내를 확인하세요.