개념 색인 · 설정 항목 비교

Clash 용어집

코어, 프로토콜, 규칙, DNS의 개념과 경계를 살펴보세요. 분야별 용어를 찾고 설정 항목을 따라가며 클라이언트의 실제 설정을 확인할 수 있습니다.

용어 25개 개별 바로가기 처음 사용한다면 튜토리얼 보기 →

코어와 클라이언트

연결을 처리하는 프로그램, 설정을 관리하는 인터페이스, 연결에 필요한 서버 정보를 먼저 구분하세요.

Clash 코어

Clash core

프록시 연결, 규칙 매칭, DNS 처리를 담당하는 백그라운드 프로그램입니다. 그래픽 인터페이스는 보통 제어 인터페이스를 통해 코어와 통신합니다. 원본 Clash와 이후 파생 코어는 기능 범위가 다르므로 Clash용으로 표시된 설정이라도 모든 코어에서 작동하는 것은 아닙니다. 알 수 없는 필드나 지원되지 않는 프로토콜을 만났다면 클라이언트 이름만 볼 것이 아니라 실제 사용 중인 코어부터 확인해야 합니다.

mihomo

Formerly Clash Meta

Clash Meta 프로젝트에서 발전한 오픈 소스 프록시 코어로, 규칙 분기, TUN, 도메인 스니핑, 규칙 모음 등을 지원합니다. 특정 그래픽 클라이언트를 뜻하지 않으며 하나의 코어를 여러 앱에 통합할 수 있습니다. 예전 문서의 Meta라는 표현은 대개 이 코어 계열을 가리키지만, 구체적인 설정 항목은 현재 코어 문서를 기준으로 확인해야 합니다.

그래픽 클라이언트

GUI client

구독, 정책 선택, 시스템 프록시, 로그를 관리하는 데스크톱 또는 모바일 앱입니다. 코어를 함께 제공하거나 코어 관리 기능을 포함하는 경우도 많습니다. 화면의 옵션이 YAML 항목과 일대일로 대응하지 않을 수 있으며, 일부 설정은 시작할 때 생성된 설정 파일에 반영됩니다. 문제를 해결할 때는 인터페이스의 동작과 코어의 동작을 구분해야 합니다.

프록시 노드

Proxy node · proxies

프록시 연결에 필요한 서버 정보로, 보통 주소, 포트, 프로토콜, 인증 정보를 포함하며 전송 계층 설정이 추가되기도 합니다. 화면에 표시되는 노드 이름은 단순한 라벨이므로 실제 출구 위치나 서비스 가용성을 보장하지 않습니다. 클라이언트를 설치해도 노드가 자동으로 생기지는 않으므로 가져오기 전에 서비스 출처와 프로토콜 호환성을 확인해야 합니다.

노드 지연 시간

Latency · URL test

클라이언트가 지정한 방식으로 측정한 요청 소요 시간입니다. 흔히 쓰는 URL 테스트는 ICMP ping과 같지 않습니다. 테스트 주소, 시간 제한, 연결 재사용, 현재 네트워크 상태에 따라 결과가 달라지므로 대역폭이나 모든 웹사이트의 접속 속도로 볼 수 없습니다. 테스트가 시간 초과되더라도 노드가 완전히 작동하지 않는다는 뜻은 아니므로 실제 접속과 연결 로그를 함께 확인해야 합니다.

프록시 프로토콜

프로토콜은 연결 설정 방식을 정합니다. 전송 방식, 인증 매개변수, 보안 계층을 함께 확인해야 합니다.

Shadowsocks

type: ss

미리 공유한 키와 지정한 암호화 방식으로 프록시 연결을 설정하는 프로토콜입니다. mihomo 노드에서는 type: ss로 표시합니다. 클라이언트와 서버의 암호화 방식 및 키가 일치해야 하며, 암호화 방식에 따라 키 형식 요구 사항이 다를 수 있습니다. 노드에 플러그인이 필요하다면 클라이언트가 해당 플러그인과 매개변수를 지원하는지도 확인해야 합니다.

Trojan

type: trojan

일반적으로 TLS 연결로 프록시 트래픽을 전달하고 비밀번호로 인증하는 프로토콜입니다. 연결 성공 여부는 비밀번호뿐 아니라 인증서, 서버 이름, 전송 설정에도 달려 있습니다. 인증서 오류가 발생하면 시스템 시간과 서버 설정을 확인하고, 인증서 검증을 끄는 방법을 일반적인 해결책으로 삼지 마세요.

VLESS

type: vless

일반적으로 UUID로 사용자를 식별하는 경량 프록시 프로토콜입니다. 자체적으로 트래픽을 암호화하지 않으므로 TLS나 REALITY 같은 보안 계층과 함께 설정을 살펴봐야 합니다. UUID가 같아도 설정 전체가 올바르다는 보장은 없습니다. 전송 방식, 서버 이름, 관련 보안 매개변수도 일치해야 합니다. 노드를 가져올 때는 서비스 제공자가 안내한 매개변수를 모두 유지하세요.

Hysteria2

type: hysteria2

QUIC 기반 프록시 프로토콜로, UDP 연결이 가능해야 하며 TLS와 인증 매개변수로 연결을 설정합니다. 네트워크에서 UDP가 제한되면 정상 작동하지 않을 수 있으므로 서버 포트가 열려 있다는 사실만으로 사용 가능 여부를 판단해서는 안 됩니다. 실제 성능은 네트워크 상태와 설정에 따라 달라지며 프로토콜 이름만으로 속도를 짐작할 수 없습니다.

SOCKS5

SOCKS version 5

앱이 프록시 서버에 연결할 때 사용하는 범용 프로토콜입니다. 로컬 프록시 입구로 사용할 수도 있고 원격 노드 유형으로 사용할 수도 있습니다. TCP와 UDP 전달을 지원하지만 실제로 사용하려면 앱, 수신 측, 출구가 모두 해당 기능을 지원해야 합니다. SOCKS5 자체에는 전송 암호화 기능이 없습니다. 도메인을 로컬에서 조회할지 프록시 측에서 조회할지는 앱의 사용 방식에 따라 달라집니다.

규칙과 정책 그룹

규칙은 어떤 연결을 처리할지, 정책 그룹은 어떤 출구를 사용할지 결정합니다.

규칙 분기

rules · first match

Rule 모드에서 코어는 rules 목록을 위에서 아래로 확인해 연결을 매칭하고, 처음 일치한 규칙으로 정책을 결정합니다. 예를 들어 DOMAIN-SUFFIX,github.com,Proxy는 해당 도메인의 연결을 Proxy라는 정책으로 보냅니다. Proxy는 별도로 정의해야 하며, MATCH,Proxy는 보통 남은 연결을 처리하도록 목록 마지막에 둡니다.

정책 그룹

proxy-groups

노드나 다른 정책을 규칙에서 참조할 수 있는 그룹으로 묶어 각 규칙을 특정 노드에 직접 연결하지 않도록 합니다. select는 직접 선택하고, url-test는 주기적으로 테스트해 결과에 따라 선택하며, fallback은 사용 가능한 구성원을 순서대로 사용합니다. 테스트 주소와 간격은 자동 선택에 영향을 주며, 그룹 이름 자체가 기능을 결정하지는 않습니다.

Rule, Global, Direct

mode: rule / global / direct

각각 규칙 모드, 전역 모드, 직접 연결 모드를 뜻하며 코어에 전달된 연결을 처리하는 방식을 정합니다. Rule은 규칙에 따라 정책을 선택하고, Global은 전역 정책을 사용하며, Direct는 대상에 직접 연결합니다. 이 모드는 앱 트래픽을 코어로 전달하지 않으므로 시스템 프록시나 TUN이 활성화되어 있는지 별도로 확인해야 합니다.

GeoIP

GEOIP

IP 지리 위치 데이터베이스를 기준으로 대상 주소를 매칭합니다. 예를 들어 GEOIP,CN,DIRECT는 데이터베이스에서 CN으로 분류한 주소에 직접 연결합니다. 데이터베이스의 판정은 도메인 등록 국가, 실제 운영 위치와 다를 수 있으며 CDN에 따라 조회 결과도 달라집니다. 도메인 연결을 매칭할 때는 DNS 조회가 필요할 수 있고, 규칙 끝의 no-resolve를 사용하면 이때 발생하는 조회를 제한할 수 있습니다.

규칙 모음

rule-providers · RULE-SET

매칭 조건을 별도로 저장한 뒤 rule-providers로 선언하고, RULE-SET,work,Proxy 같은 규칙에서 참조합니다. 모음은 매칭 대상을 정의하고 이를 참조하는 규칙은 최종 정책을 지정합니다. 업데이트에 실패하면 형식과 behavior가 일치하는지도 확인해야 합니다. 노드 구독을 규칙 모음으로 사용할 수는 없습니다.

DNS와 네트워크 스택

도메인 조회, 트래픽 전달, 출구 선택은 서로 관련되어 있지만 같은 개념은 아닙니다.

DNS

Domain Name System

도메인 이름을 IP 주소로 변환하는 기능으로, 앱이 연결을 설정하기 전에 주로 수행합니다. mihomo의 nameserver는 상위 DNS 서버를 지정하고 nameserver-policy는 특정 도메인에 사용할 DNS 서버를 선택합니다. 암호화 DNS를 사용해도 DNS 서버까지의 전송만 보호할 뿐, 조회가 선택한 프록시 출구를 반드시 통과하는 것은 아닙니다.

Fake-IP

enhanced-mode: fake-ip

앱에 가상 주소를 반환하고 코어에 가상 주소와 도메인의 매핑을 보관하는 DNS 방식입니다. 이후 도메인 기반 규칙 매칭에 유용하지만 실제 웹사이트 주소를 반환하는 것은 아니며, 이것만으로 트래픽을 전달하지도 않습니다. 실제 DNS 결과에 의존하는 일부 앱은 필요에 따라 fake-ip-filter를 조정해 제외 범위를 무분별하게 넓히지 않도록 하세요.

TUN 모드

Virtual network interface

가상 네트워크 인터페이스로 시스템 IP 트래픽을 전달받아 시스템 프록시를 사용하지 않는 앱도 코어에서 처리할 수 있게 합니다. 보통 tun.enable, auto-route, dns-hijack 등의 항목을 설정하며 관리자 권한이 필요할 수 있습니다. 실제 처리 범위는 라우팅, DNS, 운영체제, 다른 네트워크 소프트웨어의 영향을 받습니다.

DNS 누수

DNS leak

DNS 조회가 예상한 DNS 경로나 출구를 통과하지 않는 상황입니다. 예를 들어 브라우저에 내장된 DNS가 계획한 시스템 경로를 우회할 수 있습니다. 검사 페이지에 특정 DNS 서버의 지역이 표시된다는 사실만으로 누수를 확정할 수는 없으므로 대상 정책과 로그를 함께 확인해야 합니다. 문제 해결 시 브라우저의 보안 DNS, 시스템 DNS, TUN 처리, 코어의 상위 DNS 설정을 모두 점검하세요.

도메인 스니핑

sniffer

지원되는 TLS, HTTP, QUIC 핸드셰이크 정보에서 도메인을 식별해 IP 주소만 있는 연결에 매칭 정보를 보완합니다. 일반적인 암호화 콘텐츠 복호화 기능이 아니며 모든 연결에서 도메인을 식별할 수 있는 것도 아닙니다. 스니핑은 규칙 매칭이나 대상 처리에 영향을 줄 수 있으므로 활성화한 뒤 연결 기록에서 결과를 확인해야 합니다.

구독과 설정 파일

데이터 출처, 파일 형식, 최종 실행 설정을 구분하면 업데이트 후 설정이 덮어써지는 문제를 줄일 수 있습니다.

구독

Subscription

링크를 통해 노드 목록이나 전체 설정을 배포하고 업데이트하는 방식입니다. 내용은 URI 목록, 인코딩된 텍스트, YAML 등일 수 있으므로 링크 모양만 보고 형식을 판단할 수 없습니다. 클라이언트에서 바로 가져올 수 있는지는 지원하는 형식과 프로토콜에 달려 있습니다. 구독 주소에는 접근 정보가 포함되는 경우가 많으므로 스크린샷이나 로그에 공개하거나 신뢰할 수 없는 변환 서비스에 입력하지 마세요.

YAML

Mapping · sequence · scalar

매핑, 목록, 스칼라 값을 구성하는 텍스트 데이터 형식입니다. Clash 설정은 계층 구조를 표현할 때 주로 YAML을 사용합니다. 들여쓰기에는 탭 대신 공백을 쓰고 같은 수준의 항목은 정렬해야 하며, 특수 문자가 있는 문자열은 따옴표로 감쌀 수 있습니다. YAML 문법이 올바르더라도 설정이 작동한다는 뜻은 아닙니다. 코어에서 지원하는 항목인지, 정책 이름 참조가 유효한지 확인해야 합니다.

설정 파일

config.yaml

포트, 노드, 정책 그룹, DNS, 규칙 등을 정의하는 파일입니다. config.yaml은 흔히 쓰이는 파일명일 뿐 유일하게 정해진 이름은 아닙니다. 클라이언트가 코어에 최종 전달하는 설정은 구독, 화면 설정, 오버라이드가 함께 반영되어 생성될 수 있습니다. 설정 항목이 적용되지 않는 문제를 확인할 때는 내려받은 구독 원본만 보지 말고 실제 실행 설정을 확인해야 합니다.

프록시 모음

proxy-providers

proxy-providers로 정의하며 파일이나 원격 주소에서 불러올 수 있는 노드 모음입니다. 정책 그룹은 use로 이 모음을 참조합니다. 노드를 저장하는 기능으로, 매칭 조건을 저장하는 rule-providers와는 다릅니다. 모음 업데이트, 상태 점검, 정책 그룹 선택은 각각 별개의 단계이므로 업데이트에 성공해도 모든 노드가 연결된다는 보장은 없습니다.

오버라이드

Override · merge

구독과 별도로 로컬 변경 사항을 유지해 최종 설정 생성에 반영하는 기능입니다. 포트나 DNS를 고정하거나 규칙을 추가할 때 자주 사용합니다. 오버라이드는 모든 클라이언트가 공유하는 단일 코어 설정 항목이 아닙니다. 병합 순서, 목록 추가, 필드 덮어쓰기 방식은 클라이언트마다 다릅니다. 수정한 뒤 생성된 설정을 확인해 규칙 위치와 정책 그룹 참조가 업데이트 과정에서 바뀌지 않았는지 점검하세요.

용어에서 설정으로

처음 구독을 가져왔다면 튜토리얼을 따라 연결을 확인하세요. 연결은 되지만 규칙, DNS, TUN을 조정해야 한다면 고급 설정을 살펴보세요. 오류가 발생하면 “Clash가 작동하지 않음”이라고만 설명하기보다 클라이언트 이름, 실제 코어, 오류 메시지를 먼저 기록하세요.