구독 링크란 무엇인가

구독 링크(subscription URL)는 HTTPS 주소 하나이며, 이 주소가 돌려주는 것은 웹 페이지가 아니라 설정 파일입니다. 클라이언트는 이 파일을 받아야 어떤 서버에 접속하고, 어떤 프로토콜을 쓰고, 어떤 분할 규칙을 적용할지 알 수 있습니다. 노드는 개별 서버의 파라미터이고, 구독 링크는 그 파라미터 묶음을 받아오는 입구입니다. 둘을 같은 것으로 보면 안 됩니다.

개별 노드 링크와의 차이는 개수와 관리 방식에 있습니다. ss://, vmess://, vless://, trojan://로 시작하는 문자열은 하나가 노드 하나만 설명하므로, 열 개를 복사하면 노드도 열 개입니다. 구독 링크는 URL 하나에 노드 묶음 전체가 들어 있습니다. 서버에서 회선을 추가하거나 유지 보수로 노드를 내리거나 입구를 조정할 때, 클라이언트에서 구독을 한 번 다시 받아오면 그대로 동기화되므로 하나씩 바꿀 필요가 없습니다.

반환 형식은 클라이언트에 따라 다릅니다. Clash, mihomo 계열은 YAML을, sing-box는 JSON을, v2rayN과 v2rayNG는 Base64로 인코딩된 노드 링크 목록을 읽고, Shadowrocket은 두 가지를 모두 읽습니다. 그래서 패널에 복사 버튼이 여러 개 있는 것이고, 형식을 잘못 고르면 흔히 “가져오기는 성공했는데 노드 목록이 비어 있는” 증상이 나타납니다.

구독에는 노드 외에 보통 분할 규칙(어떤 도메인을 직접 연결하고 어떤 도메인을 프록시로 보낼지)과 DNS 설정, 그리고 subscription-userinfo라는 응답 헤더가 함께 들어 있습니다. 여기에는 사용한 트래픽, 총 트래픽, 만료 시각이 담겨 있고, 클라이언트는 이 값으로 화면에 남은 트래픽을 표시합니다. 패널 숫자와 클라이언트 숫자가 맞지 않으면 먼저 구독을 한 번 수동 업데이트한 뒤 다시 확인하세요.

본 서비스를 예로 들면, 구독 링크 하나 뒤에는 이런 것들이 있습니다:

100+ 커버 국가 및 지역
230+ 선택 가능한 회선
대수 제한 없음 계정 하나로 여러 기기가 같은 구독 공유
14일 이유 불문 환불

사용자 패널에서 구독 링크를 받는 위치

구독 링크는 로그인 후 사용자 패널에서만 보이고, 마케팅 페이지에는 두지 않습니다. 링크를 받는 과정은 다섯 단계입니다:

  1. 패널 주소를 열고 아이디와 비밀번호로 로그인합니다. 본 서비스는 가입 시 이메일 주소가 필요 없고 아이디와 비밀번호만 있으면 되므로, 이 링크는 사실상 계정 자격 증명과 같습니다. 링크를 손에 넣으면 설정을 손에 넣은 셈입니다.
  2. 로그인 후 개요 페이지에서 ‘구독’ 영역을 찾습니다. 현재 요금제의 트래픽과 만료 시각이 여기에 표시됩니다.
  3. 클라이언트에 맞춰 형식을 고릅니다. Clash, mihomo, Clash Verge Rev는 YAML 구독을, v2rayN, v2rayNG, Shadowrocket은 범용(Base64) 구독을 선택합니다.
  4. ‘구독 링크 복사’를 누르고 텍스트 편집기에 붙여 넣어 확인합니다. 링크가 중간에 끊기거나 공백이 섞이면 안 되고, 끝의 token 파라미터가 온전해야 합니다.
  5. 바로 가져와 한 번 연결해 보고, 사용 가능한 것을 확인한 뒤 패널을 닫습니다. 가져오기에 실패하면 패널에서 다시 복사하세요. 클라이언트 설정을 반복해서 고치는 것은 권하지 않습니다.

구독 링크의 예시 형태는 https://example.com/sub?token=xxxx입니다. 여기서 token은 계정 자격 증명의 일부이지 장식용 난수가 아니므로, 이 링크는 비밀번호에 준하는 수준으로 관리해야 합니다. 단체 채팅방에 보내지 않고, 공개 저장소에 올리지 않고, 캡처를 외부에 넘기지 않습니다.

5개 플랫폼에서 각각 어떻게 가져오기할까

5개 플랫폼은 조작 경로가 다르지만 하는 일은 같습니다. URL 하나를 클라이언트에 넘기면 클라이언트가 그것을 받아옵니다. 아래 표는 많이 쓰는 클라이언트의 메뉴 위치입니다.

플랫폼별 주요 클라이언트와 구독 가져오기 경로
플랫폼 주요 클라이언트 가져오기 경로 자주 막히는 지점
Windows Clash Verge Rev、v2rayN 설정 → URL에서 가져오기; v2rayN은 구독 그룹 설정 → 추가 가져온 뒤 해당 설정을 현재 설정으로 지정하지 않음
Android Clash Meta for Android、v2rayNG 설정 → 새로 만들기 → URL에서 가져오기; v2rayNG는 추가 후 메인 화면에서 업데이트 시스템 절전 정책이 백그라운드 프로세스를 정리
iOS Shadowrocket、Stash 홈 화면 오른쪽 위 + → 유형에서 Subscribe 선택 → 붙여 넣고 저장 저장만 하고 업데이트를 실행하지 않아 목록에 노드가 없음
macOS ClashX Meta、Stash 메뉴 막대 아이콘 → 설정 → 관리형 설정 → 관리형 설정 추가 첫 연결 시 네트워크 권한 허용 필요
Linux Clash Verge Rev, mihomo 코어 그래픽 인터페이스는 위와 동일하고, 명령줄에서는 curl로 받아온 뒤 코어를 다시 불러옵니다 코어는 CPU 아키텍처에 맞는 패키지를 골라야 함

데스크톱: Windows와 macOS

Clash Verge Rev는 ‘설정’ 페이지에서 새 설정을 만들고 ‘URL에서 가져오기’를 선택해 붙여 넣은 뒤 가져오기를 누르고, 설정 목록에서 그것을 선택합니다. v2rayN은 먼저 ‘구독 그룹 설정’에서 주소를 추가하고 메인 화면으로 돌아와 ‘구독 업데이트’를 눌러야 하며, 두 단계 중 하나도 빠지면 안 됩니다. macOS의 ClashX Meta는 메뉴 막대 아이콘 → 설정 → 관리형 설정 → 관리형 설정 추가 순서이고, 첫 연결 시 시스템 설정에서 네트워크 권한을 허용해야 합니다. 데스크톱에서 가장 흔한 실패 원인은 가져온 뒤 새 설정을 현재 설정으로 지정하지 않아 메인 화면에 계속 예전 노드가 뜨는 것입니다.

모바일: Android와 iOS

v2rayNG는 사이드 메뉴에서 ‘구독 그룹 설정’으로 들어가 오른쪽 위에서 추가하고, 붙여 넣은 뒤 메인 화면으로 돌아와 ‘구독 업데이트’를 누릅니다. Clash Meta for Android는 ‘설정’ → ‘새 설정’ → ‘URL에서 가져오기’ 순서입니다. Android는 시스템 설정에서 백그라운드 상주를 허용해야 하며, 그렇지 않으면 백그라운드로 전환된 뒤 일정 시간이 지나면 연결이 끊깁니다. iOS의 Shadowrocket은 홈 화면 오른쪽 위 +에서 유형을 Subscribe로 선택해 붙여 넣고 저장한 뒤 홈으로 돌아와 구독 항목에서 업데이트를 한 번 실행해야 노드가 목록에 나타납니다. ‘저장은 했는데 노드가 없다’는 거의 대부분 이 단계를 빠뜨린 경우입니다.

Linux: 명령줄에서 받아오기

그래픽 인터페이스가 없을 때는 curl로 구독 내용을 코어 설정 파일에 직접 쓰고, 코어를 다시 불러옵니다:

curl -fsSL "https://example.com/sub?token=xxxx" -o ~/.config/mihomo/config.yaml
chmod 600 ~/.config/mihomo/config.yaml

받아오기가 끝나면 서비스를 재시작하거나 클라이언트의 ‘설정 다시 불러오기’를 눌러야 새 노드가 적용됩니다. 파일 권한을 600으로 두는 것은 같은 머신의 다른 계정이 그 안의 token을 읽지 못하게 하기 위해서입니다. Clash Verge Rev 그래픽 인터페이스를 쓸 때는 절차가 Windows와 같습니다.

클라이언트가 구독을 받아오지 못할 때는 먼저 다른 네트워크 환경에서 다시 시도하고(예: Wi-Fi에서 모바일 데이터로 전환), 링크가 메신저에서 잘리거나 공백이 붙지 않았는지 확인합니다. 두 가지를 모두 배제한 뒤에 클라이언트 버전을 의심하세요.

얼마나 자주 업데이트할까

구독 내용은 실시간으로 바뀌지 않습니다. 서버에서 새 회선을 올리거나 유지 보수로 노드를 내리거나 분할 규칙을 조정할 때만 바뀌고, 하루에 한 번도 바뀌지 않을 수 있습니다. 대부분의 클라이언트는 기본으로 하루 한 번 자동 업데이트하며, 이 주기면 일상 사용에 충분합니다. 수동 업데이트는 보통 설정 목록을 당기거나 ‘구독 업데이트’ 버튼으로 실행합니다.

즉시 수동 업데이트가 필요한 경우는 네 가지입니다. 패널에서 요금제를 바꿔 트래픽이나 권한이 달라졌을 때, 구독 링크를 재설정했을 때, 특정 지역 노드가 목록에서 사라진 것을 발견했을 때, 연결 품질이 눈에 띄게 떨어졌을 때입니다. 반대로 연결할 때마다 업데이트하는 것은 의미가 없습니다. 요청만 한 번 늘 뿐 회선이 빨라지지는 않습니다.

업데이트 방향은 한쪽입니다. 클라이언트는 서버가 돌려준 내용을 기준으로 삼습니다. 즉 로컬에서 수정한 규칙, DNS, 포트는 다음 업데이트 때 통째로 교체됩니다.

자신의 수정 사항을 오래 유지하려면 클라이언트의 덮어쓰기·확장 기능(Clash Verge의 Merge, mihomo의 proxy-providers와 rule-providers)을 사용해 수동 변경 내용을 덮어쓰기 레이어에 두고, 구독이 생성한 설정 파일을 직접 고치지 않아야 합니다. 그렇지 않으면 업데이트할 때마다 다시 고쳐야 합니다.

결론: 평소에는 클라이언트의 일일 자동 업데이트에 맡기고, 주 1회 수동 업데이트를 안전장치로 두면 됩니다. 정말로 ‘즉시 업데이트’가 필요한 경우는 요금제를 바꿨을 때와 링크를 재설정했을 때 두 가지뿐입니다.

링크가 유출된 뒤에는 어떤 순서로 처리할까

구독 링크 안의 token은 계정 자격 증명이므로, 링크를 얻은 사람은 설정 전체를 가져가고 트래픽을 소모할 수 있습니다. 외부 유출을 발견했을 때는 어떤 조치를 하느냐보다 순서가 더 중요합니다:

  1. 먼저 재설정합니다. 패널에서 구독 링크를 재설정해 기존 token을 즉시 무효화합니다. 이 단계가 가장 우선이며, 먼저 출혈을 막고 나서 나머지를 논합니다.
  2. 다음으로 기기를 하나씩 교체합니다. 각 기기에서 예전 설정을 지우고 새 링크를 가져옵니다. 한 대만 바꾸면 나머지 기기는 이미 무효가 된 주소를 계속 사용하게 됩니다.
  3. 그다음 사본을 정리합니다. 채팅 기록, 클라우드 노트, 캡처, 공개 저장소에 있는 예전 링크를 함께 삭제합니다. 이 시점에 예전 링크는 이미 무효이므로, 정리는 다음에 잘못 쓰지 않기 위한 것입니다.
  4. 트래픽을 확인합니다. 패널에서 사용한 트래픽과 실제 사용량이 맞는지 보고, 뚜렷한 차이가 있으면 지원 채널에 문의합니다.
  5. 마지막으로 계정을 확인합니다. 계정 비밀번호까지 함께 유출되었다면 비밀번호를 바꾸고 모든 기기에서 다시 로그인합니다.

순서를 바꾸면 안 됩니다. 먼저 재설정하고 나서 기기를 하나씩 교체하면, 유출된 링크는 첫 단계부터 무효입니다. 반대로 기기를 지우고 나중에 재설정하면 그 사이에 예전 링크가 여전히 살아 있습니다.

구독 링크를 재설정하면 모든 기기의 예전 설정이 함께 무효가 됩니다. 이것이 대가이자 존재 이유입니다. 그러니 평소에 외부로 넘기지 말고, 문제가 생긴 뒤에 수습하지 마세요.

가져온 뒤의 점검표

가져오기를 마쳤다고 설정이 맞는 것은 아닙니다. 아래 일곱 항목은 ‘받아올 수 있는가, 연결되는가, 정상적으로 해석되는가’ 세 층으로 배열했으니 하나씩 대조하면 문제가 어느 층에 있는지 대체로 찾을 수 있습니다.

  • ✅ 클라이언트에 노드 목록이 온전히 보이고, 개수가 패널 표시와 일치합니다.
  • ✅ 노드 하나를 선택해 국제 사이트를 열었을 때 페이지가 끝까지 로드됩니다. 제목만 뜨는 상태가 아닙니다.
  • ✅ 클라이언트에 표시되는 남은 트래픽이 패널과 일치합니다. 구독의 사용량 정보를 읽었다는 뜻입니다.
  • ✅ 분할 규칙이 작동합니다. 국내 사이트는 직접 연결되고, 가속이 필요한 도메인은 프록시를 통합니다.
  • ❌ 노드 목록이 비어 있음: 구독 형식을 잘못 고른 경우가 대부분입니다. 패널로 돌아가 다른 형식으로 다시 복사하세요.
  • ❌ 401, 403 또는 ‘구독이 만료되었습니다’ 안내: token이 무효입니다. 다시 복사하거나 재설정한 뒤 가져오세요.
  • ❌ 연결은 되는데 웹 페이지가 열리지 않음: 먼저 시스템 시각이 정확한지 확인하고, 그다음 클라이언트 DNS 설정이 로컬 네트워크에 덮어쓰이지 않았는지 봅니다.

노드 목록이 비어 있는 것은 받아오기 단계의 문제이고, ‘연결은 되는데 열리지 않는다’는 연결이 수립된 뒤의 해석 문제입니다. 두 원인은 같은 층에 있지 않습니다. 받아오기 실패는 링크 자체를, 연결 실패는 시각과 DNS를 먼저 확인하세요. 나눠서 점검하는 편이 노드를 계속 바꾸는 것보다 훨씬 빠릅니다.