주소, 설정 파일, 노드 인코딩부터 구분하기

‘구독 가져오기’는 콘텐츠를 가져온 다음 클라이언트가 이를 파싱하는 두 단계로 이루어집니다. URL은 콘텐츠를 가져오는 주소이고, YAML은 설정 파일의 표현 형식이며, Base64는 인코딩 방식입니다. 서로 같은 범주의 개념이 아닙니다. 같은 HTTPS 구독 주소라도 완전한 Clash YAML을 반환할 수도 있고, Base64로 인코딩된 노드 링크를 반환할 수도 있습니다. 주소만으로는 바로 가져올 수 있는지 판단할 수 없습니다.

가져오는 콘텐츠 확인할 특징 적합한 가져오기 방법 이후 업데이트
원격 구독 URL 보통 https://로 시작하며 토큰 매개변수가 포함될 수 있습니다 원격 설정 또는 구독 주소 메뉴 클라이언트가 같은 주소에 다시 요청합니다
로컬 YAML 파일 proxies:, proxy-groups: 등의 키가 포함됩니다 로컬 파일을 가져오거나 설정 폴더 열기 대개 다시 가져오거나 직접 관리해야 합니다
Base64 노드 문자열 디코딩하면 ss://, vmess:// 등의 URI가 여러 줄로 나타나는 경우가 많습니다 해당 형식을 지원하는 노드 가져오기 기능 또는 신뢰할 수 있는 변환 도구 출처와 변환 과정에 따라 다릅니다

URL 구독: 주소 복사부터 설정 활성화까지

계정 웹페이지가 아닌 클라이언트 전용 구독 주소 복사하기

구독 제공업체의 계정 페이지에서 Clash 또는 Mihomo용 출력 항목을 선택한 뒤 전체 주소를 복사하세요. 계정 로그인 페이지나 구매 내역 페이지는 구독 API 주소와 다릅니다. 제공업체가 Clash, Clash Meta, 범용 구독을 각각 제공한다면 실제 클라이언트 커널에 맞는 항목을 선택하세요. Mihomo를 사용하는 클라이언트는 보통 Clash Meta용 설정을 사용할 수 있지만, 구체적인 프로토콜 지원 여부는 확인해야 합니다.

  1. 출처를 확인하세요. 실제로 사용하는 서비스 계정에서 발급한 주소여야 합니다. 쿼리 매개변수를 유지하고, ? 뒤의 토큰을 빠뜨리지 마세요. 복사할 때 함께 들어간 따옴표, 공백, 줄바꿈은 입력란에 붙여 넣지 마세요.
  2. 원격 가져오기 메뉴를 찾으세요. 예를 들어 Clash Verge Rev에서는 ‘구독’ 페이지의 URL 입력란에 주소를 붙여 넣고 ‘가져오기’를 클릭하면 됩니다. 버전에 따라 화면이 달라질 수 있으니 로컬 파일 버튼이 아니라 URL로 설정을 가져오는 메뉴를 선택하세요.
  3. 다운로드와 파싱이 끝날 때까지 기다리세요. 가져온 뒤 설정 이름, 업데이트 시간, 노드 목록을 확인하세요. 파싱 오류가 나면 기존에 사용할 수 있는 설정을 유지하고, 계속 덮어쓰지 마세요.
  4. 새 설정을 선택하세요. 방금 가져온 설정이 활성화됐는지 확인한 다음 ‘프록시’ 페이지에서 실제로 사용할 정책 그룹의 노드를 선택하세요. 다운로드만 완료되고 설정을 전환하지 않았다면 이전 설정으로 계속 연결될 수 있습니다.
  5. 프록시 연결을 확인하세요. 먼저 클라이언트의 연결 테스트를 실행한 뒤 시스템 프록시를 켜고 테스트 페이지에 접속하세요. 시스템 프록시를 따르지 않는 트래픽까지 처리해야 할 때만 TUN을 설정하세요.

ClashX 계열 클라이언트에서는 메뉴 막대 아이콘의 ‘설정’ → ‘관리형 설정’ → ‘관리’에서 원격 구독 메뉴를 찾을 수 있습니다. 주소를 추가한 뒤 해당 설정을 선택하세요. 파생 버전에 따라 메뉴 이름이 다를 수 있습니다. ‘관리형 설정’이 보이지 않는다면 다른 클라이언트의 화면 안내를 그대로 따르지 말고 클라이언트 이름과 버전을 먼저 확인하세요.

브라우저에서 주소를 열었을 때 로그인 페이지, 인증 문자 입력 화면 또는 HTML이 표시된다면 서버가 HTTP 200을 반환했더라도 바로 파싱할 수 있는 Clash 설정이 아닙니다. 제공업체 페이지로 돌아가 구독 주소를 다시 확인하세요. 해당 웹페이지를 .yaml 파일로 저장해서는 안 됩니다.

로컬 YAML: 파일 가져오기와 구조 확인

로컬 파일은 직접 관리하는 규칙을 보관하거나 오프라인으로 설정을 옮길 때, 또는 제공업체가 전달한 설정 파일을 가져올 때 적합합니다. 흔한 확장자는 .yaml과 .yml이지만, 확장자는 파일을 식별하는 데 도움을 줄 뿐 콘텐츠 형식을 바꾸지는 않습니다. Base64 텍스트의 파일 이름을 YAML로 바꿔도 정책 그룹이나 라우팅 규칙이 자동으로 만들어지지 않습니다.

가져오기 전에 확인할 세 가지

  • 인코딩과 들여쓰기: UTF-8 텍스트를 사용하고, YAML 계층 구조에는 탭 대신 공백을 사용하세요. 목록 항목은 상위 키와 일관된 간격으로 들여써야 합니다.
  • 설정 범위: 완전한 기본 설정에는 보통 노드 또는 노드 제공자, 정책 그룹, 규칙이 포함됩니다. proxies:만 있는 파일은 노드 제공자용 콘텐츠일 수 있으며, 단독으로 실행할 수 있는 완전한 설정이 아닐 수 있습니다.
  • 커널 호환성: Mihomo가 인식하는 필드라도 구형 Clash 커널에서는 인식되지 않을 수 있습니다. ‘지원하지 않는 프록시 유형’ 오류가 발생하면 들여쓰기만 바꾸지 말고 프로토콜과 커널을 확인하세요.

아래 예시는 YAML 계층 구조와 직결 정책 하나만 보여 주며, 프록시 서버는 포함하지 않습니다. 따라서 원격 노드의 사용 가능 여부를 확인하는 용도로 쓸 수 없습니다. 7890은 예시 수신 포트이며 모든 클라이언트의 기본값은 아닙니다.

mixed-port: 7890
allow-lan: false
mode: rule
log-level: info

proxy-groups:
  - name: 수동 선택
    type: select
    proxies:
      - DIRECT

rules:
  - MATCH,수동 선택

클라이언트의 ‘구독’ 또는 ‘설정’ 페이지에서 로컬 파일 가져오기를 선택하세요. 드래그 앤 드롭을 지원하는 클라이언트라면 파일을 해당 영역에 끌어다 놓아도 됩니다. 가져온 뒤 실제 적용된 포트와 모드를 확인하세요. GUI 클라이언트는 설정 병합이나 설정 패널을 통해 파일의 필드를 덮어쓸 수 있습니다. 가져오기 전후에 포트가 달라졌다면 현재 실행 중인 설정과 로그를 기준으로 판단하세요.

Base64: 노드 디코딩은 Clash 설정 생성과 다릅니다

Base64는 암호화가 아닙니다. 텍스트를 전송하기 편한 문자열로 인코딩할 수 있지만 노드 비밀번호나 구독 토큰을 숨기지는 못합니다. 일반적인 범용 구독을 디코딩하면 한 줄에 하나씩 노드 URI가 나옵니다. 이 URI는 개별 노드를 설명하며, 보통 Clash 기본 설정에 필요한 정책 그룹, 규칙, DNS 설정은 포함하지 않습니다.

디코딩한 콘텐츠에 따라 처리 방법 선택하기

  1. 노드 URI 목록이 나온 경우: 먼저 클라이언트가 해당 프로토콜의 노드 가져오기를 지원하는지 확인하세요. 기본 설정 가져오기 기능이 URI 목록을 받을 수 있는 것은 아닙니다. 단일 노드 가져오기를 지원하더라도 범용 구독 전체를 지원한다는 뜻은 아닙니다.
  2. 완전한 YAML이 나온 경우: 설정 콘텐츠로 취급해 들여쓰기, 프로토콜 유형, 필드 호환성을 확인한 다음 로컬 파일 메뉴에서 가져오세요.
  3. 웹페이지나 오류 메시지가 나온 경우: 다운로드 출처나 접근 상태에 문제가 있다는 뜻입니다. Base64를 한 번 더 디코딩하거나 파일 확장자를 바꿔도 해결되지 않습니다.

변환이 필요하다면 제공업체의 Clash/Mihomo 전용 출력 기능이나 신뢰할 수 있는 로컬 변환 도구를 먼저 사용하세요. 변환은 단순히 디코딩하는 작업이 아닙니다. 노드 매개변수를 대상 커널 형식에 맞게 매핑하고, 정책 그룹과 규칙을 생성하며, TLS, SNI, 전송 방식 등 필요한 필드를 유지해야 합니다. 원본 정보가 충분하지 않으면 변환 도구도 누락된 인증 매개변수를 알아낼 수 없습니다.

타사 온라인 변환 서비스에 구독 주소 전체와 노드 인증 정보가 노출될 수 있습니다. 출처를 알 수 없는 사이트에 실제 주소를 붙여 넣지 말고, 공개 문의 게시판에 원본 파일을 올리지 마세요. 문제를 확인할 때는 토큰, 비밀번호, UUID, 서버 정보를 가리세요. 토큰이 이미 노출됐다면 제공업체 계정에서 구독 주소를 재설정하세요.

자동 업데이트: 기본 설정과 노드 제공자의 업데이트 주기는 별도

GUI 클라이언트에서 관리하는 ‘구독 업데이트 주기’와 커널 설정의 노드 제공자 업데이트는 서로 다른 항목입니다. 전자는 기본 설정을 다시 다운로드하고, 후자는 proxy-providers에서 참조하는 노드 콘텐츠만 업데이트합니다. 한쪽을 변경해도 다른 쪽이 함께 바뀌지는 않습니다.

업데이트 대상 설정 위치 확인할 항목
원격 기본 설정 클라이언트 구독 카드의 편집 또는 업데이트 설정 화면에서 분 단위와 시간 단위 중 무엇을 사용하는지, 자동 업데이트가 활성화됐는지
HTTP 노드 제공자 기본 설정의 proxy-providers interval은 초 단위입니다
일반 로컬 파일 파일 관리 방식 다시 불러와야 하는지, 원격 리소스를 참조하는지

아래는 Mihomo의 HTTP 노드 제공자 설정 예시입니다. 86400초는 24시간입니다. 실제 노드가 아닌 예약된 예시 도메인을 사용합니다. 이 설정 조각은 완전한 기본 설정에 포함해야 하며, 응답은 최상위에 proxies:가 있는 YAML처럼 커널이 지원하는 노드 제공자 형식이어야 합니다.

proxy-providers:
  remote-nodes:
    type: http
    url: "https://example.com/nodes.yaml"
    path: ./providers/remote-nodes.yaml
    interval: 86400

노드가 해당 그룹에 들어가려면 정책 그룹에서도 use:를 사용해 remote-nodes를 참조해야 합니다. 제공자의 상태 확인 주기는 연결 테스트 빈도만 제어하며 구독 다운로드 주기와는 다릅니다. ‘노드를 더 빠르게’ 하려고 업데이트 주기를 몇 초로 설정하지 마세요. 요청이 늘어나 서버 측 요청 제한에 걸릴 수 있습니다.

클라이언트가 실행 중이지 않거나 기기가 절전 상태이거나 네트워크를 사용할 수 없다면 예약 작업이 반드시 실행된다고 가정할 수 없습니다. 설정을 변경한 뒤 먼저 수동 업데이트를 실행해 오류가 없는지 확인하고, 업데이트 시간과 다음 실행 이후의 동작을 살펴보세요. 잔여 데이터와 만료일 표시 여부는 응답 정보와 클라이언트 지원에 따라 달라지며 콘텐츠 형식 판단과는 무관합니다.

가져오기 실패: 다운로드, 파싱, 실행 순서로 원인 찾기

1단계: 올바른 응답을 가져올 수 있는지 확인

  • HTTP 401 또는 403: 먼저 주소가 완전한지, 토큰이 유효한지, 계정 상태에 문제가 없는지 확인하세요. 403은 접근 정책이나 보안 시스템 때문에 발생할 수도 있으므로 노드 문제라고 단정할 수 없습니다.
  • HTTP 429: 업데이트 버튼을 연속해서 누르지 마세요. 서버 안내에 따라 기다린 뒤 업데이트 빈도를 낮추세요.
  • 시간 초과 또는 인증서 오류: 네트워크, 시스템 시간, 구독 도메인의 DNS 확인 결과를 점검하세요. 인증서 검증을 끄는 방법을 일반적인 해결책으로 사용하지 마세요.

2단계: 형식과 커널 확인

YAML 줄 번호 오류가 표시되면 안내된 줄과 바로 위 계층의 들여쓰기를 확인하세요. 특히 콜론, 따옴표, 목록 기호를 살펴보세요. 알 수 없는 프록시 유형 오류가 발생하면 클라이언트 버전과 커널 이름을 기록한 뒤 제공업체에서 호환되는 출력을 선택하세요. 설정에 proxy-providers가 있고 노드가 직접 나열되지 않은 것은 반드시 오류가 아닙니다. 제공자 다운로드가 성공했는지, 정책 그룹이 올바르게 참조하는지 이어서 확인하세요.

3단계: 구독 업데이트 경로와 실제 프록시 경로 구분

구독 요청은 커널 프록시를 따르지 않고 클라이언트가 직접 보낼 수 있습니다. 기존 설정으로 인터넷은 되지만 새 구독을 다운로드할 수 없다면 구독 업데이트에 별도 프록시를 설정할 수 있는지, 해당 옵션이 기존의 사용 가능한 설정에 의존하는지 확인하세요. TUN은 네트워크 트래픽을 가로채는 기능이지 Base64를 YAML로 자동 변환하거나 만료된 토큰을 복구하는 기능이 아닙니다.

마지막으로 현재 활성화된 설정, 정책 그룹 선택, 시스템 프록시를 확인하세요. 시스템 프록시 포트는 클라이언트가 실제로 수신 대기하는 포트와 일치해야 합니다. 예를 들어 클라이언트는 7890에서 수신 대기하지만 시스템 프록시가 7897을 가리키면 설정을 가져왔어도 앱이 연결되지 않을 수 있습니다. 이 순서대로 확인하면 ‘다운로드 실패’, ‘형식 비호환’, ‘트래픽이 프록시를 거치지 않음’을 구분할 수 있어 클라이언트를 반복해서 재설치하지 않아도 됩니다.