서비스 제공업체에서 구독 링크를 받았지만 Shadowrocket에서 업데이트되지 않거나 노드가 보이지 않는 경우에 해당합니다. 먼저 요청 실패, 응답 파싱 실패, 목록 표시 문제를 구분한 다음 링크, 계정 상태, 업데이트 경로를 차례로 확인하세요. 계속 사용할 수 있는 기존 항목은 보존하고, 한 번에 조건 하나씩만 바꾼 뒤 업데이트 결과와 연결 테스트를 각각 확인하세요.
1. 업데이트 실패·파싱 실패·목록 비어 있음 구분하기
Shadowrocket의 구독 업데이트는 연결 테스트와 다릅니다. 앱이 먼저 구독 주소에 요청을 보내 응답을 받은 다음, 지원되는 서버 항목을 파싱해 Home에 표시합니다. 어느 단계든 완료되지 않으면 새 노드가 없는 것처럼 보일 수 있지만, 확인해야 할 지점은 서로 다릅니다.
먼저 Home으로 돌아가 해당 구독 그룹을 펼치고 검색어를 지워 숨겨진 항목이 있는지 확인하세요. Config는 구성 파일을 관리하는 곳입니다. Config의 원격 구성을 업데이트해도 Home의 서버 구독이 업데이트되는 것은 아닙니다. Settings에서는 업데이트 동작과 관련된 설정을 확인할 수 있습니다.
| 증상 | 우선 확인할 항목 | 지금은 피할 작업 |
|---|---|---|
| 업데이트가 오래 걸린 뒤 시간 초과 표시 | 현재 네트워크, 도메인 확인, 구독 요청 경로 | 서버 포트나 비밀번호를 반복해서 변경하기 |
| 곧바로 실패하며 HTTP 상태 코드 표시 | 링크 권한, 서비스 제공업체 계정, 인터페이스 제한 | 업데이트를 연속으로 요청하기 |
| 요청은 완료됐지만 사용할 수 있는 항목이 없음 | 응답 내용, 구독 형식, 표시 중인 그룹 | 연결 가능한 기존 항목부터 삭제하기 |
| 노드는 있지만 연결되지 않음 | 서버 설정과 실제 연결 상태 | 연결 문제를 파싱 문제로 단정하기 |
2. 구독 주소 확인하기: 웹페이지와 혼동하지 않기
구독 주소는 본인이 이용하는 서비스 제공업체에서 받아야 합니다. 계정 로그인 페이지, 요금제 안내 페이지, 개별 서버 공유 링크와 구독 주소는 서로 다른 항목입니다. 주소가 브라우저에서 열리더라도 로그인 양식이나 인증 페이지가 표시될 수 있으므로, 구독 파서가 읽을 수 있는 주소라고 단정할 수 없습니다.
- 서비스 제공업체 계정에서 Shadowrocket용 구독 주소를 다시 복사하세요. 채팅 화면을 캡처한 이미지나 줄바꿈된 텍스트를 이어 붙여 주소를 만들지 마세요.
- 주소의 시작 부분인
https://, 전체 경로와 쿼리 매개변수를 확인하세요. 주소 앞뒤의 공백, 따옴표, 줄바꿈은 제거하되 주소 내부 문자는 수정하지 마세요. ?,&,=와 기존 퍼센트 인코딩을 그대로 유지하세요. 쿼리 매개변수를 통째로 지우거나 임의로 다시 인코딩하지 마세요.- Home에서 해당 구독 항목을 편집해 주소를 확인한 뒤 그 구독을 업데이트하세요. 이름이 같은 그룹을 여러 개 가져와 결과를 혼동하지 않도록 주의하세요.
예시는 ‘경로와 쿼리 매개변수’ 구조를 알아보기 위한 가짜 값이며 연결에 사용할 수 없습니다. 실제 주소의 매개변수 이름은 다를 수 있습니다. 예시의 token이 모든 서비스 제공업체에서 필수로 사용하는 필드라고 생각하지 마세요.
https://example.com/sub?token=xxxx
3. 응답 결과에 따라 서비스 제공업체 상태 확인하기
링크가 완전하더라도 서비스 제공업체가 유효한 항목을 반환한다는 보장은 없습니다. 계정 만료, 할당량 소진, 접근 인증 정보 만료, 인터페이스 점검, 과도한 요청 등이 응답에 영향을 줄 수 있습니다. 앱 설정을 변경하기 전에 서비스 제공업체 계정에 로그인해 상태를 확인하세요.
아래 영문은 표준 HTTP 응답 상태 문구이며 Shadowrocket에 그대로 표시된다고 보장할 수 없습니다. 앱에는 상태 코드만 나오거나 더 짧은 오류 안내가 표시될 수 있습니다. 실제로 해당 상태를 확인한 경우에만 관련 조치를 따르세요. 목록이 비어 있다는 이유만으로 특정 오류가 발생했다고 단정하지 마세요.
HTTP 401 Unauthorized
원인: 인증에 실패했습니다. 구독 인증 정보가 만료됐거나 필요한 권한이 없을 수 있습니다.
해결: 서비스 제공업체 계정에서 유효한 구독 주소를 다시 받아 기존 주소를 완전히 교체한 뒤 업데이트하세요.
HTTP 403 Forbidden
원인: 서버가 요청을 거부했습니다. 계정 권한, 접근 정책 또는 인증 차단이 원인일 수 있습니다.
해결: 계정 상태를 확인하고 해당 구독 인터페이스가 현재 요청을 허용하는지 서비스 제공업체에 문의하세요. 제한을 풀려고 새로고침을 반복하지 마세요.
HTTP 429 Too Many Requests
원인: 요청 빈도가 인터페이스에서 허용하는 범위를 초과했습니다.
해결: 업데이트를 연속으로 요청하지 말고 서비스 제공업체가 안내한 간격을 두고 다시 시도하세요. 응답에 Retry-After가 있으면 지정된 대기 시간을 따르세요.
응답이 200 OK여도 본문은 HTML 오류 페이지, 빈 내용 또는 앱에서 인식할 수 없는 형식일 수 있습니다. 단순히 ‘주소에 접속할 수 있다’는 확인에 그치지 말고, Shadowrocket에서 사용할 수 있는 구독 내용을 반환하는지 서비스 제공업체에 확인하세요. 서버 인증 정보가 포함될 수 있으므로 전체 응답을 공개적으로 보내지 마세요.
정리: 응답 내용을 확인한 다음 연결 설정을 조정하세요
서비스 제공업체가 인터페이스에서 로그인 페이지나 빈 항목을 반환한다고 확인했다면 먼저 계정과 구독 주소를 해결하세요. Global Routing을 바꿔도 이러한 응답이 유효한 서버 목록으로 바뀌지는 않습니다.
4. 한 번에 하나씩 네트워크와 업데이트 경로 확인하기
구독 요청이 완료되는지와 기존 노드에 연결할 수 있는지는 별개의 결과입니다. 현재 네트워크에서 구독 도메인에 접속할 수 없지만 기존 노드는 계속 사용할 수 있다면 Settings → Subscribe → Update via Proxy에서 사용 가능한 프록시로 업데이트를 시도할 수 있습니다. 이 옵션을 켜도 만료된 인증 정보가 복구되거나 사용할 수 있는 연결이 새로 생기지는 않습니다.
- 현재 Wi-Fi 또는 셀룰러 네트워크, 연결 스위치 상태, Update via Proxy 활성화 여부를 기록하세요. 원래 설정을 보존해 두면 필요할 때 복원할 수 있습니다.
- 구독 주소에 접속할 수 있는 신뢰할 만한 네트워크에서 먼저 직접 업데이트를 테스트하세요. Wi-Fi와 셀룰러 네트워크를 전환해야 한다면 앱에 해당 네트워크 접근 권한이 있는지 먼저 확인하세요.
- 사용 가능한 기존 노드가 있을 때만 프록시 업데이트를 테스트하세요. 먼저 기존 노드로 네트워크에 정상적으로 접속되는지 확인한 다음 Update via Proxy를 켜고 Home으로 돌아가 해당 구독을 업데이트하세요.
- 이번 업데이트의 완료 시각, 표시된 안내, 노드 수 변화를 기록하세요. 개선되지 않았다면 해당 설정을 원래대로 돌린 뒤 다음 항목을 확인하세요. DNS, 노드, 구독 주소를 한꺼번에 바꾸지 마세요.
Global Routing의 Proxy, Direct, Config, Scene은 서로 다른 라우팅 선택 항목이며 구독 형식 설정이 아닙니다. 문제를 확인할 때는 Global Routing에 표시된 이름만 보지 말고 Update via Proxy도 따로 확인하세요. 프록시 업데이트가 필요하지만 사용할 수 있는 노드가 없다면 서비스 제공업체에 직접 접속 가능한 구독 경로가 있는지 먼저 문의하세요.
연결을 끊은 뒤 자동으로 다시 연결된다면 Settings → On Demand가 조건에 따라 연결을 시작하는지 확인하세요. 기존 값을 기록한 다음 비교 테스트를 하고, 테스트가 끝나면 필요한 설정을 복원하세요. 자동 연결 동작을 놓치면 겉보기에는 같은 업데이트라도 실제로는 서로 다른 네트워크 경로를 사용할 수 있습니다.
5. 업데이트가 완료됐는데 목록이 비어 있다면 내용과 가져온 항목 확인하기
노드 목록이 비어 있다고 해서 반드시 네트워크 문제인 것은 아닙니다. 서버 목록 구독과 규칙이 포함된 원격 구성은 용도가 다릅니다. 받은 주소가 구성 파일 주소라면 Config에서 구성 파일을 관리해야 합니다. HTTPS를 사용한다는 이유만으로 Home에서 필요한 서버 구독이라고 판단하지 마세요.
- 그룹 확인: Home에서 방금 업데이트한 구독을 펼치고 검색어를 지운 다음, 직접 추가한 서버와 구독 그룹을 구분하세요.
- 형식 확인: 서비스 제공업체에 Shadowrocket을 사용한다고 알리고 제공하는 형식이 현재 앱에 맞는지 확인하세요. 알 수 없는 응답을 임의로 다른 인코딩 형식으로 바꾸지 마세요.
- 항목 확인: 해당 계정에 실제로 서버 항목이 할당됐는지 서비스 제공업체에 확인하세요. 계정에 로그인할 수 있다고 해서 구독에서 반드시 비어 있지 않은 목록이 반환되는 것은 아닙니다.
- 앱 상태 확인: App Store에서 앱 업데이트가 있는지 확인하세요. 업그레이드하기 전에 복원 가능한 구성과 기존 정보를 보존하고, 앱을 먼저 삭제하지 마세요.
Shadowsocks, VMess, VLESS, Trojan, Hysteria2, WireGuard는 연결 프로토콜 이름이며 서로 바꿔 쓸 수 있는 구독 형식 표기가 아닙니다. 목록을 표시하려고 서버의 Type을 다른 프로토콜로 임의 변경하지 마세요. 서버 측 설정과 클라이언트 매개변수가 일치해야 합니다.
정리: 목록 복구와 연결 복구는 따로 확인하세요
먼저 Home에 유효한 항목이 표시되는지 확인한 다음 노드를 선택해 연결을 테스트하세요. 항목은 있지만 접속에 실패한다면 구독 확인 결과는 보존하고 해당 노드의 설정과 라우팅을 살펴보세요. 정상적인 구독 주소를 반복해서 바꾸지 않아도 됩니다.
6. 업데이트 시점과 자주 묻는 후속 질문
서비스 제공업체에서 주소 변경을 알렸거나 계정 상태가 복구됐거나 서버 목록 조정이 확인된 뒤 구독을 업데이트하세요. 실패했다고 연속으로 아래로 당겨 새로고침하지 마세요. 먼저 한 번의 결과를 기록하고 해당 항목을 확인해 요청 빈도 제한이 기존 문제에 더해지지 않도록 하세요. 구독 업데이트로 App Store 구매 내역이나 서비스 제공업체 요금제가 복구되지는 않습니다.
기존 노드는 계속 사용할 수 있는데 구독은 왜 업데이트되지 않나요?
기존 노드는 저장된 연결 매개변수를 사용하지만, 구독 업데이트는 구독 인터페이스에 접속합니다. 기존 항목은 보존한 채 인터페이스 주소와 계정 권한을 먼저 확인하세요. 직접 요청만 시간 초과되는 경우에는 사용 가능 여부를 확인한 기존 노드로 Update via Proxy를 테스트하세요.
브라우저에서 주소가 열리는데 앱에서는 왜 파싱에 실패하나요?
브라우저에 로그인 상태가 저장돼 있거나 인증 페이지가 표시됐을 수 있습니다. 웹페이지에서 별도 조작하지 않아도 사용할 수 있는 구독 항목을 반환하는 주소인지 서비스 제공업체에 확인하세요. 브라우저에서 열렸다는 사실만으로 형식이 올바르다고 볼 수는 없습니다.
셀룰러 네트워크에서는 업데이트되는데 무엇을 바꿔야 하나요?
먼저 업데이트 성공 결과를 보존한 뒤 원래 Wi-Fi로 돌아가 웹 인증이 필요한지, 접근 제한이나 도메인 확인 문제가 있는지 살펴보세요. 한 번에 조건 하나씩만 테스트하세요. HTTPS 오류를 우회하려고 인증서 확인을 끄지 마세요.
서비스 제공업체에 문의할 때 어떤 정보를 전달해야 하나요?
문제가 발생한 시각과 시간대, Wi-Fi 또는 셀룰러 네트워크 여부, 프록시 업데이트 사용 여부, 실제 오류 문구, 기존 노드를 사용할 수 있는지 전달하세요. 스크린샷에서는 전체 구독 주소, token, 비밀번호와 서버 인증 정보를 가리세요.
마지막으로 세 가지를 확인하세요. 해당 그룹에 항목이 있는지, 수동 업데이트가 완료되는지, 선택한 노드로 대상 서비스에 정상 접속되는지 확인합니다. 앞의 두 항목은 정상인데 세 번째만 실패한다면 사용 안내에서 연결과 Global Routing을 확인하세요. 특정 웹사이트 하나가 열리지 않는다는 이유만으로 구독 전체에 문제가 있다고 판단하지 마세요.