Clash Wiki · 기초 참고 자료

Clash 주요 용어와 설정 개념

mihomo 코어, 노드와 프로토콜부터 규칙 라우팅, 구독, TUN과 Fake-IP까지 사용 장면별로 나누어 설명합니다. 클라이언트 설정 항목이나 설정 필드가 이해되지 않을 때 먼저 여기서 개념을 확인한 뒤 튜토리얼에서 작업을 진행하세요.

Category 01

코어와 클라이언트

네트워크 트래픽을 처리하는 코어와 조작 화면을 제공하는 클라이언트를 구분하면 문제가 설정, 화면 또는 하위 프로세스 중 어디에서 발생했는지 판단하는 데 도움이 됩니다.

Clash
Clash는 규칙 라우팅과 정책 그룹을 중심으로 구성된 프록시 도구 생태계입니다. 실제 사용에서는 코어가 설정을 읽고 네트워크 연결을 처리하며, 그래픽 클라이언트가 구독 관리, 노드 선택과 켜기·끄기 제어를 제공합니다. 클라이언트마다 화면은 다를 수 있지만 핵심 개념은 대체로 같습니다.
rule-based proxy
mihomo
mihomo는 지속적으로 유지 관리되는 Clash Meta 계열 코어로, 규칙 라우팅, TUN, 향상된 DNS와 다양한 프록시 프로토콜을 지원합니다. 데스크톱 클라이언트에서 호출할 수 있으며 Linux 서버, 라우터나 보조 라우터에서 직접 실행할 수도 있습니다. 클라이언트 화면은 정상인데 프록시가 작동하지 않는다면 로그의 코어 시작 정보부터 확인하는 것이 좋습니다.
Clash Meta core
코어
코어는 설정을 읽고 프록시 연결을 만들며 규칙과 DNS를 처리하고 트래픽을 전달하는 핵심 프로그램입니다. 그래픽 화면과 코어는 보통 서로 다른 계층으로, 화면은 명령을 보내고 코어는 실제 작업을 수행합니다. 포트 점유, 설정 문법 오류 또는 권한 부족으로 화면은 열렸지만 코어가 실행되지 않을 수 있습니다.
core
그래픽 클라이언트
그래픽 클라이언트는 코어에 시각적 관리 화면을 제공하며, 일반적인 기능으로 구독 가져오기, 설정 전환, 정책 그룹 선택, 연결 기록 확인과 시스템 프록시 제어가 있습니다. 클라이언트 자체가 프록시 서비스는 아니며 사용 가능한 노드를 자동으로 만들어 주지도 않습니다. 선택할 때는 운영체제 지원, 코어 유형과 필요한 기능을 확인해야 합니다.
GUI client
Clash Plus
Clash Plus는 여러 주요 플랫폼을 지원하는 Clash 그래픽 클라이언트 중 하나입니다. 설치 후 화면에서 구독, 정책 그룹, 시스템 프록시와 TUN 모드를 관리할 수 있어 여러 기기에서 비슷한 조작 방식을 원하는 사용자에게 적합합니다. 자세한 설치 경로는 플랫폼별 클라이언트 다운로드 페이지에서 확인할 수 있습니다.
cross-platform client

Category 02

프로토콜과 전송

프로토콜은 클라이언트가 원격 서비스와 통신하는 방식을 결정하고, 전송 계층은 연결의 신뢰성, 실시간성 및 애플리케이션 호환 범위에 영향을 줍니다.

프록시 프로토콜
프록시 프로토콜은 클라이언트가 원격 서버와 연결할 때 따르는 통신 규칙입니다. 프로토콜마다 인증 필드, 암호화 방식과 전송 매개변수가 다르므로 클라이언트 설정은 서버 설정과 일치해야 합니다. 프로토콜 이름이 같아도 모든 추가 옵션을 서로 바꿔 쓸 수 있는 것은 아니며, 가져온 뒤에는 설정 파싱 결과와 연결 로그를 기준으로 확인해야 합니다.
proxy protocol
노드
노드는 설정에서 선택할 수 있는 프록시 서버 연결 항목으로, 일반적으로 서버 주소, 포트, 프로토콜과 인증 매개변수를 포함합니다. 노드 이름은 식별을 위한 라벨일 뿐 연결 품질을 직접 결정하지 않습니다. 하나의 구독에 여러 노드가 포함될 수 있으며, 정책 그룹에서 수동 선택, 자동 테스트 또는 장애 전환 방식을 결정합니다.
proxy node
지연 시간
지연 시간은 로컬에서 탐색 요청을 보낸 뒤 응답을 받을 때까지 걸리는 시간이며 보통 밀리초로 표시합니다. 지연 시간이 짧으면 대화형 응답이 빠른 경우가 많지만 다운로드 대역폭, 혼잡도와 장기 안정성을 단독으로 나타내지는 않습니다. 클라이언트의 측정 결과는 테스트 주소, 현재 네트워크와 노드 부하의 영향도 받습니다.
latency
TCP
TCP는 신뢰성 있는 전송과 순서 보장을 중시하는 네트워크 전송 프로토콜입니다. 웹 접속, 파일 전송과 대부분의 완전한 데이터가 필요한 연결에서 TCP를 사용하며, 손실된 패킷은 정해진 방식에 따라 다시 전송합니다. 프록시 설정의 연결 시간 초과, 핸드셰이크 실패와 연결 재설정은 TCP 경로나 원격 서비스 상태와 관련된 경우가 많습니다.
Transmission Control Protocol
UDP
UDP는 데이터그램 방식으로 전송하며 신뢰성 있는 연결을 미리 설정하지 않으므로 오버헤드가 낮습니다. 실시간 음성·영상, 게임, 일부 DNS 조회와 최신 네트워크 프로토콜에서 UDP를 사용할 수 있습니다. 노드나 클라이언트가 해당 기능을 지원하지 않으면 웹은 열리지만 게임 음성이나 일부 애플리케이션 연결에 문제가 생길 수 있습니다.
User Datagram Protocol

Category 03

규칙과 정책

규칙은 연결이 어떤 트래픽에 속하는지 판단하고, 정책은 해당 트래픽이 프록시, 직접 연결 또는 특정 노드 중 무엇을 사용할지 결정합니다.

규칙 라우팅
규칙 라우팅은 도메인, IP, 포트, 프로세스 또는 기타 조건에 따라 트래픽의 목적지를 결정하는 방식입니다. 규칙은 일반적으로 위에서 아래로 매칭되며 처음 일치한 규칙이 정책을 결정하므로 순서와 내용이 모두 중요합니다. Clash 사용자 지정 규칙을 추가할 때는 앞쪽의 포괄적인 규칙이 먼저 매칭하지 않는지 확인해야 합니다.
rule routing
규칙 모드
규칙 모드에서는 클라이언트가 설정의 규칙 목록에 따라 연결을 처리합니다. 특정 정책 그룹으로 전달하거나 직접 연결 또는 연결 거부를 선택할 수 있어 일상적인 사이트와 애플리케이션별 세분화에 적합합니다. 규칙에 포함되지 않은 트래픽은 대개 설정 마지막의 기본 규칙으로 처리됩니다.
Rule
전역 모드
전역 모드는 클라이언트로 들어오는 모든 트래픽을 지정된 프록시 정책으로 전달하고 일반 규칙에 따른 개별 라우팅을 적용하지 않습니다. 노드 사용 가능 여부를 임시로 확인하거나 문제가 규칙 매칭에서 비롯되었는지 판단할 때 유용합니다. 테스트가 끝나면 규칙 모드로 돌아가 모든 연결이 같은 출구를 사용하지 않도록 하세요.
Global
직접 연결
직접 연결은 트래픽이 원격 프록시 서버를 거치지 않고 현재 네트워크를 통해 대상 주소에 직접 연결되는 방식입니다. 설정 파일과 정책 그룹에서는 일반적으로 DIRECT로 표시합니다. 직접 연결의 성공 여부는 로컬 네트워크, DNS 해석과 대상 서비스 상태에도 좌우됩니다.
DIRECT
정책 그룹
정책 그룹은 여러 노드나 다른 정책을 규칙에서 참조할 수 있는 논리적 출구로 묶습니다. 수동 선택, 자동 테스트, 장애 전환과 부하 분산 등이 일반적인 유형이며 유형마다 선택 로직이 다릅니다. 노드를 전환할 때는 보통 각 규칙을 직접 수정하지 않고 정책 그룹 안에서 작업합니다.
proxy-groups
GeoIP
GeoIP는 IP 주소의 할당 정보를 바탕으로 규칙을 매칭하는 데이터 집합으로, 특정 지역의 IP 트래픽을 해당 정책으로 보낼 때 사용할 수 있습니다. 데이터베이스는 정기적으로 업데이트해야 하며 주소 배정 변경에 따라 결과가 달라질 수 있습니다. 네트워크 라우팅 판단에는 적합하지만 기기의 정확한 지리적 위치와는 다릅니다.
IP geolocation database

Category 04

설정과 구독

설정 파일은 클라이언트의 동작 방식을 정의하고, 구독과 Provider는 원격 소스에서 그 일부 또는 전체 내용을 업데이트합니다.

구독
구독은 서비스 제공자가 게시하고 정기적으로 업데이트할 수 있는 원격 설정 주소입니다. 클라이언트가 구독을 읽으면 노드 목록을 가져오거나 DNS, 정책 그룹과 규칙을 포함한 전체 설정을 받을 수 있습니다. 가져오기에 성공했다고 연결이 반드시 가능한 것은 아니므로 업데이트 후 설정 상태, 정책 그룹 선택과 코어 로그를 확인해야 합니다.
subscription
YAML
YAML은 Clash 설정 파일에 흔히 사용하는 구조화된 텍스트 형식으로, 들여쓰기를 통해 필드 계층을 표현합니다. 콜론 뒤 공백, 목록 앞의 하이픈과 같은 수준의 들여쓰기가 파싱에 영향을 주며 Tab 문자도 형식 오류를 일으키기 쉽습니다. 직접 편집한 뒤에는 클라이언트의 설정 검사 기능으로 확인하고 코어를 다시 로드하세요.
YAML Ain't Markup Language
설정 파일
설정 파일은 포트, 실행 모드, DNS, 노드, 정책 그룹과 규칙 등의 설정을 저장합니다. 클라이언트가 시작하거나 설정을 전환할 때 코어가 이러한 필드를 읽고 검증하며, 구조 오류가 있으면 코어가 시작되지 않을 수 있습니다. 전체 구조를 이해하려면 설정 파일 전체 참고 문서를 계속 확인하세요.
config.yaml
Provider
Provider는 독립 파일이나 원격 주소에서 노드 목록, 규칙 목록 등의 내용을 불러오는 설정 방식입니다. proxy-providers는 노드 소스를 관리할 때, rule-providers는 규칙 집합을 불러올 때 주로 사용합니다. 분리하면 각각의 업데이트 주기를 설정할 수 있어 매번 기본 설정 전체를 교체할 필요가 없습니다.
proxy-providers / rule-providers
오버라이드
오버라이드는 원본 구독 설정에 지정된 필드를 추가하거나 교체 또는 조정하는 처리 방식입니다. 로컬 DNS, 포트, 사용자 지정 규칙이나 정책 그룹 설정을 유지하면서 구독 업데이트를 계속 받을 때 자주 사용합니다. 수정하기 전에 클라이언트가 병합, 앞쪽 삽입 또는 직접 교체 중 어떤 방식을 사용하는지 확인하여 중복 필드나 규칙 순서 변경을 방지해야 합니다.
override / merge

Category 05

네트워크 기초

시스템 프록시, 가상 네트워크 인터페이스, DNS와 로컬 수신 포트가 함께 트래픽이 클라이언트로 들어갈 수 있는지, 들어온 뒤 어떻게 식별되고 전달되는지를 결정합니다.

TUN 모드
TUN 모드는 가상 네트워크 인터페이스를 통해 IP 계층에서 시스템 트래픽을 가로채므로 일반적으로 시스템 프록시보다 적용 범위가 넓습니다. 시스템 프록시 설정을 읽지 않는 애플리케이션도 처리할 수 있고 UDP 트래픽을 가로채는 데도 사용되지만, 보통 추가 권한과 올바른 라우팅 설정이 필요합니다. 활성화 후 인터넷이 끊기면 권한, DNS, 라우팅 충돌과 다른 네트워크 도구를 확인하세요.
virtual network interface
시스템 프록시
시스템 프록시는 운영체제가 애플리케이션에 제공하는 프록시 주소와 포트 설정입니다. 브라우저와 시스템 네트워크 설정을 따르는 대부분의 데스크톱 앱이 이를 사용하지만, 일부 게임, 명령줄 프로그램과 자체적으로 네트워크 연결을 관리하는 소프트웨어는 무시할 수 있습니다. 더 넓은 적용 범위가 필요하면 시스템 환경에 따라 TUN 모드를 검토하세요.
system proxy
DNS
DNS는 도메인을 연결 가능한 IP 주소로 변환하며, 웹사이트에 접속하기 전에 거치는 기본 단계입니다. Clash는 DNS 조회를 가로채거나 전달 또는 향상하여 해석 결과가 도메인 규칙과 일치하도록 할 수 있습니다. 해석 서버에 연결할 수 없거나 캐시가 비정상이고 설정이 충돌하면 노드는 정상인데 도메인만 열리지 않을 수 있습니다.
Domain Name System
DNS 유출
DNS 유출은 애플리케이션의 도메인 조회가 예상한 해석 경로를 우회하여 다른 DNS 서버로 직접 전송되는 현상입니다. 도메인 해석이 프록시 규칙과 어긋나 연결 실패나 비정상적인 라우팅이 발생할 수 있습니다. 점검할 때는 시스템 DNS, 브라우저 보안 DNS, TUN 설정과 클라이언트 로그를 함께 확인해야 하며 서버 주소 하나만 바꾸어서는 안 됩니다.
DNS leak
Fake-IP
Fake-IP는 DNS 향상 모드 중 하나로, 먼저 도메인에 예약된 주소 풀의 매핑 주소를 반환합니다. 코어는 해당 주소로 들어온 연결에서 매핑을 바탕으로 원래 도메인을 복원하여 더 정확하게 도메인 규칙을 매칭합니다. 로컬 네트워크 기기, 특수 애플리케이션 또는 호환되지 않는 도메인은 필터 목록을 통해 실제 해석을 유지할 수 있습니다.
fake-ip mode
프록시 포트
프록시 포트는 로컬 애플리케이션이 요청을 클라이언트로 보낼 때 사용하는 수신 진입점입니다. HTTP, SOCKS와 mixed-port는 접속 방식이 다르며, mixed 포트는 일반적으로 하나의 포트에서 HTTP와 SOCKS 요청을 모두 받을 수 있습니다. 다른 프로그램이 포트를 사용 중이면 코어가 시작되지 않거나 수신 대기를 설정하지 못할 수 있습니다.
port / mixed-port