이미 이용 중인 서비스와 구독이 있다면 Home에서 직접 새로고침한 다음 Settings → Subscribe에서 Update on Open을 확인하세요. 업데이트에 실패하면 링크 권한, 요청에 사용된 네트워크, 응답 내용을 차례로 점검합니다. 업데이트는 성공했지만 연결되지 않는다면 연결 설정과 라우팅을 확인하세요. 두 문제를 한꺼번에 다루지 않는 것이 좋습니다.
구독 업데이트의 범위: 목록을 가져오는 작업이며 연결을 설정하는 것은 아닙니다
Shadowrocket의 구독 업데이트는 저장된 구독 URL로 서버에 요청을 보내고, 응답에서 서버 항목을 읽어오는 과정입니다. 수동 새로고침은 처음 가져온 결과를 확인하거나 서비스에서 항목 변경을 알렸을 때, 특정 업데이트 실패를 살펴볼 때 유용합니다. 앱을 열 때 자동 업데이트를 설정하면 평소 앱 실행 시 목록의 변경 사항을 확인할 수 있습니다.
업데이트 요청에 성공했다는 것은 해당 요청에서 처리할 수 있는 내용을 받았다는 뜻일 뿐입니다. 모든 서버에 연결할 수 있다거나 계정의 남은 데이터, 서버 인증서, 원격 포트가 정상이라는 의미는 아닙니다. 반대로 저장된 항목으로 연결할 수 있어도 구독 URL이 유효하다고 단정할 수 없습니다. 구독 권한과 연결 인증 정보는 별도로 관리될 수 있습니다.
- Home: 구독 그룹과 서버 목록, 현재 선택 항목을 확인하고 수동으로 새로고침합니다.
- Settings → Subscribe: Update on Open과 Update via Proxy를 비롯한 구독 업데이트 옵션을 확인합니다.
- Config: 설정 파일과 규칙을 관리합니다. 서버 구독 새로고침은 원격 설정 파일 업데이트와 다릅니다.
- 연결 스위치: 연결 상태를 제어하며, 구독 업데이트 성공 여부를 표시하지는 않습니다.
수동 업데이트: 그룹을 확인한 뒤 새로고침 결과 점검하기
처음 가져올 때는 서비스에서 제공한 전체 구독 URL을 복사하세요. 계정 로그인 페이지나 결제 페이지, 개별 서버 공유 링크를 사용하면 안 됩니다. URL 끝의 쿼리 매개변수에는 인증 정보가 포함되는 경우가 많으므로 주소가 길다고 삭제하지 마세요. 아래는 주소 구조를 보여 주기 위한 예시이며 연결에 사용할 수 없습니다.
https://example.com/sub?token=xxxx
-
출처 확인
본인이 이용하는 서비스의 계정 페이지에서 구독 URL을 복사하세요. 프로토콜, 경로, 쿼리 매개변수를 모두 보존하고 URL 앞뒤에 공백, 줄바꿈, 채팅에서 붙은 문장부호가 없는지 확인합니다.
-
구독 저장
처음 추가할 때는 Home → 오른쪽 상단의 「+」 → Type → Subscribe로 이동해 URL에 전체 링크를 붙여 넣고 저장합니다. 기존 구독은 원래 그룹을 그대로 사용하면 되며 중복으로 추가할 필요가 없습니다.
-
아래로 당겨 새로고침
Home으로 돌아가 목록을 아래로 당겨 새로고침하고 요청이 끝날 때까지 기다립니다. 문제를 확인하는 동안에는 여러 번 연속으로 당기지 마세요. 여러 요청의 결과가 뒤섞일 수 있습니다.
-
내용 확인
대상 구독 그룹을 펼쳐 항목 이름과 개수, 예상한 변경 사항을 확인합니다. 목록에 변화가 없다면 먼저 서버에 새 내용이 실제로 게시됐는지 확인한 뒤 추가 점검이 필요한지 판단하세요.
한 번 아래로 당기면 저장된 구독 여러 개가 업데이트될 수 있습니다. 한 그룹에서 실패해도 다른 그룹까지 실패한 것은 아니므로, 해당 그룹과 표시된 메시지를 기록하세요. 목록의 항목 수가 그대로여도 업데이트되지 않았다고 단정할 수 없습니다. 서버에서 이름이나 개수는 유지한 채 주소, 포트, 연결 매개변수만 변경할 수 있습니다.
새로고침을 확인하려고 구독을 반복해서 삭제하고 다시 가져오지 마세요. 이전과 이후를 비교하기 어려워지고 이름이 같은 그룹이 생길 수도 있습니다. 기존 항목을 유지한 채 새 구독 URL이 제대로 처리되는지 확인한 다음 이전 그룹을 정리하세요.
앱 실행 시 자동 업데이트: 설정 위치와 작동 조건
Settings → Subscribe로 이동해 Update on Open을 켭니다. 이 옵션은 앱을 열 때 구독 업데이트를 시작하는 기능이며, 일정한 간격으로 백그라운드에서 계속 확인하는 기능은 아닙니다. 켠 뒤에는 요청 결과를 직접 확인하세요. 스위치가 켜져 있다는 사실만으로 목록이 업데이트됐다고 판단해서는 안 됩니다.
- 먼저 수동으로 확인: Home에서 아래로 당겨 새로고침이 성공하는지 확인한 다음 자동 업데이트를 켜세요. 유효하지 않은 링크를 자동 실행 문제로 오해하지 않을 수 있습니다.
- 다음으로 실행 여부 확인: 다음에 앱을 열 때 요청이 끝나기를 기다린 뒤 대상 그룹의 내용과 오류 메시지가 있는지 확인합니다.
- 수동 업데이트도 계속 사용: 서비스에서 목록 변경 알림을 받았다면 다음 앱 실행까지 기다리지 않고 직접 새로고침할 수 있습니다.
- 연결 기능과 구분: Settings → On Demand는 필요에 따른 연결을 관리하며 구독 업데이트 시점을 설정하지 않습니다. 앱을 열었다고 해서 프록시 연결이 반드시 설정되는 것도 아닙니다.
자동 업데이트는 실패했지만 나중에 수동 새로고침은 성공한다면, 두 요청 당시의 네트워크 조건을 비교해 보세요. 앱을 열었을 때 Wi-Fi 로그인이 아직 끝나지 않았거나 프록시 연결이 설정되지 않아 첫 요청과 이후 요청의 결과가 달라질 수 있습니다. 여러 옵션을 한꺼번에 바꾸기보다 먼저 차이가 재현되는지 확인한 뒤 설정을 조정해야 원인을 찾기 쉽습니다.
업데이트 오류: 권한, 네트워크, 응답 내용을 구분해 확인하기
먼저 오류 메시지 원문과 발생 시각, 사용 중인 네트워크를 기록하세요. 아래에는 원인을 파악할 때 참고할 수 있는 메시지와 HTTP 상태를 정리했습니다. 실제 표시 언어나 자세한 설명은 다를 수 있고, HTTP 상태는 서버 응답이나 진단 기록에만 나타날 수도 있습니다. 막연한 로딩 실패 메시지만으로 구독이 만료됐다고 판단하지 마세요.
Failed to load subscription
원인과 해결: 로딩 실패를 포괄적으로 나타내는 메시지로, 이것만으로 권한, 네트워크, 형식 문제를 구별할 수는 없습니다. 전체 URL을 확인한 뒤 시간 초과, HTTP 상태, 파싱 오류가 함께 표시되는지 살펴보세요.
The request timed out.
원인과 해결: 제한 시간 안에 요청을 마치지 못한 상태입니다. 현재 네트워크나 접속 경로, 서버 응답이 원인일 수 있습니다. 먼저 사용 가능한 다른 네트워크에서 다시 시도한 뒤 Update via Proxy가 필요한지 확인하세요.
401 Unauthorized
원인과 해결: 서버가 요청의 인증 정보를 승인하지 않았습니다. 본인의 계정 페이지에서 현재 구독 URL을 다시 복사하고 token이 누락되거나 만료됐거나 초기화되지 않았는지 확인하세요.
403 Forbidden
원인과 해결: 서버가 요청을 거부했습니다. 계정 권한이나 접근 제한이 원인일 수 있습니다. 본인이 이용하는 서비스에 제한 조건을 확인하세요. 반복해서 새로고침해도 권한 제한은 해제되지 않습니다.
404 Not Found
원인과 해결: 요청 경로에서 해당 리소스를 찾지 못했습니다. 주소가 잘렸는지, 경로가 변경됐는지 확인한 뒤 원래 계정 페이지에서 구독 URL을 다시 가져오세요.
HTTP 상태는 원인을 좁히는 데 도움이 되지만 계정 확인을 대신하지는 않습니다. 링크가 만료되면 오류 상태가 반환될 수도 있지만, 200 상태의 안내 웹페이지가 반환될 수도 있습니다. 후자는 네트워크 요청은 완료됐지만 구독을 처리하는 데는 사용할 수 없는 경우입니다.
- 링크 만료: 계정에 표시된 현재 URL과 앱에 저장된 URL이 일치하는지 확인하세요. 인증 정보가 초기화됐다면 이전 주소를 새 주소로 교체해야 할 수 있습니다.
- 네트워크 제한: 현재 Wi-Fi에서 웹 로그인이 필요한지 먼저 확인하세요. iPhone에서는 셀룰러 네트워크로 바꿔 비교할 수 있지만 데이터 요금에 유의해야 합니다.
- 응답 형식 불일치: 클라이언트가 인식할 수 있는 구독 내용이 반환됐는지 확인하세요. 로그인 페이지, 웹 인증 페이지, JSON 오류 메시지, 빈 응답은 사용할 수 없습니다.
- 일시적인 서버 장애: 발생 시각과 오류 메시지를 기록하고 잠시 후 다시 시도한 뒤 본인이 이용하는 서비스에 알려 주세요. 짧은 시간에 요청을 반복해서 보내지 마세요.
Update via Proxy: 사용 가능한 연결이 있을 때만 테스트
Settings → Subscribe → Update via Proxy에서는 구독 요청의 접속 경로를 조정할 수 있습니다. 이 옵션은 유효하지 않은 token을 고치거나 구독 형식을 변환하지 않습니다. 현재 네트워크에서 구독 도메인에 직접 접속할 수 없고 기존 항목으로 프록시 연결은 정상적으로 설정되는 경우에만 비교 테스트에 사용하세요.
| 확인할 조건 | 다음 단계 | 결과 해석 |
|---|---|---|
| 현재 네트워크에서 직접 업데이트 가능 | 정상 작동이 확인된 설정을 유지하고 자동 업데이트 점검 | 문제 해결을 위해 요청 경로를 추가로 바꿀 필요 없음 |
| 직접 요청은 시간 초과, 기존 프록시는 사용 가능 | 연결을 설정한 뒤 Update via Proxy를 켜고 수동으로 새로고침 | 이 경로에서만 성공한다면 구독 도메인의 네트워크 접속 가능 여부를 중점적으로 확인 |
| 두 경로 모두 401 또는 403 반환 | 반복 새로고침을 중단하고 권한과 접근 제한을 확인 | 요청 경로를 바꿔도 서버가 부여하는 접근 권한을 대신할 수 없음 |
| 사용 가능한 연결 항목이 없음 | 먼저 다른 사용 가능한 네트워크에서 테스트하고 본인이 이용하는 서비스에 문의 | 아직 설정되지 않은 프록시 연결을 최초 구독 요청에 사용할 수 없음 |
결론: 한 번에 조건 하나씩만 변경하기
같은 구독 URL을 유지한 채 네트워크를 먼저 비교하고, 그다음 Update via Proxy를 비교하세요. 각 시도의 오류 메시지를 기록합니다. 링크를 바꾸고 네트워크를 전환한 뒤 설정까지 함께 변경하면 어떤 변화가 문제를 해결했는지 알 수 없습니다.
Home → Global Routing에서 현재 선택된 옵션도 확인하세요. Direct는 직접 연결 방식이며 Proxy, Config, Scene은 각각 용도가 다릅니다. 연결 스위치가 켜져 있다고 모든 요청이 반드시 프록시를 통과하는 것은 아닙니다. 문제를 확인할 때는 실제로 선택된 라우팅 방식과 설정, 사용 가능한 연결을 함께 살펴보세요. 구독을 새로고침하려고 Config 전체를 함부로 수정하지 마세요.
형식과 연결 점검: 업데이트 성공 후 확인할 사항
구독 URL은 Shadowrocket이 인식할 수 있는 내용을 반환해야 합니다. 서비스의 로그인 페이지를 구독 주소로 사용하거나 브라우저 세션이 있어야 열리는 임시 페이지를 복사한 경우, 브라우저에 글자가 표시되더라도 앱이 서버 정보를 읽을 수 있다는 뜻은 아닙니다. 직접 인코딩을 추측하거나 내용을 수정하지 말고, Shadowrocket에 맞는 구독 형식을 본인이 이용하는 서비스에 확인하세요.
- 웹페이지는 목록이 아닙니다: 응답에
<!DOCTYPE html>, 로그인 양식, 웹 인증 안내가 포함되어 있다면 먼저 링크와 접근 조건을 확인하세요. - 정상 상태가 올바른 형식을 보장하지 않습니다:
HTTP 200은 HTTP 요청 결과만 나타내며 응답 본문이 구독 형식에 맞는다는 뜻은 아닙니다. - 프로토콜 매개변수도 모두 확인: Shadowsocks, VMess, VLESS, Trojan, Hysteria2, WireGuard는 필요한 필드가 서로 다릅니다. 이름이나 주소만으로 항목이 완전한지 판단할 수 없습니다.
- 포트는 지정된 값과 대조: 서비스에서 원격 포트로
443을 안내했다면 해당 항목에 저장된 값과 직접 비교하세요. 모든 항목을 일괄적으로443으로 바꾸는 것은 일반적인 해결 방법이 아닙니다.
목록은 정상적으로 가져왔지만 연결 테스트에 실패한다면 계정 상태, 서버 접속 가능 여부, 인증 정보, TLS와 전송 매개변수를 확인하세요. 이때 같은 내용을 계속 새로고침해도 보통 결과는 달라지지 않습니다. Config의 DOMAIN-SUFFIX, GEOIP, IP-CIDR, FINAL은 규칙을 적용하는 키워드이며 서버가 반환한 구독 형식 오류를 고치지 않습니다.
자주 묻는 질문: 자동 업데이트, 목록 변경, 오류 대처
앱을 열었는데 목록이 그대로입니다. 업데이트되지 않은 건가요?
먼저 Settings → Subscribe에서 Update on Open을 확인한 다음 Home에서 수동으로 한 번 새로고침하세요. 서버 내용에 변화가 없다면 업데이트에 성공해도 목록은 그대로일 수 있습니다. 요청 메시지와 서비스에서 안내한 변경 사항을 함께 확인하세요.
업데이트에 실패하면 기존 구독을 먼저 삭제해야 하나요?
먼저 삭제하지 마세요. 기존 그룹과 오류 메시지를 기록하고 현재 URL과 계정 권한을 확인한 뒤 네트워크와 형식을 점검하세요. 삭제해도 만료된 권한은 복구되지 않으며, 기존에 작동하던 저장 항목과 비교하기 어려워질 수 있습니다.
브라우저에서는 링크가 열리는데 왜 업데이트에 실패하나요?
브라우저에 구독 내용이 표시되는지, 아니면 로그인 또는 인증 페이지가 표시되는지 확인하세요. 브라우저에는 로그인 세션이 있을 수 있지만 앱 요청에는 같은 조건이 적용되지 않을 수 있습니다. 웹페이지가 열린다고 구독 내용까지 정상적으로 처리된 것은 아닙니다.
On Demand를 켜면 구독도 자동으로 새로고침되나요?
이 옵션은 구독 업데이트를 예약하지 않습니다. Settings → On Demand는 필요에 따른 연결을 관리합니다. 앱을 열 때 구독을 업데이트하려면 Settings → Subscribe → Update on Open에서 설정하고, 임시 업데이트는 Home에서 아래로 당겨 새로고침하세요.
새로고침 후 항목이 몇 개 사라졌습니다. 앱을 다시 설치해야 하나요?
먼저 본인이 이용하는 서비스에 반환된 목록에서 해당 항목이 삭제되거나 이름이 바뀌었는지 확인한 뒤 올바른 그룹을 보고 있는지 살펴보세요. 앱을 다시 설치해도 서버에서 삭제된 내용을 복구할 수 없습니다. 처리 전에 필요한 개인 설정 기록을 저장하세요.