기술 참고 문서 · 공식 권위 자료

Clash 기술 문서 센터

코어 아키텍처 원리 · 규칙 구문 전체 매뉴얼 · 프로토콜 지원 한눈에 보기
입문부터 숙련까지, Clash의 모든 설정 세부 사항을 파악할 수 있도록 도와드립니다.

코어 아키텍처

Clash (Mihomo)는 Go 언어 기반으로 개발된 고성능 규칙 분산 프록시 코어 엔진으로, 그 아키텍처를 이해하면 더욱 정밀하고 효율적인 설정을 작성할 수 있습니다.

아키텍처 개요

Mihomo (구 Clash.Meta) 코어는 다음과 같은 몇 가지 핵심 하위 시스템이 협력하여 작동합니다:

인바운드 리스너 (Inbound)
로컬 포트를 모니터링하여 애플리케이션으로부터 트래픽을 수신합니다. HTTP / HTTPS / SOCKS5 / TUN / Transparent Proxy 등 다양한 인바운드 유형을 지원하며,mixed-portHTTP+SOCKS5 혼합 포트를 동시에 제공할 수 있습니다.
규칙 엔진 (Rule Engine)
설정 파일의 목록을 순차적으로 매칭하여,rules각 연결에 대해 프록시를 사용할지 직접 연결할지 결정합니다. DOMAIN, IP-CIDR, GeoIP, PROCESS-NAME 등 20가지 이상의 매칭 조건을 지원하며, 일치하면 매칭을 중단합니다.
프록시 아웃바운드 (Outbound / Proxy)
설정된 프록시 노드를 통해 트래픽을 전달합니다. Shadowsocks, VMess, VLESS, Trojan, Hysteria2 등의 프로토콜을 지원합니다. 정책 그룹(proxy-groups)을 통해 자동 속도 측정, 장애 조치, 부하 분산 등 지능형 경로 선택을 구현합니다.
DNS 하위 시스템
고성능 DNS 해석기가 내장되어 있으며 DoH (DNS over HTTPS), DoT (DNS over TLS), DoQ (DNS over QUIC)를 지원합니다. FakeIP 모드는 DNS 유출을 완전히 방지하여 프록시 트래픽이 탐지되지 않도록 보장합니다.
RESTful API 및 대시보드
를 통해 external-controllerRESTful API를 노출하여 프록시 노드를 실시간으로 전환하고 트래픽 통계를 확인하며 설정을 새로 고칠 수 있습니다. Clash Dashboard, Yacd, MetaCubeXD 등 웹 제어 패널과 호환됩니다.

트래픽 처리 흐름

애플리케이션에서 발생한 네트워크 요청이 최종적으로 Clash에 의해 전달되기까지 다음과 같은 처리 체인을 거칩니다:

애플리케이션
브라우저 / 게임 / 명령줄
인바운드 모니터링
HTTP / SOCKS5 / TUN
DNS 해석
FakeIP / RealIP
규칙 매칭
순차 매칭, 일치 시 중단
정책 아웃바운드
PROXY / DIRECT / REJECT
FakeIP 원리: FakeIP 모드를 활성화하면 Clash DNS는 각 도메인에 가짜 IP(예: 198.18.x.x)를 할당하고, 애플리케이션이 이 가짜 IP로 연결을 시도하면 Clash 인바운드가 이를 식별하여 도메인을 복원한 후 규칙 엔진과 매칭합니다. 이를 통해 실제 IP가 로컬 애플리케이션에 노출되는 것을 방지하고 근본적으로 DNS 유출을 차단합니다.

프록시 모드

Clash는 네 가지 작업 모드를 지원하며 설정 파일의 mode 필드 또는 클라이언트 인터페이스에서 전환할 수 있습니다:

일상적 사용 추천
Rule 규칙 모드

에 따라 rules목록을 하나씩 매칭하여 각 연결에 대해 프록시를 사용할지 직접 연결할지 결정합니다.국내 웹사이트는 직접 연결하여 속도를 보장하고, 해외 웹사이트는 자동으로 프록시를 사용하여 속도와 개인정보 보호를 모두 고려하며, 대다수 사용자에게 가장 좋은 선택입니다.

mode: rule
전역 프록시
Global 전역 모드

국내 트래픽을 포함한 모든 트래픽이 프록시 서버를 통해 전달됩니다. 일관된 출구 IP가 필요한 상황(예: 해외 계정 운영)에 적합하지만, 국내 접속 속도가 저하될 수 있습니다.

mode: global
디버깅 및 속도 측정
Direct 직접 연결 모드

모든 트래픽이 프록시를 거치지 않고 직접 발신되며, 이는 프록시 기능을 끄는 것과 같습니다. 주로 프록시 자체가 연결에 영향을 주는지 확인하거나, 클라이언트를 종료하지 않고 일시적으로 프록시를 끌 때 사용합니다.

mode: direct
고급 사용자
Script 스크립트 모드

JavaScript를 사용하여 완전히 사용자 정의된 라우팅 로직을 작성합니다. 요청된 도메인, IP, 포트, 프로세스 이름 등 모든 속성에 접근하여 규칙 목록보다 훨씬 유연한 제어를 구현할 수 있습니다.

mode: script
TUN 모드 vs 시스템 프록시
특성 시스템 프록시 (System Proxy) TUN 모드
작동 계층 애플리케이션 계층 (Layer 7) 네트워크 계층 (Layer 3)
커버리지 범위 프록시를 지원하는 앱만 (브라우저 등) 전체 트래픽 (게임, 명령줄, 모든 앱)
필요한 권한 일반 사용자 권한 관리자 / root 권한 필요
설정 복잡도 간단함, 클라이언트에서 원클릭 활성화 네트워크 드라이버 설치 필요 (자동)
권장 시나리오 일상적인 브라우저 웹 서핑 게임 가속, Steam, 전역 프록시

DNS 메커니즘

Clash는 DNS 쿼리를 정밀하게 제어하여 유출을 방지하고 더 정확한 분산을 구현하는 DNS 해석기가 내장되어 있습니다.

FakeIP 모드
도메인에 가짜 IP(198.18.0.0/16)를 할당하여 DNS 유출을 완전히 차단하고, 도메인 수준에서 규칙 매칭을 수행합니다(가장 정확함).대부분의 사용자에게 권장됩니다.
RealIP 모드
실제 IP를 먼저 해석한 후 규칙을 매칭하며, IP-CIDR 규칙이 적용됩니다. CDN 도메인의 경우 IP 소속에 따라 분산이 부정확할 수 있으므로, 정확한 IP 라우팅이 필요한 상황에 적합합니다.
config.yaml · DNS 설정 예시
dns:
  enable: true
  enhanced-mode: fake-ip   # fake-ip | redir-host
  fake-ip-range: 198.18.0.1/16
  listen: 0.0.0.0:1053
  nameserver:
    - https://doh.pub/dns-query    # DoH 국내
    - https://dns.alidns.com/dns-query
  fallback:
    - https://1.1.1.1/dns-query   # DoH 해외 예비
    - tls://8.8.8.8:853
  fallback-filter:
    geoip: true
    geoip-code: CN

규칙 구문

Clash 규칙 시스템은 가장 강력한 기능 중 하나로, YAML 형식을 통해 각 트래픽의 흐름을 정밀하게 제어합니다.

규칙 형식

각 규칙은 세 부분으로 구성되며, 중간은 영문 쉼표,로 구분됩니다.

규칙 유형
DOMAIN-SUFFIX
,
매칭 조건
google.com
,
대상 정책
🚀 노드 선택

규칙은 위에서 아래 순서로하나씩 매칭되며, 첫 번째로 일치하는 항목에서 중단됩니다.어떠한 규칙도 일치하지 않으면 마지막 항목을MATCH 기본 정책으로 사용합니다.

규칙 유형 상세 설명

도메인 DOMAIN
전체 도메인을 정확하게 매칭하며, 대소문자를 구분합니다.
DOMAIN,www.google.com,PROXY
도메인 DOMAIN-SUFFIX
도메인 접미사(서브 도메인 포함)를 매칭합니다. 가장 일반적으로 사용되는 도메인 규칙 유형입니다.
DOMAIN-SUFFIX,google.com,PROXY
도메인 DOMAIN-KEYWORD
도메인에 키워드가 포함되면 매칭되며, 커버리지가 가장 넓습니다.
DOMAIN-KEYWORD,googleapis,PROXY
도메인 DOMAIN-REGEX
정규 표현식을 사용하여 도메인을 매칭하며, 유연하고 강력합니다.
DOMAIN-REGEX,^(www\.)?google\.com$,PROXY
IP 주소 IP-CIDR
IPv4 CIDR 주소 범위를 매칭합니다. no-resolve 매개변수를 추가하면 DNS 해석을 건너뛸 수 있습니다.
IP-CIDR,192.168.0.0/16,DIRECT,no-resolve
IP 주소 IP-CIDR6
IPv6 CIDR 주소 범위를 매칭합니다.
IP-CIDR6,2400:3200::/32,DIRECT
지리적 위치 GEOIP
IP 소속 국가/지역에 따라 매칭하며, GeoIP 데이터베이스를 사용합니다.
GEOIP,CN,DIRECT
지리적 위치 GEOSITE
Geosite 도메인 데이터베이스(v2ray-rules-dat)를 사용하여 매칭하며, 방대한 사전 설정 도메인 분류를 포함합니다.
GEOSITE,cn,DIRECT
프로세스 PROCESS-NAME
연결을 시작한 프로세스 이름에 따라 매칭합니다 (Windows/macOS/Linux).
PROCESS-NAME,steam.exe,DIRECT
프로세스 PROCESS-PATH
프로세스의 전체 경로에 따라 매칭하며, 프로세스 이름보다 더 정확합니다.
PROCESS-PATH,/usr/bin/curl,PROXY
네트워크 NETWORK
프로토콜 유형에 따라 매칭합니다.tcphttp://udp
NETWORK,udp,REJECT
네트워크 PORT / DST-PORT
대상 포트 또는 포트 범위를 매칭합니다.
DST-PORT,443,PROXY
규칙 세트 RULE-SET
외부 규칙 세트 파일(.yaml / .list)을 참조하며, 원격 URL 구독 및 자동 업데이트를 지원합니다.
RULE-SET,gfw,PROXY
기본 정책 MATCH
모든 트래픽을 매칭하며, 반드시 규칙 목록의 마지막에 위치해야 하며, 모든 규칙이 일치하지 않을 때의 기본 정책 역할을 합니다.
MATCH,🚀 노드 선택
정책 키워드:규칙의 대상 정책에는 사용자 정의 정책 그룹 이름(예: 🚀 노드 선택) 외에도 세 가지 기본 키워드가 있습니다:
  • DIRECT— 프록시를 거치지 않고 직접 연결
  • PROXY— 기본 프록시 사용(proxies의 첫 번째 노드를 사용하는 것과 동일)
  • REJECT— 연결 거부 (광고 필터링에 자주 사용)

정책 그룹 (proxy-groups)

정책 그룹은 Clash 규칙 시스템의 핵심으로, 여러 노드를 서로 다른 경로 선택 동작을 가진 논리적 그룹으로 결합합니다.

select 수동 선택
사용자가 클라이언트 인터페이스에서 노드나 하위 정책 그룹을 수동으로 선택합니다. 가장 유연하며 가장 일반적인 정책 그룹 유형입니다. 클라이언트를 열어야 전환할 수 있습니다.
type: select
url-test 자동 속도 측정
정기적으로 모든 노드에 HTTP 속도 측정 요청을 보내고, 지연 시간이 가장 낮은 노드를 자동으로 선택합니다.interval속도 측정 간격(초) 설정, tolerance전환 허용 오차(ms) 설정.
type: url-test
fallback 자동 장애 조치
순서대로 첫 번째 사용 가능한 노드를 우선적으로 사용하며, 첫 번째 노드에 접속할 수 없으면 자동으로 다음 노드로 전환합니다. 안정적인 메인 노드 + 예비 노드가 필요한 시나리오에 적합합니다.
type: fallback
load-balance 부하 분산
여러 노드에 연결을 분산하며, consistent-hashing(동일 도메인 고정 노드)와 round-robin(라운드 로빈)의 두 가지 전략이 있습니다.
type: load-balance
relay 체인 프록시
트래픽이 여러 노드를 순차적으로 거쳐 전달됩니다(노드 1 → 노드 2 → ... → 대상). 다중 홉 프록시를 구현하지만, 각 홉마다 지연 시간이 증가하므로 주의하십시오.
type: relay

전체 설정 예시

다음은 핵심 설정, 프록시 노드, 정책 그룹 및 규칙 목록을 포함한 전체 config.yaml 예시입니다.

config.yaml · 전체 참고 예시
# ── 기본 설정 ──────────────────────────────────────
mixed-port: 7890        # HTTP + SOCKS5 혼합 포트
allow-lan: false
mode: rule
log-level: info
external-controller: 127.0.0.1:9090

# ── DNS ──────────────────────────────────────────
dns:
  enable: true
  enhanced-mode: fake-ip
  nameserver:
    - https://doh.pub/dns-query

# ── 프록시 노드 ────────────────────────────────────
proxies:
  - name: 홍콩 01
    type: vmess
    server: hk1.example.com
    port: 443
    uuid: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
    alterId: 0
    cipher: auto
    tls: true
    network: ws
    ws-opts:
      path: /ws
      headers:
        Host: hk1.example.com

# ── 정책 그룹 ──────────────────────────────────────
proxy-groups:
  - name: 🚀 노드 선택
    type: select
    proxies:
      - ♻️ 자동 선택
      - 홍콩 01
      - DIRECT
  - name: ♻️ 자동 선택
    type: url-test
    url: https://www.gstatic.com/generate_204
    interval: 300
    tolerance: 50
    proxies:
      - 홍콩 01

# ── 규칙 목록 ────────────────────────────────────
rules:
  - GEOSITE,cn,DIRECT          # 국내 도메인 직접 연결
  - GEOIP,CN,DIRECT            # 국내 IP 직접 연결
  - DOMAIN-SUFFIX,local,DIRECT  # 로컬 네트워크 직접 연결
  - IP-CIDR,127.0.0.0/8,DIRECT,no-resolve
  - IP-CIDR,192.168.0.0/16,DIRECT,no-resolve
  - MATCH,🚀 노드 선택          # 나머지 트래픽은 프록시 사용

프로토콜 지원 목록

Clash (Mihomo)는 20가지 이상의 주요 프록시 프로토콜을 기본적으로 지원하며, 대부분의 공항 구독 및 자체 구축 노드 솔루션과 호환됩니다.

지원 프로토콜 개요

Shadowsocks
SS
가장 널리 사용되는 프록시 프로토콜 중 하나로, 수년간의 실전 검증을 거쳤으며 AEAD 암호화(AES-256-GCM / ChaCha20-Poly1305)를 지원합니다. 설정이 간단하고 호환성이 매우 뛰어납니다.
✓ AEAD 암호화 ✓ 간단한 설정 ✓ 높은 호환성
VMess
V2Ray
V2Ray 코어 프로토콜로 WebSocket, gRPC, HTTP/2, QUIC 등 다양한 전송 방식을 지원하며 TLS와 결합하여 트래픽 위장이 가능하고 침투 능력이 강합니다.
✓ TLS 위장 ✓ WS/gRPC ✓ HTTP/2
VLESS
V2Ray Next
VMess의 차세대 경량화 버전으로 대칭 암호화 오버헤드를 제거하여 성능이 더 높습니다. Reality TLS 지문 위장을 지원하며 현재 차단 저항 능력이 가장 강한 프로토콜 중 하나입니다.
✓ Reality ✓ 초저지연 오버헤드 ✓ TLS 지문
Trojan
Trojan-GFW
프록시 트래픽을 HTTPS 443 포트의 합법적인 TLS 트래픽으로 위장하여 침투를 구현합니다. 방화벽 감지 앞에서 일반 HTTPS와 거의 차이가 없어 안정성이 매우 높습니다.
✓ HTTPS 위장 ✓ 443 포트 ✓ 높은 안정성
Hysteria2
차세대
QUIC/UDP 기반의 고성능 프록시 프로토콜로 패킷 손실이 높고 지연이 심한 네트워크 환경에 최적화되어 있습니다. 3G/4G/해외 회선에서 기존 TCP 프로토콜보다 훨씬 빠른 속도를 보여줍니다.
✓ QUIC/UDP ✓ 취약 네트워크 가속 ✓ 초저지연
TUIC
v5
마찬가지로 QUIC/UDP 기반의 현대적인 프록시 프로토콜로 Hysteria2와 설계 개념이 비슷합니다. 0-RTT 연결 재사용을 지원하여 핸드셰이크 지연을 효과적으로 줄여주며 빈번한 짧은 연결 시나리오에 적합합니다.
✓ QUIC/UDP ✓ 0-RTT ✓ 연결 재사용
WireGuard
VPN 급
차세대 VPN 프로토콜로 커널 수준 구현, 미니멀한 설계, 뛰어난 성능 및 현대적인 암호학을 특징으로 합니다. Clash는 사용자 모드 구현을 통해 WireGuard 노드 아웃바운드를 지원하며 커널 모듈 설치가 필요 없습니다.
✓ 커널 급 성능 ✓ 현대 암호학 ✓ UDP 네이티브
ShadowsocksR
SSR
Shadowsocks의 브랜치 버전으로 혼동 및 프로토콜 플러그인이 추가되었습니다. 신규 노드에서는 드물게 보이지만 Mihomo는 호환성을 유지합니다.
✓ 혼동 지원 하위 호환성
SOCKS5
로컬 프록시
클래식 프록시 프로토콜로 TCP 및 UDP(SOCKS5 UDP)를 지원합니다. 주로 로컬 노드 중계 또는 다른 프록시 도구 연결에 사용됩니다.
✓ TCP/UDP ✓ 인증 지원
HTTP / HTTPS
HTTP 프록시
표준 HTTP 프록시 프로토콜(CONNECT 터널)로 호환성이 가장 넓으며 사내망 프록시 시나리오에 적합합니다. TCP 트래픽만 지원합니다.
✓ 폭넓은 호환성 HTTP CONNECT
SSH
보안 터널
SSH 터널을 통해 트래픽을 전달합니다. 추가적인 서버 설정 없이 SSH 접근이 가능한 서버만 있으면 됩니다. 임시 사용이나 테스트 시나리오에 적합합니다.
✓ 서버 설정 제로 OpenSSH 호환
Hysteria
v1 / 구버전
Hysteria2의 이전 버전으로 여전히 사용 가능합니다. 신규 노드에는 Hysteria2를 권장하며 Mihomo는 v1에 대한 호환성을 유지합니다.
하위 호환성

전송 계층 옵션 (Transport)

VMess, VLESS, Trojan 등의 프로토콜은 하위 프로토콜 위에 다양한 전송 방식을 중첩하여 트래픽 위장 능력을 더욱 강화할 수 있습니다.

WebSocket (ws)
가장 범용적인 전송 방식으로 CDN (CloudFlare 등)과 함께 사용할 수 있으며 침투 능력이 강하고 지연 시간은 네이티브 TCP보다 약간 높습니다.
HTTP/2 (h2)
HTTP/2 기반의 멀티플렉싱 전송으로 병렬 성능이 좋으며 TLS가 필요하고 대용량 트래픽 시나리오에 적합합니다.
gRPC
gRPC 프레임워크 기반의 전송으로 마찬가지로 CDN을 지원하며 멀티플렉싱이 가능하고 지연 시간이 낮으며 TLS가 필요합니다.
Reality
VLESS 전용으로 트래픽을 실제 웹사이트의 TLS 지문으로 위장하며 도메인 없이도 정상 작동하고 차단 저항 능력이 가장 강합니다.
TCP (네이티브)
가장 기본적인 TCP 직접 연결 전송으로 지연 시간이 가장 낮고 추가 위장이 없습니다. 엄격한 차단이 없는 네트워크 환경에 적합합니다.
Split HTTP
요청을 여러 HTTP 세그먼트로 나누어 심층 패킷 감지(DPI)를 우회하며 호환성이 좋고 CDN과 함께 사용할 수 있습니다.

주요 프로토콜 비교

속도, 차단 저항 능력 및 설정 복잡도를 종합적으로 비교하여 귀하에게 가장 적합한 프로토콜을 선택하는 데 도움을 드립니다.

프로토콜 속도 차단 저항 설정 난이도 적합한 시나리오 추천도
VLESS + Reality ★★★★★ ★★★★★ 보통 자체 구축 노드 우선 순위 강력 추천
Hysteria2 ★★★★★ ★★★★ 간단 취약 네트워크 / 고지연 환경 강력 추천
Trojan ★★★★ ★★★★ 간단 일상적인 인터넷 우회 주력 추천
VMess + WS + TLS ★★★★ ★★★★ 보통 CDN 중계 시나리오 추천
TUIC v5 ★★★★★ ★★★ 보통 저지연 소형 패킷 시나리오 추천
Shadowsocks ★★★★ ★★★ 초간단 공항 구독 / 입문 일반적
WireGuard ★★★★★ ★★ 약간 어려움 기업용 VPN / Warp 특정 시나리오 적용
공항 사용자 안내:유료 공항(VPN 서비스 제공업체)을 사용하는 경우 노드 프로토콜은 공항에서 결정하므로 수동으로 선택할 필요가 없습니다. 구독 후 Clash 클라이언트로 직접 가져오기만 하면 클라이언트가 각 노드에 사용된 프로토콜 유형을 자동으로 식별합니다. 구체적인 가져오기 단계는 설치 사용 튜토리얼

시작할 준비가 되셨나요?

Clash 클라이언트를 다운로드하고 튜토리얼에 따라 구독을 설정하면 5분 이내에 바로 사용할 수 있습니다.