Shadowrocket 여러 구독 관리: 그룹화·정렬, 만료된 구독 삭제, 중복 노드 제거

여러 구독을 Shadowrocket에서 출처별로 그룹화하고 지연 시간순으로 정렬하며, 만료된 항목을 일괄 삭제하고 중복 노드를 정리하는 방법을 안내합니다.

이 글 한눈에 보기

이 글은 여러 개인 구독을 Shadowrocket에 가져온 사용자를 위한 안내입니다. 먼저 Settings → Subscribe에서 구독 출처를 관리한 뒤 Home으로 돌아가 서버 항목을 테스트하고 정리합니다. 정리할 때는 출처별로 구분하고, 중복 항목은 프로토콜·호스트·포트·인증 매개변수를 하나씩 비교합니다.

먼저 구독 출처, 서버 항목, 현재 연결을 구분하세요

여러 구독 관리가 복잡해지는 가장 흔한 이유는 세 가지 계층을 같은 것으로 보기 때문입니다. 구독 출처는 사용자가 이미 이용 중인 서비스 제공자가 제공한 URL입니다. 서버 항목은 구독 업데이트 후 Home 목록에 기록되는 개별 항목이고, 현재 연결은 Home에서 선택되어 시스템 VPN 구성에 사용되는 항목입니다. 한 계층을 삭제해도 다른 두 계층이 자동으로 바뀌지는 않습니다.

예를 들어 하나의 구독에서 서버 기록이 여러 개 생성될 수 있지만, 선택된 항목은 그중 하나뿐입니다. 서버 기록 하나를 따로 삭제해도 구독 출처가 삭제되는 것은 아닙니다. 출처가 남아 있으면 다음 업데이트 때 해당 기록이 다시 나타날 수 있습니다. 반대로 구독 출처를 제거한 뒤에도 그 출처와 연결된 로컬 항목이 남아 있는지 확인해야 합니다.

구독 출처 저장구독 내용 가져오기서버 항목 생성지연 시간 테스트 실행현재 서버 선택
3개 층위
구독 출처, 서버 항목, 현재 연결
4개 항목
중복 판별 키: 프로토콜, 호스트, 포트, 인증 매개변수
4가지 상태
Global Routing:Proxy / Direct / Config / Scene
1개 진입 경로
구독 출처는 Settings → Subscribe에 모입니다

출처별로 그룹을 만들고 먼저 구독 이름을 명확히 정하세요

Settings → Subscribe로 들어간 뒤 저장된 구독을 하나씩 확인하세요. 이름에는 출처와 용도가 드러나야 하며, “구독 1”이나 “백업”처럼 추적하기 어려운 이름만 남겨 두지 않는 것이 좋습니다. 여러 출처에 같은 이름의 서버가 있을 때 출처 이름은 중복 항목의 소속을 판단하는 첫 번째 단서입니다.

새 출처를 입력할 때는 사용자가 직접 확보한 구독 주소만 사용하세요. 형식 설명용 예시 값은 https://example.com/sub?token=xxxx처럼 작성할 수 있습니다. URL의 쿼리 매개변수는 보통 인증이나 권한 확인에 사용되므로 복사할 때 전체 문자열을 유지하고 ?token=xxxx를 임의로 삭제하지 마세요.

주 사용 구독

진입 경로
Settings → Subscribe
이름
출처 A · 일상용
URL
https://example.com/sub?token=xxxx
업데이트 확인
확인 시간과 항목 수 변화

이름은 출처를 식별하는 역할을 하므로 서버 표시 이름으로 구독 이름을 대신하지 마세요.

백업 구독

진입 경로
Settings → Subscribe
이름
출처 B · 백업
업데이트 방식
필요할 때 수동 업데이트
오류 기록
시간 초과, 빈 결과 또는 인증 실패

먼저 백업 출처가 정상적으로 업데이트되는지 확인한 다음 이전 출처에서 생성된 항목을 정리하세요.

  1. Settings를 열고 Subscribe로 이동한 뒤 현재 등록된 각 출처와 이름을 기록하세요.
  2. 출처를 한 번에 하나씩 차례로 업데이트하고, Home에서 해당 그룹이나 항목 수가 변하는지 확인하세요.
  3. 출처 이름이 불분명하면 먼저 이름을 바꾼 다음 삭제하거나 중복을 정리하세요. 서로 다른 출처를 한데 섞는 일을 막을 수 있습니다.
  4. 업데이트가 끝나면 Home으로 돌아가 현재 선택된 서버가 유지하려는 출처에 속하는지 확인하세요.

결론: 먼저 출처를 정리한 다음 서버를 정리하세요

Settings → Subscribe를 확인하지 않고 Home에서 같은 이름의 항목만 바로 삭제하면 다음 업데이트 때 해당 기록이 다시 입력될 수 있습니다. 먼저 출처 이름을 정하고 업데이트 결과를 확인하면 반복적인 정리를 줄일 수 있습니다.

지연 시간순으로 정렬하기 전에 같은 조건으로 Connectivity Test를 완료하세요

지연 시간순 정렬은 테스트 조건이 같을 때만 참고할 가치가 있습니다. 같은 네트워크 접속 방식을 유지한 상태에서 Home에서 비교할 서버에 지연 시간 테스트 또는 Connectivity Test를 실행한 뒤 이번 결과를 기준으로 정렬하세요. 어제 Wi-Fi에서 얻은 수치와 오늘 셀룰러 네트워크에서 얻은 수치를 그대로 섞어 비교하지 마세요.

테스트 결과는 세 가지로 나눌 수 있습니다. 구체적인 밀리초 수치가 표시되면 이번 테스트에서 탐색 대상이 응답했다는 뜻입니다. timeout이 표시되면 테스트 제한 시간 안에 유효한 응답을 받지 못했다는 뜻입니다. 결과가 없거나 테스트 중인 상태가 계속되면 현재 네트워크, 구독 매개변수, 앱 권한을 확인하세요. 한 번의 timeout만으로 서버가 영구적으로 만료되었다고 판단할 수는 없으므로 잠시 후 두 번 정도 다시 테스트하세요.

도달 가능한 기록 예시

프로토콜
Trojan
호스트
edge-a.example.com
포트
443
테스트 결과
186 ms

수치는 기록 형식의 예시일 뿐이며, 실제 기기에서 해당 시점에 표시되는 테스트 결과를 기준으로 하세요.

재확인이 필요한 기록 예시

프로토콜
Hysteria2
호스트
edge-b.example.com
포트
443
테스트 결과
timeout × 3

세 차례 연속 시간 초과가 발생해도 먼저 UDP 도달 가능성과 서버 측 매개변수가 변경되었는지 확인하세요.

테스트 중에는 Global Routing도 확인해야 합니다. Proxy는 트래픽을 현재 프록시 서버로 모두 전달하고, Direct는 직접 연결하며, Config는 현재 구성 파일의 규칙에 따라 처리하고, Scene은 장면 설정에 따라 작동합니다. Direct에 머물러 있다면 웹페이지가 열려도 선택한 서버가 적용되었다는 뜻은 아닙니다. Config를 사용하는 경우 DOMAIN-SUFFIX, GEOIP, IP-CIDR, FINAL의 매칭 순서도 확인하세요.

DOMAIN-SUFFIX,example.com,PROXY
IP-CIDR,192.0.2.0/24,DIRECT
GEOIP,CN,DIRECT
FINAL,PROXY

만료된 구독을 삭제할 때는 출처를 일괄 정리의 기준으로 삼으세요

만료된 항목을 일괄 처리할 때 가장 명확한 기준은 서버 표시 이름이 아니라 구독 출처입니다. 먼저 Settings → Subscribe에서 해당 출처가 실제로 업데이트를 중단했는지, 빈 내용을 반환하는지, 더 이상 사용되지 않는지 확인한 다음 출처를 제거하세요. 삭제하기 전에 계속 유지해야 하는 수동 서버를 기록하여 출처에서 생성된 항목과 수동 추가 항목을 한 그룹으로 착각하지 않도록 하세요.

구체적인 버튼 문구는 App Store의 현재 페이지에 표시되는 앱 인터페이스에 따라 달라질 수 있지만 판단 순서는 같습니다. 구독 기록을 열고 URL과 이름을 확인한 뒤 삭제할 출처를 확정하고 삭제 확인 창을 읽은 다음 Home으로 돌아가 연결된 항목을 확인하세요. 확인 창에서 로컬 서버도 함께 처리할지 묻는다면 해당 항목의 필요 여부에 따라 선택하고, 연속해서 빠르게 확인하지 마세요.

  1. Home에서 현재 선택된 서버의 프로토콜, 호스트, 포트를 기록하고 필요하면 유지할 서버로 먼저 전환하세요.
  2. Settings → Subscribe로 이동해 대상 출처를 열고 한 번 업데이트하여 일시적인 네트워크 변동이 아닌지 확인하세요.
  3. 구독 이름과 전체 URL을 대조하여 삭제 대상이 기록된 만료 출처와 일치하는지 확인하세요.
  4. 출처를 삭제한 뒤 확인 창의 안내에 따라 해당 출처에서 생성된 로컬 항목도 함께 처리할지 결정하세요.
  5. Home으로 돌아가 Connectivity Test를 다시 실행하고 목록에 기존 출처의 잔여 기록이 남아 있는지 확인하세요.

결론: 일괄 삭제는 구독 기록에서 시작해야 합니다

출처 기준으로 제거하면 표시 이름을 기준으로 하나씩 삭제하는 것보다 검토하기 쉽고, 다음 구독 업데이트에서 같은 서버가 Home에 다시 추가되는 일도 막을 수 있습니다.

중복 노드를 제거할 때는 이름이 아니라 연결 매개변수를 비교하세요

중복 노드는 두 구독에서 같은 표시 이름이 생성되는 형태로 가장 자주 나타나지만, 표시 이름만으로는 유일한 판단 기준이 될 수 없습니다. 하나의 이름이 서로 다른 호스트를 가리킬 수도 있고, 같은 호스트의 서로 다른 포트를 가리킬 수도 있습니다. 실제 중복 항목인지 확인하려면 최소한 프로토콜 유형, 서버 호스트, 포트, 인증 매개변수를 비교해야 합니다. TLS를 사용하는 프로토콜은 SNI와 ALPN 등의 필드도 비교하고, 전송 계층 설정을 사용하는 경우 path, host 또는 해당 설정값도 확인하세요.

Shadowsocks는 호스트, 포트, 암호화 방식, 비밀번호를 중점적으로 비교해야 합니다. VMess와 VLESS는 UUID, 전송 방식, TLS 설정도 확인해야 하며, Trojan은 비밀번호와 SNI를 비교해야 합니다. Hysteria2는 호스트, 포트, 인증 정보 및 관련 TLS 필드를 확인해야 하고, WireGuard는 공개 키, Endpoint, Allowed IPs, 로컬 주소를 비교해야 합니다. 매개변수가 다른 기록은 이름이 같더라도 바로 중복으로 보고 삭제하지 마세요.

중복으로 판단할 수 있음

프로토콜
Trojan
호스트
edge.example.com
포트
443
SNI
edge.example.com
인증
완전히 일치

주요 연결 매개변수가 일치할 때는 출처의 업데이트 안정성을 기준으로 하나를 남기세요.

이름만으로 병합할 수 없음

표시 이름
Tokyo 01
기록 A
edge-a.example.com:443
기록 B
edge-b.example.com:8443
프로토콜
모두 VLESS
결론
호스트와 포트가 다름

표시 이름이 같다는 것은 라벨이 중복된 것일 뿐, 하위 연결 대상이 같다는 뜻은 아닙니다.

중복 판별 키 예시:
프로토콜 | 호스트 | 포트 | 인증 매개변수 | 전송 방식 | TLS/SNI

Trojan | edge.example.com | 443 | password-A | TCP | edge.example.com
VLESS  | edge.example.com | 443 | uuid-B     | WS  | cdn.example.com

두 출처에 실제로 같은 서버가 포함되어 있다면 업데이트 성공 여부, 출처 식별의 명확성, 매개변수의 완전성을 기준으로 하나를 남기는 것이 좋습니다. 다른 항목을 삭제한 직후 기존 구독을 업데이트하여 확인하세요. 중복 항목이 다시 나타나면 해당 출처가 여전히 이를 관리하고 있다는 뜻입니다. 이 경우 출처를 유지하고 중복 표시를 받아들이거나 서비스 제공자가 관리하는 구독 범위에서 내용을 조정하세요. 비밀번호, 포트, UUID를 임의로 바꿔 겉보기 차이를 만들지는 마세요.

구독 업데이트 후 On Demand와 규칙 상태를 확인하세요

구독 정리가 끝나면 한 번 전체 흐름을 확인해야 합니다. 먼저 Home에서 유지할 서버를 선택하고 Connectivity Test를 실행한 다음 Global Routing의 현재 상태를 확인하세요. 평소 Config를 사용한다면 현재 구성을 열어 규칙이 위에서 아래 순서로 매칭되는지 확인하고, 마지막으로 FINAL이 일치하지 않는 요청을 처리하도록 하세요.

On Demand를 활성화했다면 진입 경로는 Settings → On Demand입니다. 이 설정은 네트워크 조건에 따라 연결하거나 연결을 해제할 수 있으므로 여러 구독을 테스트할 때 연결 상태가 자동으로 바뀔 수 있습니다. 문제를 확인하는 동안 Wi-Fi와 셀룰러 네트워크에서 각각 어떤 동작을 수행하도록 설정했는지 기록하여 자동 전환을 서버 만료로 오해하지 않도록 하세요.

구독 업데이트 후 방금 삭제한 서버가 다시 나타나나요?

Settings → Subscribe에서 해당 항목이 속한 출처를 찾으세요. Home의 항목만 삭제해도 구독 내용은 바뀌지 않습니다. 전체를 제거하려면 해당 출처를 처리한 뒤 로컬 목록을 다시 확인하세요.

두 노드의 이름이 완전히 같다면 어느 것을 삭제해야 하나요?

각 기록을 열어 프로토콜, 호스트, 포트, 인증 매개변수, 전송 방식, TLS/SNI를 비교하세요. 매개변수가 완전히 같다면 업데이트가 안정적이고 출처 이름이 명확한 항목을 남기고, 다르면 이름만으로 병합하지 마세요.

지연 시간이 가장 짧은 서버에서 대상 페이지를 열 수 없는 이유는 무엇인가요?

먼저 Global Routing이 Direct인지 확인한 다음 Connectivity Test를 실행하세요. Config를 사용한다면 규칙 순서와 FINAL 동작도 계속 확인해야 합니다. 지연 시간 탐색에 성공했다고 모든 앱 요청이 예상대로 분기된다는 뜻은 아닙니다.

구독 업데이트에서 계속 timeout이 표시되면 어떻게 해결하나요?

먼저 기기 네트워크와 시스템 시간이 정상인지 확인한 다음 구독 URL이 완전한지 점검하세요. 현재 연결을 사용할 수 있다면 Settings → Subscribe에서 Update via Proxy 설정을 확인하고 다시 업데이트하여 항목이 반환되는지 살펴보세요.

목록을 정리한 뒤 연결 상태가 저절로 바뀌면 어떻게 하나요?

Settings → On Demand로 이동해 Wi-Fi와 셀룰러 조건에서 설정된 동작을 확인하세요. 문제를 확인할 때 Home의 현재 서버, Global Routing 상태, 시스템 VPN 상태도 함께 기록하세요.

App Store에서 Shadowrocket 다운로드