1. 구독 주소와 구독 내용부터 구분하기
Clash에 구독을 가져올 때 가장 헷갈리기 쉬운 부분은 ‘어디서 가져오는지’와 ‘무엇을 가져오는지’입니다. URL은 원격 리소스의 주소이고, Base64는 텍스트 인코딩 방식이며, YAML은 설정 파일에 사용하는 데이터 형식입니다. 서로 같은 수준의 세 가지 선택지가 아닙니다. 하나의 HTTPS 구독 주소에서도 YAML이 반환될 수도 있고, Base64로 인코딩된 노드 목록이 반환될 수도 있습니다.
링크를 복사할 수 있다고 해서 현재 클라이언트에서 반드시 사용할 수 있는 것은 아닙니다. 파일 이름이 .yaml로 끝나더라도 서버가 실제로 설정을 반환한다는 뜻은 아닙니다. 호환성을 확인하려면 구독 주소, 응답 내용, 클라이언트에서 사용하는 코어를 함께 살펴봐야 합니다.
| 항목 | 일반적인 식별 방법 | 가져올 때의 의미 |
|---|---|---|
| 구독 URL | 보통 https://로 시작하며 경로와 쿼리 매개변수가 포함될 수 있음 |
클라이언트가 주소에서 설정을 가져오며, 업데이트를 위해 주소를 저장해 둘 수 있음 |
| Base64 텍스트 | 대개 문자·숫자·기호가 길게 이어지며 끝에 등호가 붙을 수 있음 | 먼저 디코딩 결과를 확인해야 함. 노드 URI 목록은 보통 변환하거나 전용 가져오기 기능을 사용해야 함 |
| YAML 설정 | 일반적인 필드는 proxies:, proxy-groups:, rules:입니다. |
필드, 프로토콜, 참조가 모두 호환되면 설정으로 사용할 수 있음 |
2. 구독 링크 복사부터 가져오기, 첫 연결까지
1. 제공업체에서 맞는 설정 구독 주소 찾기
구독 제공업체의 계정 페이지에서 ‘Clash’ 또는 현재 코어에 맞는 구독 항목을 찾습니다. 일반 구독, Clash 설정, mihomo 설정이 따로 있다면 클라이언트에서 실제로 사용하는 코어에 맞춰 선택하세요. mihomo는 Clash Meta의 후속 코어 이름입니다. 일부 확장 프로토콜과 필드를 사용하려면 해당 기능을 지원해야 합니다. 인터페이스가 비슷해도 설정 기능까지 완전히 같은 것은 아닙니다.
- HTTPS 주소 전체를 복사하고,
?뒤의 쿼리 매개변수와&로 구분된 항목도 그대로 둡니다. - 계정 관리 페이지, 결제 페이지, 공유 안내 페이지의 주소는 복사하지 마세요. 이런 페이지에서는 보통 HTML이 반환됩니다.
- 메신저로 링크를 전달한 뒤에는 끝에 마침표, 따옴표, 줄바꿈이 붙지 않았는지 확인하세요. 문장부호까지 함께 가져오는 일을 막을 수 있습니다.
- 무작위 문자열처럼 보이는 토큰을 임의로 삭제하지 마세요. 서버에서 구독 권한을 확인하는 데 쓰일 수 있습니다.
2. 설정 관리 화면에 URL 붙여넣기
메뉴 이름은 클라이언트마다 다를 수 있습니다. 일반적인 경로는 ‘설정’ → ‘새로 만들기’ → ‘원격’ 또는 ‘구독’ → ‘구독 추가’ → ‘URL’입니다. 주소 입력란에 링크를 붙여넣고 설정 이름을 지정한 뒤 다운로드하거나 가져옵니다. 화면에 ‘파일에서 가져오기’만 있다면 로컬 파일을 읽는 기능이므로 URL을 파일 경로처럼 입력하면 안 됩니다.
- 가져오기를 처음 시도할 때는 기존에 사용 가능한 설정을 유지하고, 이전 항목을 삭제하지 마세요.
- 새 설정에는 ‘일상 구독-기본’처럼 알아보기 쉬운 이름을 붙이세요. 여러 항목을 모두 ‘기본값’으로 저장하지 않는 편이 좋습니다.
- 다운로드와 파싱이 끝날 때까지 기다린 뒤, 목록에 항목이 추가됐는지만 보지 말고 작업 결과가 성공으로 표시되는지 확인하세요.
- 해당 설정을 선택해 활성화하세요. ‘추가됨’과 ‘현재 사용 중’은 서로 다른 상태입니다.
- 정책 그룹 화면에서 예상한 그룹과 노드가 표시되는지 확인한 뒤, 출구 노드를 하나 선택해 연결을 테스트합니다.
시스템 프록시와 TUN은 트래픽을 전달하는 방식이지, 구독을 사용할 수 있는 설정으로 변환하는 기능이 아닙니다. 처음 문제를 확인할 때는 설정이 로드되고 정책 그룹이 표시되는지 먼저 확인한 다음 시스템 프록시나 TUN을 살펴보세요. 변수가 줄어듭니다. 포트도 클라이언트에 실제로 표시되는 값을 기준으로 확인하세요. 예시에서 흔히 쓰는 7890이 모든 설치 환경의 포트라고 단정하면 안 됩니다.
3. Base64 구독을 YAML로 바로 사용할 수 없는 이유
일반 구독은 여러 줄의 노드 URI를 하나의 Base64 텍스트로 인코딩하는 경우가 많습니다. 디코딩하면 ss://, vmess://, trojan://으로 시작하는 줄이 나올 수 있습니다. 각 줄에는 노드 연결 정보가 담겨 있지만, Clash에 필요한 정책 그룹, 규칙 순서, DNS 설정까지 포함되는 것은 아닙니다.
일부 클라이언트에는 노드 가져오기나 구독 변환 기능이 있지만, 이는 클라이언트의 부가 기능입니다. 모든 Clash 설정 가져오기 메뉴에서 지원된다고 볼 수는 없습니다. Base64 텍스트 전체를 config.yaml로 저장해도 파일 이름만 바뀔 뿐 내용이 YAML로 변하지는 않습니다.
가능하면 원본 형식을 우선 사용하고, 필요한 경우에만 변환하기
- 먼저 제공업체 페이지로 돌아가 Clash YAML을 바로 반환하는 구독 항목이 있는지 확인하세요.
- 일반 구독만 제공된다면 현재 클라이언트가 해당 형식을 명시적으로 지원하는지, 어떤 프로토콜을 지원하는지 확인하세요.
- 변환이 꼭 필요하다면 제공업체가 제공하는 기능이나 신뢰할 수 있는 로컬 도구를 우선 사용하고, 결과에 노드·정책 그룹·규칙이 제대로 들어 있는지 확인하세요.
- 변환 후에는 출처를 기록해 두세요. 로컬 파일을 한 번 가져온 것뿐이라면 이후 원격 노드 변경 사항이 해당 파일에 자동으로 반영되지 않는 경우가 많습니다.
4. YAML 설정: 전체 설정과 노드 제공자 파일
YAML은 문법 형식일 뿐이며, 파일 구조는 사용하는 위치의 요구사항에도 맞아야 합니다. 전체 설정에는 수신 포트, 노드, 정책 그룹, 규칙, DNS가 포함될 수 있습니다. proxy-providers에서 사용하는 노드 파일은 보통 노드 데이터만 제공합니다. 트래픽 분산 정책까지 설정된 Profile과 같은 것으로 보면 안 됩니다.
아래는 구조를 이해하기 위한 최소한의 직결 설정입니다. 원격 프록시 노드가 없으므로 구독을 대신할 수 없습니다. 활성화하면 규칙에 따라 연결이 DIRECT로 전달됩니다. mixed-port: 7890은 하나의 수신 포트에서 HTTP와 SOCKS 프록시 연결을 모두 받는다는 뜻입니다. 실제로 사용하기 전에 해당 포트를 다른 프로그램이 사용 중인지 확인하세요.
mixed-port: 7890
allow-lan: false
mode: rule
log-level: info
proxies: []
proxy-groups:
- name: 수동 선택
type: select
proxies:
- DIRECT
rules:
- MATCH,수동 선택
설정을 확인할 때는 다음 세 부분을 중점적으로 살펴보세요.
- 노드 출처:
proxies에 노드를 직접 정의하거나proxy-providers를 통해 가져올 수 있습니다. 인라인 노드가 보이지 않는다고 설정이 비어 있는 것은 아닙니다. 제공자가 정상적으로 로드됐는지도 확인하세요. - 정책 그룹 참조: 그룹에 지정된 노드 이름, 다른 그룹 이름, 제공자 참조가 실제로 존재해야 합니다. 이름이 바뀌면 기존 참조가 작동하지 않을 수 있습니다.
- 규칙 대상:
rules의 대상은 유효한 정책으로 해석되어야 합니다. 예시의 ‘수동 선택’은 그룹 이름과 정확히 일치합니다. 한쪽을 수정하면 다른 쪽도 함께 확인하세요.
YAML을 편집할 때는 공백으로 들여쓰고 Tab은 사용하지 마세요. 비밀번호, 특수 문자, 콜론이 포함된 문자열은 YAML 문법에 맞게 인용해야 합니다. 원격 구독 설정을 직접 수정하면 다음 업데이트 때 변경 사항이 덮어써질 수 있습니다. 수정 내용을 유지해야 한다면 클라이언트에서 지원하는 오버라이드·병합·확장 기능을 사용하고 적용 순서도 확인하세요.
5. 구독 업데이트: 원격 항목, 로컬 파일, 덮어쓰기 범위
원격 구독 항목은 보통 URL을 저장해 두었다가 업데이트할 때 다시 요청합니다. 로컬에서 가져온 YAML은 대개 한 번 저장한 파일의 스냅샷입니다. 파일 감시나 자동 새로고침을 지원하는지는 클라이언트 구현에 따라 다릅니다. 두 방식 모두 설정 목록에 표시될 수 있지만 업데이트 출처는 다릅니다.
처음 가져온 뒤 수동 업데이트 한 번 실행하기
현재 항목의 메뉴에서 ‘업데이트’ 또는 ‘새로고침’을 찾아 실행한 뒤, 업데이트 시간이 바뀌는지와 결과가 성공인지 확인하세요. 주기적 업데이트를 지원한다면 우선 24시간 간격으로 설정하고, 이후 제공업체 안내에 따라 조정할 수 있습니다. 간격 단위는 분·시간·초 등으로 다를 수 있으니 입력란의 표기를 확인하세요. 너무 자주 요청하면 서버에서 요청을 제한할 수 있습니다.
- 업데이트는 성공했지만 노드가 그대로인 경우: 서버에서 같은 내용을 반환했거나 다른 설정이 활성화되어 있을 수 있습니다. 현재 Profile 이름부터 확인하세요.
- 구독은 업데이트됐지만 제공자 오류가 계속되는 경우: 기본 설정 다운로드와
proxy-providers의 원격 노드 다운로드는 별개의 과정입니다. 각각 확인해야 합니다. - 로컬 규칙이 사라진 경우: 원격 업데이트 과정에서 원본 파일이 덮어써졌을 수 있습니다. 계속 유지할 규칙은 구독 내용에 반복해서 추가하지 말고, 지원되는 오버라이드 설정에 넣으세요.
- 업데이트 주소가 바뀐 경우: 제공업체가 토큰을 재발급하면 이전 주소가 작동하지 않을 수 있습니다. 새로고침만 반복하지 말고 저장된 URL을 새 주소로 바꾸세요.
구독을 다운로드할 때 프록시를 거치는지도 클라이언트 구현과 관련 설정에 따라 다릅니다. ‘먼저 연결해야 업데이트할 수 있다’는 상황이 반복되면 이전에 사용하던 설정으로 전환한 뒤 새 항목을 업데이트해 보세요. 구독을 받기 위해 시스템 프록시, DNS, TUN을 한꺼번에 초기화하지 마세요.
6. 가져온 뒤 노드가 비어 있을 때: 요청·형식·로드 순서 확인
‘노드가 비어 있음’ 문제는 다운로드 전에 생길 수도 있고, 파싱 또는 표시 단계에서 발생할 수도 있습니다. 오류 원문을 먼저 보관한 뒤 아래 표를 따라 범위를 좁혀 보세요. 반복해서 재설치하는 것보다 효과적입니다. 로그에 주소 매개변수, 노드 인증 정보, 계정 식별자가 포함되어 있다면 공유하기 전에 가리세요.
| 증상 또는 로그 | 먼저 확인할 항목 | 다음 조치 |
|---|---|---|
| HTTP 401 또는 403 | 토큰, 계정 권한, 접근 정책 | 제공업체 페이지에서 구독을 다시 복사하고 구독이 유효한지, 클라이언트 요청에 필요한 조건이 있는지 확인하세요. |
| HTTP 429 | 업데이트 빈도 및 요청 제한 | 연속해서 새로고침하지 말고 서버 안내에 나온 시간만큼 기다린 뒤 다시 요청하세요. |
| 200 응답이지만 내용이 HTML로 시작함 | 로그인 페이지, 오류 페이지, 접근 확인 페이지 | 실제 구독 주소로 바꾸세요. 200은 요청에 응답했다는 뜻일 뿐, 내용이 사용 가능하다는 의미는 아닙니다. |
| YAML 파싱 실패 | 응답 형식, 들여쓰기, 오류 행 주변의 필드 | Base64, JSON 오류 메시지, 웹페이지가 아니라 YAML이 다운로드됐는지 확인하세요. |
| 지원하지 않는 노드 유형이라는 메시지 | 프로토콜 및 현재 코어의 지원 여부 | 현재 코어에 맞는 구독 출력을 선택하거나 클라이언트 문서에 따라 코어를 업데이트하세요. |
| 설정 로드는 성공했지만 목록에 DIRECT만 표시됨 | 제공자 다운로드, 노드 필터링, 정책 그룹 참조 | 제공자 상태와 필터 표현식을 확인한 다음 현재 활성화된 설정도 확인하세요. |
‘테스트 시간 초과’를 곧바로 ‘가져오기 실패’로 판단하지 마세요.
노드는 표시되지만 지연 시간 테스트가 시간 초과된다면, 문제는 대개 연결 테스트 단계에 있습니다. 테스트 URL에 접근할 수 없거나, 노드 인증에 실패했거나, 네트워크가 차단됐거나, DNS에 문제가 있어도 시간 초과가 발생할 수 있습니다. 이때는 실제 연결 로그를 살펴보고, 정상적인 YAML을 다른 형식으로 다시 변환하지 마세요.
반대로 설정 카드에 ‘추가 성공’이라고 표시되어도 코어가 설정을 받아들였다는 뜻은 아닙니다. 일부 인터페이스는 항목을 먼저 저장한 다음 다운로드하거나 전환합니다. 다운로드 성공, 코어 로드 성공, 현재 설정 선택 여부, 정책 그룹 참조의 유효성을 모두 확인해야 합니다.
7. 가져온 뒤 확인할 항목
- 구독 출처가 명확하고 URL 전체가 포함되어 있으며, 공개 화면 캡처나 메모에 토큰이 노출되지 않았는지 확인합니다.
- 응답 내용이 현재 구독 메뉴의 요구사항에 맞는지 확인합니다. 전체 YAML, 노드 제공자 파일, Base64 노드 목록을 구분해야 합니다.
- 올바른 Profile이 활성화되어 있고, 정책 그룹에서 예상한 노드 또는 정상적으로 로드된 제공자를 확인할 수 있어야 합니다.
- 수동 업데이트가 한 번 이상 성공했으며, 자동 업데이트 간격의 단위가 클라이언트에 표시된 단위와 일치하는지 확인합니다.
- 로컬 규칙을 별도로 백업하고, 구독 업데이트가 수정 내용을 덮어쓰는지 확인합니다.
- 연결 테스트에 실패하면 구체적인 오류를 기록하고 설정 로드, 노드 연결, 트래픽 전달 순으로 확인합니다.
이후 시스템 프록시, 규칙 모드 또는 TUN 설정을 살펴보려면 Clash 사용 가이드를 참고하세요. 노드·정책 그룹·규칙 간 참조 관계를 확인하려면 고급 설정을 읽어보세요. 먼저 구독 형식과 업데이트 경로를 확인한 뒤 트래픽 전달 설정을 조정하면 문제를 더 쉽게 좁힐 수 있습니다.