Shadowrocket 구독 가져오기 실패·목록 비어 있음: 링크 형식과 업데이트 시점 확인

Subscribe 파싱에 실패하거나 목록이 비어 있다면 링크 형식, 서비스 제공자 측 상태, 업데이트 시점을 차례로 확인한 뒤 다시 가져오세요.

이 글의 핵심

서비스 제공자와 구독을 이미 이용 중이지만 Shadowrocket에서 구독을 가져오지 못하거나 업데이트 후 서버가 보이지 않는 경우에 해당하는 안내입니다. 링크 유효성, 요청 결과, 응답 내용, 다시 가져오기 순서로 확인합니다. 기존 설정을 먼저 보존한 뒤 결과를 비교할 수 있도록 한 번 업데이트해, 접속 실패·빈 응답·연결 실패를 구분하세요.

가져오기 실패, 빈 목록, 연결 실패를 구분하기

Subscribe는 지정한 주소에서 내용을 가져와 인식 가능한 서버 설정을 목록에 추가합니다. 구독 항목을 저장했다고 해서 유효한 내용을 가져온 것은 아닙니다. 목록에 서버가 표시되어도 실제로 연결된다는 뜻은 아닙니다. 먼저 어느 단계에서 막혔는지 확인한 뒤 해당 설정을 조정하세요. 목록 전체를 반복해서 삭제하는 것보다 원인을 파악하기 쉽습니다.

링크 읽기 주소 요청 내용 가져오기 설정 파싱 목록 표시

Home에서는 서버와 연결 상태를 확인하고, Config에서는 구성 파일을 관리하며, Settings에서는 앱 설정을 조정합니다. Subscribe 요청 오류를 해결하려고 Config를 먼저 비우지 마세요. 서로 다른 항목을 다룹니다. 이 글에서는 일반적인 해결책으로 Global Routing을 변경하지 않습니다. 구독 업데이트 요청의 실제 경로는 관련 설정과 현재 네트워크 환경에도 영향을 받습니다.

Subscribe 링크의 원래 문자를 그대로 확인하기

구독 주소에는 보통 도메인, 경로, 쿼리 매개변수가 포함됩니다. 쿼리 매개변수의 token은 액세스 인증 정보이므로 문자 하나만 빠져도 다른 요청이 될 수 있습니다. 본인이 이용하는 서비스 제공자의 구독 페이지에서 직접 복사하세요. 메신저 미리 보기나 스크린샷의 문자 인식 결과, 중간이 생략된 주소 표시줄 내용을 조합해 만들지 마세요.

https://example.com/sub?token=xxxx

위 주소는 실제 연결에 사용할 수 없는 예시입니다. 형식 설명에만 사용하세요. https://는 접속 방식, example.com은 예시 도메인, /sub는 예시 경로, token=xxxx는 예시 매개변수입니다. 실제 주소의 경로와 매개변수 이름은 다를 수 있으므로 서비스 제공자가 안내한 원문을 기준으로 하세요. 예시를 따라 실제 링크를 바꾸면 안 됩니다.

443
HTTPS에서 포트를 지정하지 않았을 때 사용하는 기본 포트
?
URL 경로와 쿼리 부분을 구분하는 기호
&
쿼리 부분에서 여러 매개변수를 구분할 때 흔히 쓰는 기호

요약: 링크를 다시 복사해 결과 비교하기

주소가 잘렸을 가능성이 있다면 계정에서 전체 링크를 다시 복사하고 기존 항목은 비교용으로 남겨 두세요. token을 기억에 의존해 채우지 말고, 전체 주소를 공개 게시판이나 온라인 검사 도구에 보내지 마세요.

요청 결과로 네트워크 문제와 서버 문제 구분하기

HTTP 오류 상태를 받은 경우와 응답을 전혀 받지 못한 경우는 해결 방법이 다릅니다. 아래 카드에는 진단 정보나 서비스 제공자의 응답 기록과 대조할 수 있도록 표준 HTTP 상태 문구를 정리했습니다. Shadowrocket의 안내 문구는 다를 수 있으므로 화면에 영어 문구가 똑같이 표시될 필요는 없습니다. 상태 코드가 없다면 인증 정보가 만료됐다고 추측하지 말고 앱에 실제로 표시된 안내를 기록하세요.

HTTP 401 Unauthorized

원인 및 해결 방법: 서버가 현재 인증 정보를 받아들이지 않았습니다. 링크가 완전한지, 인증 정보가 재설정되었는지 확인한 다음 계정에서 현재 유효한 구독 주소를 다시 복사하세요.

HTTP 403 Forbidden

원인 및 해결 방법: 서버가 이번 접속을 거부했지만 상태 코드만으로 원인을 확정할 수는 없습니다. 계정 권한, 접속 제한 또는 보안 차단 여부를 서비스 제공자에게 확인하고 인증 정보를 가린 오류 기록을 전달하세요.

HTTP 404 Not Found

원인 및 해결 방법: 요청한 경로를 찾지 못했거나 서버가 리소스를 숨기는 방식으로 응답했을 수 있습니다. 도메인과 경로를 먼저 대조한 뒤 구독 엔드포인트가 변경되었는지 확인하세요. token만 바꾸어 계속 시도하지 마세요.

HTTP 429 Too Many Requests

원인 및 해결 방법: 요청이 빈도 제한에 걸렸습니다. 연속으로 새로고침하지 마세요. 응답에 Retry-After가 있다면 지정된 간격이나 시각에 다시 시도하고, 표시되지 않았다면 서비스 제공자의 안내에 따라 기다리세요.

HTTP 503 Service Unavailable

원인 및 해결 방법: 서버가 일시적으로 요청을 처리할 수 없습니다. 기존 설정을 보존하고 서버 상태와 복구 일정을 확인하세요. 구독을 반복해서 삭제하고 다시 만들어도 서버 장애는 해결되지 않습니다.

시간 초과, 도메인 확인 실패 또는 TLS 검증 오류가 발생하면 먼저 현재 iPhone 또는 iPad 네트워크에서 일반 HTTPS 접속이 가능한지 확인하세요. 그런 다음 Wi-Fi와 셀룰러 네트워크를 각각 사용해 결과를 비교하세요. 한 번에 네트워크만 바꾸고 결과를 기록합니다. 인증서 오류가 표시되면 시스템 날짜와 시간이 올바른지도 확인하세요. 인증서 검증을 끄는 방식으로 문제를 우회하지 마세요.

응답은 성공했지만 내용이 비어 있다면 상태가 아닌 응답 내용을 확인하기

HTTP 200은 HTTP 수준에서 요청이 성공했다는 뜻이지, 응답 본문이 Shadowrocket에서 인식할 수 있는 구독 내용이라는 뜻은 아닙니다. 로그인 페이지, 만료 안내 페이지, 보안 확인 페이지도 200을 반환할 수 있습니다. 이런 페이지는 웹 문서일 뿐, 바로 가져올 수 있는 서버 목록이 아닙니다. 브라우저에서 페이지가 열린다는 사실만으로 구독이 정상이라고 판단할 수 없습니다.

확인된 결과문제가 발생했을 수 있는 단계다음 단계
로그인 페이지 또는 보안 확인 페이지가 반환됨예상한 구독 본문을 가져오지 못함구독 전용 엔드포인트를 사용 중인지 확인하고 접속 요건을 서비스 제공자에게 문의하세요
응답 본문이 비어 있음서버에서 서버 설정을 출력하지 않음계정 상태와 해당 구독에 현재 항목이 포함되어야 하는지 확인하세요
내용은 있지만 형식이 맞지 않음응답 형식과 가져오기 메뉴가 맞지 않음서비스 제공자가 안내한 형식이 Shadowrocket에서 지원되는 구독 형식인지 확인하세요
항목은 있지만 기본 목록이 펼쳐지지 않음목록 표시 상태Home에서 해당 그룹을 펼치고 필터 조건을 확인하세요

계정 만료, 권한 변경, 서버 점검 또는 구독 생성 미완료 등은 응답 내용에 영향을 줄 수 있지만, 목록이 비어 있다는 이유만으로 원인을 단정할 수는 없습니다. 계정 페이지에서 상태를 확인하고 해당 링크가 현재 유효한 설정을 몇 개 반환해야 하는지 서비스 제공자에게 문의하세요. 계정 페이지에 표시된 요금제 이름만으로 유효한 구독이 생성되었다고 판단하지 마세요.

프로토콜 이름과 구독 인코딩 형식은 구분해서 이해해야 합니다. Shadowsocks, VMess, VLESS, Trojan, Hysteria2, WireGuard는 연결 설정에 사용되는 프로토콜 또는 터널 유형입니다. 이런 이름이 들어간 텍스트라면 무엇이든 Subscribe가 파싱할 수 있다는 뜻은 아닙니다. 인코딩된 내용을 직접 수정하거나 프로토콜 필드를 조합하지 마세요. 매개변수를 직접 입력해야 한다면 해당 메뉴와 전체 매개변수 안내를 따르세요.

요약: HTTP 200과 유효한 항목 여부는 별도로 확인하기

요청은 성공했지만 항목이 없다면 먼저 서버가 인식 가능한 내용을 실제로 반환했는지 확인한 다음 앱의 목록 표시 상태를 살펴보세요. 이때 DOMAIN-SUFFIX나 FINAL 같은 라우팅 규칙을 조정해도 빈 응답이 서버 설정으로 바뀌지는 않습니다.

기존 설정을 보존하고 순서대로 다시 가져오기

다시 가져오기는 주소를 잘못 복사했는지, 기존 항목에 저장된 주소가 더 이상 유효하지 않은지 확인할 때 유용합니다. 실패할 때마다 가장 먼저 할 작업은 아닙니다. 시작하기 전에 기존 구독 이름과 항목 수를 기록하세요. 이미 사용 가능한 설정이 있다면 보존하고 Home 목록 전체를 삭제하지 마세요. 화면 배치는 다를 수 있으므로 같은 영어 메뉴 이름을 기준으로 작업하세요.

  1. 현재 상태 기록하기

    Home에서 기존 구독 그룹을 확인하고 표시되는 서버 수와 최근 업데이트 결과를 기록하세요. 기존 항목은 보존하고 문제를 확인하는 동안 Config나 서버 매개변수를 동시에 변경하지 마세요.

  2. 주소 복사하기

    본인이 이용하는 서비스 제공자의 계정 페이지에서 전체 구독 링크를 다시 복사하세요. 방금 인증 정보를 재설정했다면 새 주소를 사용하고 기존 주소가 더 이상 유효하지 않은지도 확인하세요.

  3. 유형 선택하기

    Home → 오른쪽 상단의 “+” → Type → Subscribe로 이동하세요. 추가 화면으로 돌아와 URL 입력란에 링크를 붙여 넣고, 이번 테스트 항목을 기존 항목과 구분하기 쉬운 메모를 입력하세요.

  4. 저장하고 업데이트하기

    저장한 다음 Home으로 돌아가 아래로 당겨 업데이트를 시작하고 요청이 끝날 때까지 기다리세요. 실제로 표시된 안내를 기록하고 요청 중에는 연속으로 아래로 당기지 마세요. 구독이 여러 개라면 어느 항목에서 오류가 났는지 확인하세요.

  5. 목록 확인하기

    새 구독 그룹을 펼쳐 서버가 표시되는지와 항목 수를 확인하세요. 새 항목이 정상적으로 동작하는 것을 확인한 뒤 중복 항목을 정리하세요. 기존 항목과 새 항목이 모두 실패하면 오류 기록을 보존하고 네트워크 또는 서버를 확인하세요.

새 주소는 가져올 수 있지만 기존 주소는 계속 실패한다면 저장된 URL과 인증 정보 상태를 우선 비교하세요. 두 항목 모두 서버를 표시하지만 연결만 실패한다면 이번 구독 가져오기 점검은 여기서 마치고 선택한 서버를 별도로 확인하세요. 지연 시간 테스트 실패를 Subscribe 파싱 실패로 기록하지 마세요.

업데이트 시점과 결과 기록

구독을 업데이트하면 서버에 다시 요청하지만 만료된 계정 권한이 복구되거나 요청 빈도 제한이 즉시 해제되는 것은 아닙니다. 인증 정보 재설정, 권한 복구 또는 내용 변경 후에는 서버 측에서 적용이 완료되었는지 확인한 다음 수동으로 한 번 업데이트하세요. 자동 업데이트의 활성화 여부와 실행 시점은 설정 및 시스템 실행 조건에 따라 달라집니다. 앱을 열었다는 이유만으로 업데이트가 성공했다고 판단하지 마세요.

문제를 문의할 때 준비할 정보

유용한 문의 내용은 작업을 재현할 수 있고 접속 인증 정보도 보호해야 합니다. 본인이 이용하는 서비스 제공자에게 발생 시각, 사용한 네트워크, 가져오기 메뉴, 업데이트 전후 항목 수, 실제 오류 문구를 전달하세요. 기록에 전체 URL이 포함되어 있다면 token, 계정 식별 정보 및 기타 인증 매개변수를 가리세요. 구독 응답 본문, 서버 비밀번호 또는 QR 코드는 보내지 마세요.

메뉴: Home → + → Type → Subscribe
작업: 저장한 뒤 Home으로 돌아가 한 번 아래로 당겨 업데이트
증상: 기존 항목은 남아 있지만 새 구독 그룹에 서버가 표시되지 않음
비교: Wi-Fi와 셀룰러 네트워크에서 각각 업데이트 결과 기록
오류: 실제 안내 문구를 기록하고 현상만으로 상태 코드를 추측하지 않기
개인정보: 문의 자료에서 URL 인증 정보와 계정 정보 숨기기

마지막으로 세 단계의 결과를 구분하세요. 요청이 완료되지 않았다면 네트워크와 엔드포인트를 확인하고, 요청은 완료됐지만 유효한 항목이 없다면 응답 내용과 계정 상태를 확인하세요. 항목은 표시되지만 연결되지 않는다면 서버 설정과 연결 과정을 살펴보세요. 한 번에 한 단계씩 점검하면 설정을 잘못 삭제할 가능성이 줄고, 이후 문의에도 명확한 근거를 제시할 수 있습니다.

App Store 공식 다운로드 개발자와 앱 ID를 먼저 확인하세요