VPN 구독 링크(subscription URL)는 평범한 주소 한 줄이지만, 클라이언트에 어떤 서버가 표시되는지를 결정합니다. 서비스 제공자가 사용자 패널에서 생성하고, 클라이언트가 주기적으로 접속해 응답을 파싱해 선택 가능한 서버 목록으로 만듭니다. 무엇이 들어 있는지, 어떻게 가져오는지, 유출되면 어떻게 대처하는지 — 이 세 가지만 정리하면 이런 클라이언트는 바로 다룰 수 있습니다.

구독 링크란: URL 하나에 담긴 서버 목록

구독 링크는 서버 자체가 아니라 '서버 목록을 받아오는 주소'입니다. 클라이언트는 이를 구독 소스로 등록하고 HTTPS 요청을 한 번 보내 텍스트를 받아옵니다. 대부분은 Base64로 인코딩된 공유 링크 목록이며 한 줄에 하나씩이고, 프로토콜은 Shadowsocks, VMess, Trojan, VLESS, Hysteria2, TUIC 중 하나일 수 있습니다. Clash / Mihomo가 쓰는 YAML을 라우팅 규칙까지 함께 담아 반환하는 경우도 있습니다. 클라이언트는 파싱을 마치면 각 줄을 서버 목록의 항목 하나로 변환합니다.

응답 내용을 뜯어보면 서버 항목 하나에 담기는 필드는 많지 않지만, 각 항목 모두 '연결 가능'을 위한 필수 조건입니다:

구독 내용에 자주 등장하는 필드
필드 의미 민감도
서버 주소 / 도메인 서버 진입점. IP일 수도 있고 위장 도메인일 수도 있습니다 높음
포트와 프로토콜 예: 443 포트의 Trojan, VLESS, Hysteria2 높음
인증 정보 VMess의 UUID, Trojan / Hysteria2의 비밀번호 높음
전송 및 위장 파라미터 TLS, SNI, WebSocket 경로, gRPC 서비스 이름 높음
암호화 방식 Shadowsocks 암호화 스위트, 예: aes-256-gcm 중간
라우팅 규칙(일부 구독) Clash 계열 설정에 포함된 규칙 세트와 정책 그룹 낮음

다시 말해 구독 링크는 서버 주소, 프로토콜 파라미터, 인증 정보를 한 번에 묶은 것입니다. 패널 비밀번호나 결제 정보는 들어 있지 않지만, 링크를 손에 넣은 사람은 이 서버들을 그대로 사용할 수 있습니다. 그래서 자격 증명에 준해 관리해야 합니다.

링크가 민감한지 판단하는 데 형식을 볼 필요는 없습니다. 다른 기기의 클라이언트에 넣었을 때 서버가 업데이트되고 연결까지 되면, 그것은 비밀번호와 같습니다.

한 가지 경계는 기억해 두세요. 서버 하나의 공유 링크가 유출되면 피해는 서버 하나지만, 구독 링크가 유출되면 피해는 목록 전체입니다. 두 가지의 보관 기준은 다릅니다.

어디에서 받나: 사용자 패널의 복사 메뉴

구독 링크는 서비스 제공자가 생성하고 계정에 귀속되므로, 받는 경로는 하나뿐입니다. 사용자 패널에 로그인하는 것입니다. 가입 단계에는 아이디와 비밀번호만 필요하고 이메일 주소는 필요하지 않으며, 로그인하면 구독 메뉴가 개요 페이지에 있습니다.

  1. 패널에 로그인하고 개요 페이지로 들어가 '구독 링크' 영역을 찾습니다. 여기에 현재 계정에 해당하는 주소가 표시됩니다.
  2. 전체를 복사합니다. 구독 링크에는 보통 긴 token 파라미터가 붙어 있어 한 글자라도 빠지면 클라이언트 업데이트가 실패합니다. 대표적인 증상은 404 응답이나 빈 서버 목록입니다.
  3. 가져오기 방식을 선택합니다. 대부분의 클라이언트는 클립보드에서 바로 읽어오는 것을 지원하고, 패널에서 QR 코드나 원클릭 가져오기를 제공하기도 합니다. QR 코드와 링크는 같은 자격 증명이므로, 캡처해서 외부로 보내는 것은 유출과 같습니다.
  4. 필요할 때 다시 복사합니다. 링크는 계정에 묶여 있어 패널에서 언제든 다시 복사할 수 있으니 따로 백업해 둘 필요가 없습니다. 사용량이 일정하지 않다면 트래픽 패키지를 먼저 쓰는 것도 방법인데, 이 패키지는 만료되지 않습니다.

보면서 따라 하고 싶다면 가이드에 플랫폼별 그림 단계가 있으며, 순서는 위 네 단계와 같습니다.

클라이언트 가져오기: 플랫폼별 작업 순서

플랫폼마다 클라이언트의 메뉴 이름은 다르지만 흐름은 같습니다. 구독 추가 → 수동으로 한 번 업데이트 → 서버 목록 내려받기. 아래 표는 플랫폼별로 자주 쓰는 클라이언트와 메뉴 위치를 정리한 것입니다.

플랫폼별 클라이언트의 구독 가져오기 위치
플랫폼 주요 클라이언트 구독 추가 메뉴 업데이트 방법
Windows v2rayN / Clash Verge Rev v2rayN: 구독 → 구독 그룹 설정 → 추가, Clash Verge: 구독 → 새로 만들기 v2rayN에서 '구독 업데이트(프록시 사용 안 함)' 우클릭
macOS ClashX / Clash Verge / Stash ClashX: 설정 → 관리형 설정 → 관리 → 추가 메뉴 막대 아이콘 → 구독 업데이트
iOS Shadowrocket / Stash 오른쪽 위 '+' → 유형에서 Subscribe 선택 → 주소 붙여넣기 구독 항목을 왼쪽으로 밀기 → 업데이트
Android v2rayNG / Clash Meta / NekoBox 왼쪽 메뉴 → 구독 그룹 설정 → 구독 추가 오른쪽 위 메뉴 → 구독 업데이트
Linux mihomo / sing-box 설정 파일 또는 구독 필드에 기록 예약 작업 또는 수동으로 가져오기

가져올 때 가장 자주 막히는 세 가지

명령줄에 익숙한 사용자라면 몇 줄의 shell로 구독 링크가 쓸 만한지 먼저 확인할 수 있습니다:

# 패널에서 복사한 구독 링크는 https://example.com/edge-api/client/subscribe?token=... 형태입니다
SUB_URL="https://example.com/edge-api/client/subscribe?token=..."

# 가져와서 디코딩: 대부분의 구독은 Base64로 인코딩된 공유 링크를 반환하며 한 줄에 노드 하나
curl -sL "$SUB_URL" | base64 -d | wc -l

# 디코딩한 한 줄은 대략 이렇게 생겼습니다(203.0.113.10은 문서용 예시 주소이며 실제 노드가 아닙니다)
# ss://[email protected]:8388#HK-Direct

# Linux에서 mihomo / Clash용 설정 파일로 바로 저장
curl -sL "$SUB_URL" -o ~/.config/mihomo/config.yaml

반환된 줄 수가 보통 서버 개수입니다. 디코딩이 실패한다면 이 구독이 Base64 목록이 아니라 YAML을 반환한다는 뜻이므로, 설정 파일 방식으로 가져오면 됩니다.

얼마나 자주 업데이트하나: 구독의 갱신 방식

구독 링크의 가치는 '서버 쪽 변화를 따라간다'는 데 있습니다. 서버에서 지역이 추가되거나 특정 회선이 종료되거나 진입 도메인이 바뀌어도 다시 가입할 필요도, 클라이언트를 재설치할 필요도 없습니다. 구독 업데이트를 한 번 누르면 서버 목록이 최신 상태로 동기화됩니다. 대부분의 클라이언트는 자동 업데이트를 지원하며, 보통 24시간마다 한 번 가져오거나 시작할 때 업데이트합니다. 수동 업데이트 메뉴는 대개 구독 항목에 있습니다.

회선 풀의 규모가 구독 업데이트의 의미를 결정합니다. 현재 사용 가능한 회선 규모는 다음과 같습니다:

110+ 국가 및 지역 커버리지
230+ 회선, IEPL 전용선·중계·직결 포함
무제한 동시 접속 기기 수
60일 이유 없는 환불

가져온 뒤: 라우팅 규칙과 DNS 유출

구독 가져오기에 성공하고 웹페이지가 열린다는 것은 '연결됐다'는 뜻일 뿐입니다. 일상에서 안정적으로 쓰려면 두 가지를 더 확인해야 합니다.

라우팅 규칙: 어디를 직결하고 어디를 회선으로 보낼지

규칙 모드에서 클라이언트는 도메인과 IP를 기준으로 트래픽을 세 갈래로 나눕니다. 국내 사이트는 직결, 해외 사이트는 회선 경유, 광고·추적 도메인은 바로 차단입니다. Clash 계열 구독은 보통 규칙 세트를 함께 제공해 가져오면 바로 적용되고, v2rayN, v2rayNG 같은 클라이언트는 라우팅 모드(중국 본토 우회 / 전역)를 직접 선택해야 합니다. 규칙 모드의 장점은 불필요한 우회를 줄이는 것입니다. 국내 사이트는 원래 속도를 유지하고, 회선을 타야 하는 요청만 서버를 거칩니다. 회선 유형으로는 IEPL 전용선이 안정성이 중요한 상황에 어울리고, 중계와 직결은 각각 맞는 쓰임이 있습니다.

DNS 유출: 두 가지 결과와 한 가지 대책

클라이언트가 도메인 해석을 로컬 네트워크의 DNS에 맡기면 두 가지 문제가 생깁니다. 첫째, 해석 결과가 회선 출구 지역과 맞지 않아 해외 사이트 접속 시 로컬 노드로 해석되어 속도가 눈에 띄게 떨어집니다. 둘째, 어떤 도메인에 접속했는지 로컬 DNS가 훤히 알게 됩니다. 대책은 클라이언트에서 원격 DNS나 DNS 유출 보호를 켜거나, fake-ip 모드를 사용해 도메인 해석을 프록시 쪽에서 끝내는 것입니다.

확인 방법: IP 확인을 열어 출구 국가가 선택한 서버와 일치하는지 확인하고, DNS 유출 검사도 한 번 돌려 해석 서버가 로컬 대역에 없는지 확인하세요. 두 가지가 모두 맞아야 가져오기가 제대로 끝난 것입니다.

링크가 유출됐다면: 즉시 해야 할 세 가지

구독 링크가 유출되는 흔한 경로는 단체 채팅방에 스크린샷을 올리거나, 포럼에 도움을 청하며 붙여넣거나, 공개 클라우드에 저장하거나, 공용 PC 클립보드에 남겨 두는 경우입니다. 발견했다면 순서대로 세 가지를 하세요.

처리 순서는 먼저 재설정, 그다음 점검, 마지막으로 각 기기 업데이트입니다. 재설정은 패널에서 클릭 한 번이면 되니 비용이 가장 낮고, 미룰수록 소모되는 트래픽만 늘어납니다.

일상에서 유출 확률을 낮추는 방법도 간단합니다. 구독 링크는 클라이언트와 비밀번호 관리자에만 두고, 가족이 함께 써야 할 때는 링크를 서로 전달하지 말고 각자 계정에 로그인해 가져오면 됩니다.

자주 묻는 질문

구독 링크를 가족이나 친구에게 공유해도 되나요?

링크를 공유 자격 증명처럼 퍼뜨리는 것은 권하지 않습니다. 같은 계정의 동시 접속 기기 수에는 제한이 없으니 가족 구성원이 각자 로그인해 가져오면 됩니다. 링크가 단체 채팅방이나 공개된 위치에 들어가는 순간 목록 전체를 넘긴 것이나 마찬가지이고, 이상 징후를 발견하면 재설정하는 수밖에 없습니다.

새 기기로 바꾸면 구독 링크를 다시 받아야 하나요?

아닙니다. 사용자 패널에 로그인해 같은 링크를 복사하고 새 기기에서 한 번 가져와 업데이트하면 바로 쓸 수 있습니다. 다시 가입할 필요도, 기기마다 링크를 따로 만들 필요도 없습니다.

구독 링크에 만료 기한이 있나요?

링크는 계정에 묶여 있고 별도의 유효 기간을 두지 않습니다. 계정을 쓸 수 있는 동안에는 패널에서 언제든 최신 링크를 복사할 수 있습니다. 오래 쓰지 않는 기기에서는 클라이언트의 구독 항목을 삭제해 읽힐 수 있는 자격 증명을 하나라도 줄이는 편이 좋습니다.