직접 이용 중인 서비스 제공업체와 구독 링크가 있고 서버 목록을 새로고침하려는 사용자를 위한 안내입니다. 먼저 Home에서 수동으로 새로고침해 링크가 정상적으로 데이터를 반환하는지 확인한 다음, Settings → Subscribe에서 앱 실행 시 업데이트를 켜세요. 실패하면 접근 권한, 네트워크 경로, 응답 형식 순으로 확인합니다. 구독 업데이트, Config 업데이트, 앱 업데이트는 서로 다른 작업이므로 대체할 수 없습니다.
구독을 업데이트하면 달라지는 점
Shadowrocket은 구독 주소를 저장한 뒤 해당 주소에서 서버 정보를 가져옵니다. 이후 새로고침할 때도 같은 주소에 접속해 응답 내용에 따라 목록의 서버와 연결 매개변수 등을 업데이트합니다. 따라서 목록에 새 항목이 없더라도 업데이트 실패라고 단정할 수는 없습니다. 서비스 제공업체가 이전과 같은 내용을 반환했을 수 있습니다.
아래 작업은 서로 구분해 확인해야 엉뚱한 곳에서 반복해서 새로고침하는 일을 막을 수 있습니다. 이 글은 iPhone / iPad의 Home 및 Settings 화면을 기준으로 설명합니다. 다른 플랫폼은 화면 구성이 다를 수 있지만 네트워크 요청과 구독 응답을 확인하는 순서는 동일하게 적용할 수 있습니다.
| 작업 대상 | 작업 목적 | 대신할 수 없는 작업 |
|---|---|---|
| Home의 구독 | 서버 목록과 연결 매개변수를 다시 가져옵니다. | 서비스 제공업체 계정을 갱신하지 않으며 규칙 업데이트와도 다릅니다. |
| Config의 구성 | 구성 파일과 그 안의 규칙, DNS 등의 설정을 관리합니다. | Home의 구독 목록을 새로고침하는 작업이 아닙니다. |
| Shadowrocket 앱 | 클라이언트 앱 자체를 업데이트합니다. | 만료된 구독 주소를 자동으로 다시 유효하게 만들지는 않습니다. |
Home에서 구독 수동 새로고침
먼저 한 번 수동 업데이트해 주소와 네트워크가 정상인지 확인한 다음 자동 업데이트를 켜세요. 기존 구독을 먼저 삭제하지 마세요. 기존 서버를 계속 사용할 수 있고, 새 주소에 접속할 수 없으면 문제를 확인하는 데 필요한 이전 기록까지 사라질 수 있습니다.
-
구독 확인
Home을 열고 본인의 구독 그룹을 찾아 단일 서버만 직접 추가한 상태가 아닌지 확인하세요. 직접 입력한 단일 서버 정보에는 목록을 새로고침할 구독 주소가 없습니다.
-
주소 추가
아직 구독을 추가하지 않았다면 Home → 오른쪽 위 ‘+’ → Type → Subscribe로 이동해 URL에 전체 구독 링크를 입력하세요. 알아보기 쉬운 이름을 지정한 뒤 저장합니다.
-
아래로 당겨 새로고침
Home의 서버 목록으로 돌아가 목록 맨 위에서 아래로 당겼다가 놓고 업데이트가 끝날 때까지 기다리세요. 목록이 길면 먼저 맨 위로 이동합니다. 알림 센터를 아래로 당기는 동작은 앱 내 새로고침이 아닙니다.
-
결과 확인
오류 메시지가 표시되는지 확인한 뒤 대상 구독의 서버 이름과 개수를 살펴보세요. 구독이 여러 개라면 대상 그룹을 각각 확인해야 합니다. 한 그룹만 바뀐 것을 보고 모든 구독이 성공적으로 업데이트됐다고 판단하면 안 됩니다.
-
연결 테스트
업데이트된 서버를 선택해 연결을 테스트하세요. 서버나 연결 매개변수를 변경했다면 연결을 끊었다가 다시 연결한 뒤 웹페이지 접속을 확인합니다. 기존 연결 상태를 새 매개변수의 결과로 오인하지 않도록 하세요.
구독 주소에는 계정 인증 정보가 포함되는 경우가 많습니다. 예를 들어 https://example.com/sub?token=xxxx는 실제 서비스를 이용할 수 없는 가짜 예시입니다. 실제 주소를 복사할 때는 쿼리 매개변수를 포함해 전체 주소를 복사하고, 물음표 뒤 내용을 빠뜨리지 마세요. 주소 앞뒤의 따옴표나 공백, 메신저에서 덧붙인 문구도 함께 붙여 넣지 않도록 합니다.
앱 실행 시 자동 업데이트 설정
앱을 열 때 최신 목록을 가져오려는 경우 앱 실행 시 자동 업데이트를 사용할 수 있습니다. 이 기능은 앱을 여는 시점에 업데이트를 시작할 뿐, 앱이 닫힌 뒤에도 시스템이 구독에 계속 또는 정기적으로 접속한다는 뜻은 아닙니다. 네트워크를 사용할 수 없을 때 업데이트 성공을 보장하지도 않습니다.
-
설정 열기
Settings → Subscribe로 이동해 Update on Open을 찾으세요. 화면 언어에 따라 표시 문구가 다를 수 있으므로 구독 설정에서 앱 실행 시 업데이트에 해당하는 스위치를 확인합니다.
-
업데이트 켜기
Update on Open을 켠 뒤 Home으로 돌아가세요. 이 스위치는 업데이트를 시작하는 시점만 바꾸며 URL을 교체하거나 만료된 계정 인증 정보를 복구하지는 않습니다.
-
앱 다시 열기
네트워크를 사용할 수 있을 때 앱을 다시 열고 새로고침 결과를 확인하세요. 앱 안에서 Home과 Settings 화면만 오가는 것은 앱을 다시 열 때 업데이트가 실행되는지 확인하는 방법이 아닙니다.
-
수동 확인도 유지
서비스 제공업체에서 목록이 변경됐다고 알렸는데 현재 목록에 반영되지 않았다면 Home으로 돌아가 아래로 당겨 새로고침할 수 있습니다. 오류가 나타나면 먼저 메시지를 기록하고 짧은 간격으로 연속 재시도하지 마세요.
Settings → On Demand는 조건에 따라 VPN 연결을 설정하는 기능이지 구독 예약 작업이 아닙니다. On Demand를 켜도 Update on Open이 활성화되는 것은 아닙니다. 반대로 자동 업데이트가 성공해도 VPN이 연결됐다는 뜻은 아닙니다. 구독 새로고침 결과와 Home의 연결 상태를 각각 확인하세요.
프록시 또는 직접 연결로 업데이트
구독 주소에 접속할 수 있는지와 목록의 서버에 연결할 수 있는지는 서로 다른 문제입니다. 서버가 정상적으로 작동해도 구독 사이트에 현재 접속할 수 없을 수 있고, 구독을 내려받을 수 있어도 목록의 모든 서버가 연결된다는 뜻은 아닙니다. 먼저 어느 단계에서 실패했는지 확인한 다음 요청 경로를 바꿀지 결정하세요.
| 확인 항목 | 용도 | 판단 기준 |
|---|---|---|
| Settings → Subscribe → Update via Proxy | 구독 업데이트 요청을 프록시를 통해 보낼지 설정합니다. | 직접 연결에 실패하고 사용할 수 있는 프록시가 있다면 켠 뒤 다시 시도할 수 있습니다. |
| Home → Global Routing | Proxy, Direct, Config 또는 Scene 등의 라우팅 방식을 선택합니다. | 기존 설정을 기록해 두세요. 구독을 새로고침하려고 평소 라우팅 설정을 계속 바꾸지 마세요. |
| Settings → On Demand | 설정된 조건에 따라 VPN 연결을 시작합니다. | 연결을 끊은 상태에서 직접 연결 문제를 확인할 때 연결이 다시 설정되는지 살펴보세요. |
현재 네트워크에서 구독 주소에 직접 접속할 수 없다면, 먼저 연결 가능한 기존 서버를 사용해 연결한 뒤 Settings → Subscribe에서 Update via Proxy를 켜고 Home으로 돌아가 새로고침하세요. 기존 서버를 모두 사용할 수 없다면 ‘프록시를 통한 업데이트’를 해결책으로 쓸 수 없습니다. 이 경우 신뢰할 수 있는 다른 네트워크를 이용하거나 본인의 서비스 제공업체에 주소에 직접 접속할 수 있는지 문의하세요.
- 한 번에 변수 하나만 바꾸세요. 먼저 Wi-Fi와 셀룰러 네트워크를 바꿔 보거나 Update via Proxy만 전환한 뒤 새로고침 결과를 비교합니다.
- 공용 Wi-Fi는 먼저 네트워크 로그인 절차를 완료해야 합니다. 인증 전에는 요청이 구독 데이터 대신 로그인 페이지로 연결될 수 있습니다.
- 확인이 끝나면 기존 Global Routing 설정으로 되돌리세요. 한 번 업데이트하려고 계속 Proxy로 설정해 둘 필요는 없습니다.
오류 메시지로 원인 찾기
오류 문구는 앱, 시스템 네트워크 계층 또는 구독 서버에서 표시할 수 있으며 언어와 구체적인 표현은 다를 수 있습니다. 아래는 자주 볼 수 있는 메시지와 HTTP 상태 코드의 예입니다. 실제 대응은 화면에 표시된 메시지를 기준으로 하세요. ‘업데이트 실패’라는 문구만 보고 계정이 만료됐다고 판단하지 마세요.
오류: The request timed out.
원인 및 해결 방법: 허용된 시간 안에 요청이 완료되지 않았습니다. 네트워크 경로에 문제가 있거나 서버 응답이 느릴 수 있습니다. 먼저 네트워크를 바꿔 한 번 다시 시도하세요. 사용할 수 있는 연결이 있다면 Update via Proxy를 켰을 때의 결과도 비교하되, 요청 부담이 커지지 않도록 연속으로 새로고침하지 마세요.
오류: A server with the specified hostname could not be found.
원인 및 해결 방법: 구독 도메인을 확인할 수 없습니다. URL의 호스트 이름이 빠짐없이 복사됐는지 확인하고, 현재 네트워크에서 다른 도메인도 정상적으로 확인되는지 살펴보세요. 구독 도메인이 변경됐는지는 본인의 서비스 제공업체에 문의하세요.
오류: 401 Unauthorized
원인 및 해결 방법: 서버가 현재 요청의 인증 정보를 받아들이지 않았습니다. 본인의 서비스 제공업체 계정에서 링크가 재설정됐는지 확인하고 전체 URL을 다시 복사하세요. 기존 token을 그대로 둔 채 링크의 도메인만 바꾸지 마세요.
오류: 403 Forbidden
원인 및 해결 방법: 서버가 요청을 거부했습니다. 계정 권한이나 접근 제한과 관련된 문제일 수 있습니다. 서비스 상태를 확인하고 상태 코드와 발생 시각을 본인의 서비스 제공업체에 전달하세요. 규칙을 반복해서 전환해도 서버 측 권한 제한은 해결되지 않습니다.
오류: 404 Not Found
원인 및 해결 방법: 현재 경로에서 리소스를 찾지 못했습니다. 링크 경로가 잘렸거나 기존 주소가 폐기됐을 수 있습니다. 전체 구독 주소를 다시 받으세요. 계정 로그인 페이지 주소를 구독 URL로 사용하지 마세요.
오류: 429 Too Many Requests
원인 및 해결 방법: 요청 횟수가 서버 제한에 도달했습니다. 계속 아래로 당겨 새로고침하지 말고 서버에서 허용하는 재시도 시간까지 기다리세요. 응답에 Retry-After가 포함돼 있다면 안내된 시간만큼 기다린 뒤 한 번 업데이트합니다.
인증서 확인 오류는 별도로 처리해야 합니다. 먼저 기기의 날짜와 시간이 정확한지 확인한 다음 신뢰할 수 있는 네트워크에서 다시 확인하고, 본인의 서비스 제공업체에 인증서 유효 기간과 도메인 일치 여부를 점검해 달라고 요청하세요. 인증서 검증을 꺼서 문제를 숨기지 마세요. 그러면 구독 응답이 예상한 서버에서 온 것인지 신뢰성 있게 확인할 수 없습니다.
형식 오류 및 목록이 바뀌지 않는 문제
네트워크 요청 성공이 구독 파싱 성공을 의미하지는 않습니다. HTTP 200은 서버가 응답을 정상적으로 반환했다는 뜻일 뿐, 응답 본문이 계정 로그인 페이지나 접근 확인 페이지, 만료 안내 또는 빈 내용일 수 있습니다. 이런 경우에는 Global Routing을 계속 바꾸지 말고 반환된 내용의 유형을 확인하세요.
- 웹페이지가 반환됨: 주소를 열었을 때 로그인을 요구하거나 전체 웹페이지가 표시된다면 구독 링크가 아니라 계정 페이지 주소를 복사한 것은 아닌지 확인하세요. 브라우저에서 계정에 로그인할 수 있다고 해서 앱의 구독 요청에 접근 권한이 부여된 것은 아닙니다.
- 빈 내용이 반환됨: 해당 계정에서 이용 가능한 항목이 있는지, 현재 주소가 데이터를 반환해야 하는지 본인의 서비스 제공업체에 확인하세요. 백업 없이 기존 그룹을 삭제한 뒤 반복해서 다시 가져오지 마세요.
- 형식을 파싱할 수 없음: 서비스 제공업체가 Shadowrocket용으로 명시한 구독 형식을 사용하세요. 파일 확장자만으로 호환 여부를 판단하지 말고, 웹페이지 본문을 임의로 변환해 다시 가져오지도 마세요.
- 일부 항목만 표시됨: 누락된 항목의 프로토콜과 매개변수가 현재 클라이언트에서 지원되는지 확인하세요. Shadowsocks, VMess, VLESS, Trojan, Hysteria2, WireGuard는 사용하는 필드가 서로 다르므로 프로토콜 이름만 바꿔 연결 정보를 변환할 수는 없습니다.
- 업데이트 후 항목 수가 같음: 서버 이름과 매개변수가 바뀌었는지 비교하세요. 개수가 같아도 내용은 달라질 수 있으며, 내용에 변경이 없다면 업데이트 확인을 위해 항목을 억지로 추가할 필요는 없습니다.
구독 업데이트 자주 묻는 질문
자동 업데이트를 켰는데 목록이 그대로인 이유는 무엇인가요?
먼저 Home에서 아래로 당겨 새로고침하고 오류 메시지가 표시되는지 확인한 다음 Settings → Subscribe → Update on Open을 확인하세요. 수동 새로고침도 실패한다면 주소나 네트워크 문제를 해결해야 합니다. 수동 새로고침은 성공했지만 내용이 같다면 원본 목록이 실제로 변경됐는지 본인의 서비스 제공업체에 문의하세요.
업데이트에 성공했는데 웹페이지가 열리지 않는 이유는 무엇인가요?
업데이트 성공은 목록을 가져와 파싱했다는 뜻일 뿐입니다. Home으로 돌아가 사용할 수 있는 서버를 선택하고 다시 연결한 뒤 Global Routing을 확인하세요. Config를 사용한다면 해당 구성의 DNS, 규칙, FINAL 정책도 확인합니다. 웹페이지 문제를 곧바로 구독 오류로 판단하지 마세요.
업데이트할 때마다 링크를 다시 가져와야 하나요?
그럴 필요 없습니다. 구독 주소가 여전히 유효하다면 Home에서 새로고침하면 됩니다. 본인의 서비스 제공업체가 주소를 변경하거나 인증 정보를 재설정했거나 기존 링크를 폐기한 경우에만 구독 주소를 수정하세요. 같은 링크를 반복해서 추가하면 구분하기 어려운 그룹이 여러 개 생길 수 있습니다.
앱을 구매했는데 구독은 왜 만료됐다고 표시되나요?
클라이언트 앱 구매와 서버 회선 요금제는 별개입니다. iPhone / iPad 버전은 App Store에서 $2.99에 한 번 구매하고, Mac·Windows·Android·Linux 버전은 무료입니다. 어느 방식으로 앱을 이용하더라도 본인의 서비스 제공업체 계정이 갱신되지는 않습니다. 구독 권한과 유효 기간은 본인의 서비스 제공업체에 확인하세요.
문제를 해결한 뒤 성공 당시의 네트워크 유형, Update via Proxy 상태, Update on Open 활성화 여부를 기록해 두는 것이 좋습니다. 다음에 업데이트가 실패하면 이 정상 작동 조건과 먼저 비교하세요. DNS, 라우팅 모드, 구독 주소를 한꺼번에 바꾸는 것보다 원인을 찾기 쉽습니다. 이 사이트는 서버, 구독, 서비스 제공업체를 제공·판매·추천하지 않습니다.