규칙 분기 엔진
도메인, IP, GeoIP, 프로세스 이름 등 다차원 정밀 라우팅을 기반으로 국내외 트래픽을 분리하여 전역 프록시로 인한 대역폭 낭비를 완전히 해결합니다.
자세히 알아보기 →규칙 분기 엔진에서 YAML 선언적 설정까지, Fake-IP DNS 유출 방지에서 다중 프로토콜 호환성까지. Clash의 핵심 아키텍처와 작동 원리를 이해하여 이 고성능 프록시 클라이언트의 잠재력을 최대한 활용하세요.
Clash는 Go 언어로 구축된 고성능 코어를 기반으로 프록시 도구에 필요한 모든 핵심 능력을 통합했습니다. 각 기능은 커뮤니티에서 수년간 다듬어져 업계 표준이 되었습니다.
도메인, IP, GeoIP, 프로세스 이름 등 다차원 정밀 라우팅을 기반으로 국내외 트래픽을 분리하여 전역 프록시로 인한 대역폭 낭비를 완전히 해결합니다.
자세히 알아보기 →Shadowsocks, VMess, Trojan, VLESS, Hysteria 2, TUIC 등 모든 주요 프로토콜을 기본 지원하며, 단일 코어로 모든 파편화된 클라이언트를 대체합니다.
프로토콜 목록 보기 →사람과 기계 모두에게 친숙한 YAML 구문을 채택하여 버전 관리를 지원하며, 구독 링크를 통해 노드와 규칙을 원클릭으로 동기화할 수 있어 수동 유지 관리가 필요 없습니다.
설정 예시 보기 →Fake-IP 메커니즘을 통해 시스템 DNS를 장악하여 DNS 쿼리가 통신사로 유출되는 것을 완전히 차단하고, 어떤 네트워크 환경에서도 실제 위치와 디지털 지문을 보호합니다.
작동 원리 알아보기 →선택(select), 자동 속도 측정(url-test), 장애 조치(fallback), 부하 분산(load-balance)의 네 가지 전략 그룹 유형을 지원하여 고가용성 프록시 라우팅을 구현합니다.
전략 그룹 상세 설명 →내장된 HTTP RESTful API를 통해 Yacd, MetaCubeX 등 타사 제어판에서 실시간으로 노드 전환, 트래픽 모니터링, 규칙 관리가 가능하며 완전한 시각적 관리 체계를 구축합니다.
API 문서 →Clash의 가장 핵심적이고 독특한 경쟁력은 강력한 규칙 분기 시스템 (Rule-based Proxy)에 있습니다. 전역 프록시나 단순한 PAC 리스트만 가능한 기존 프록시 도구와 달리, Clash는 세분화된 다차원 트래픽 라우팅 제어를 제공합니다.
규칙은 우선순위에 따라 위에서 아래로 순차적으로 매칭되며, 일치하면 해당 동작 (PROXY / DIRECT / REJECT)을 수행합니다. 마지막 MATCH 규칙은 기본 정책 역할을 합니다.
google.com
Rule Providers 규칙 세트 구독: rule-providers 필드를 통해 원격 YAML/TEXT 규칙 파일을 가져옵니다. Clash는 설정된 간격에 따라 업데이트를 자동으로 가져오므로 방대한 단일 설정 파일을 수동으로 유지 관리할 필요가 없습니다.
Clash Meta (mihomo) 코어는 오리지널 Clash를 기반으로 지속적으로 확장되어 현재 시장의 거의 모든 주요 프록시 프로토콜을 지원합니다. 공항이나 서비스 제공업체가 어떤 프로토콜을 사용하든 Clash는 기본적으로 호환되어 여러 클라이언트를 병행해야 하는 혼란을 완전히 해결합니다.
| 프로토콜 이름 | 전송 계층 | 암호화 방식 | 위장 능력 | 권장 시나리오 | 지원 버전 |
|---|---|---|---|---|---|
| Shadowsocks | TCP / UDP | AEAD 암호화 | 기초 | 가장 넓은 호환성, 공항 표준 | 오리지널 + Meta |
| ShadowsocksR | TCP / UDP | 다중 난독화 | 난독화 | 이전 버전 공항 호환 | 오리지널 + Meta |
| VMess | TCP / WS / H2 / GRPC | AES / ChaCha20 | WebSocket TLS | V2Ray 생태계 선호 | 오리지널 + Meta |
| VLESS | TCP / WS / H2 / GRPC | 자체 암호화 없음 (TLS 의존) | TLS / Reality | 경량 고성능, 신규 배포 권장 | Meta 전용 |
| Trojan | TCP | TLS 기본 | HTTPS 웹사이트 위장 | 능동적 탐지 방어 최강 | 오리지널 + Meta |
| Hysteria 2 | UDP (QUIC) | TLS 1.3 | QUIC 위장 | 높은 지연/패킷 손실 네트워크에서 초고속 전송 | Meta 전용 |
| TUIC | UDP (QUIC) | TLS 1.3 | QUIC 멀티플렉싱 | 저지연 시나리오 최적화 | Meta 전용 |
| Snell | TCP | AES-256-GCM | 기초 | Surge 생태계와 함께 사용 | 오리지널 + Meta |
| Socks5 / HTTP | TCP | TLS 선택 가능 | 없음 | 내부 네트워크 중계 | 오리지널 + Meta |
| Reality | TCP | XTLS / Vision | 실제 웹사이트 TLS 지문 위장 | TLS 지문 탐지 방어 최적화 | Meta 전용 |
새 노드를 구축하는 경우 VLESS + Reality 조합 (탐지 방어 성능 최강) 또는 Hysteria 2 (높은 지연 네트워크에서 속도 최강)를 선택하는 것이 좋습니다. 두 가지 모두 Clash Meta (mihomo) 코어 지원이 필요합니다. 가장 광범위한 공항 호환성이 필요한 경우 Shadowsocks (AEAD)가 여전히 가장 안정적인 선택입니다.
Clash는 YAML을 유일한 설정 형식으로 채택합니다. 전체 설정 파일은 다음과 같은 몇 가지 최상위 필드로 구성됩니다. 각 필드의 역할을 이해하는 것이 Clash 설정을 마스터하는 첫 걸음입니다.
사용자가 클라이언트 인터페이스에서 현재 활성화된 프록시 노드 또는 하위 전략 그룹을 수동으로 선택합니다. 특정 지역 노드 사용을 정밀하게 제어해야 하는 경우(예: Netflix 접속 시 미국 노드 고정)에 적합합니다.
그룹 내 모든 노드에 정기적으로 HTTP 탐색 요청을 보내고, 지연 시간이 가장 낮은 노드를 현재 활성 노드로 자동 선택합니다. 수동 측정 없이 전체 프로세스 자동화로 최적의 네트워크 환경을 보장합니다.
url:지연 시간 테스트 주소 (gstatic 204 권장)interval:측정 간격 (초), 300s 권장tolerance:허용 오차값, 빈번한 전환 방지노드 배열 순서대로 사용하며, 현재 노드 탐색 실패 시 다음 가용 노드로 자동 전환합니다. 서비스가 중단되지 않아야 하는 매우 안정적인 비즈니스 시나리오에 적합합니다.
트래픽을 그룹 내 여러 노드로 분산시킵니다. consistent-hashing(동일 도메인 고정 노드) 및 round-robin(라운드 로빈) 두 가지 전략을 지원하여 다중 노드 대역폭을 충분히 활용하고 전체 처리량을 향상시킵니다.
기존 프록시 모드에서는 브라우저가 먼저 로컬 ISP(인터넷 서비스 제공업체)의 DNS 서버에 대상 도메인의 IP 주소를 쿼리한 다음 프록시를 통해 연결을 설정합니다. 이로 인해 트래픽 자체가 암호화되더라도 DNS 쿼리 기록이 ISP에 노출되어 실제 방문 의도가 드러나게 됩니다.
Clash의 Fake-IP 모드는 로컬에서 시스템 DNS 해석을 장악하여 쿼리할 각 도메인에 대해 즉시 가짜 로컬 IP 주소(예: 198.18.x.x)를 반환하고 애플리케이션이 즉시 연결 요청을 생성하도록 합니다. Clash 코어는 해당 가짜 IP를 식별한 후, 실제 도메인을 암호화된 터널을 통해 원격 프록시 서버로 보내 DNS 해석을 수행함으로써 ISP로의 DNS 쿼리 유출을 근본적으로 차단합니다.
로컬에서 가짜 IP를 반환하고, 도메인은 암호화 터널을 통해 원격으로 전달되어 해석됩니다. DNS 유출을 완벽하게 방지하며 애플리케이션 연결 지연 시간이 가장 낮습니다.
먼저 로컬에서 DNS 해석을 수행하여 실제 IP를 얻은 다음 IP 규칙에 따라 라우팅을 판단합니다. 호환성은 좋지만 DNS 유출 위험이 있습니다.
Fake-IP 필터 (fake-ip-filter): 일부 로컬 서비스(예: WeChat, QQ의 로그인 도메인)는 Fake-IP에 적합하지 않으므로 fake-ip-filter 필드를 통해 제외하여 정상적인 사용에 영향을 주지 않도록 해야 합니다.
DoH 업스트림 DNS 권장: 중국 내부는 https://doh.pub/dns-query (Tencent DNSPod) 또는 https://dns.alidns.com/dns-query를 권장하며, Fallback은 https://1.1.1.1/dns-query (Cloudflare)를 권장합니다.
Clash 코어에는 HTTP RESTful API가 내장되어 있으며, external-controller 설정을 통해 제어 포트를 개방하면 타사 제어판(Yacd, MetaCubeX, clash-dashboard)에서 이 API를 통해 코어 재시작 없이 실시간 노드 전환, 트래픽 모니터링, 연결 관리 등 모든 핵심 작업을 동적으로 조정할 수 있습니다.
GET /proxies
모든 프록시 노드 및 전략 그룹 정보 가져오기
PUT /proxies/:name
지정된 전략 그룹의 현재 노드 전환
GET /proxies/:name/delay
단일 노드의 실시간 지연 시간 테스트 (ms)
GET /traffic
WebSocket 실시간 트래픽 속도 푸시
GET /connections
현재 모든 활성 연결 목록 가져오기
DELETE /connections/:id
지정된 연결 닫기
PUT /configs
설정 파일 리로드 (코어 재시작 불필요)
PATCH /configs
단일 설정 필드 동적 수정
PUT /rules
라우팅 규칙 세트 핫 업데이트
GET /logs
레벨 필터링을 지원하는 WebSocket 실시간 로그 스트림
GET /version
현재 코어 버전 정보 가져오기
GET /memory
코어 실시간 메모리 사용량 가져오기
각 연결은 독립적인 goroutine에 의해 처리되며 스레드 전환 오버헤드가 없고, 높은 동시성 시나리오에서 성능이 CPU 코어 수에 따라 선형적으로 확장됩니다.
도메인 규칙은 해시 테이블을 사용하여 저장되므로 규칙 수에 관계없이 단일 매칭이 항상 상수 시간 내에 완료되며 설정이 방대해도 성능에 영향을 주지 않습니다.
내장 DNS 결과 캐시와 Fake-IP 모드를 통해 원격 DNS 응답을 기다리지 않고 즉시 연결을 설정할 수 있어 첫 번째 패킷 지연 체감을 크게 줄여줍니다.
Go 언어로 단일 실행 파일로 컴파일되어 설치 의존성이 없으며 Windows / macOS / Linux / Android를 지원하여 배포 문턱이 없습니다.
어떤 운영체제를 사용하든 다음 단계에 따라 약 5분 안에 Clash의 모든 설정을 완료하고 안정적이고 원활한 국제 네트워크 접속을 시작할 수 있습니다.
운영체제에 따라 해당하는 그래픽 클라이언트(GUI)를 선택하세요. Windows 사용자는 Clash Verge Rev, macOS 사용자는 Clash Verge Rev (macOS) 또는 ClashX Pro, Android 사용자는 Clash Meta for Android, Linux 사용자는 Clash Meta 코어와 Yacd 패널을 직접 사용하는 것을 권장합니다.
다운로드 페이지로 이동 →Windows: .exe 설치 패키지를 더블 클릭하고 마법사에 따라 설치를 완료합니다. macOS: .dmg 내부의 앱을 Applications 폴더로 드래그합니다. Android: 출처를 알 수 없는 APK 설치 허용 후 설치합니다. 처음 시작할 때 일부 클라이언트에서 시스템 프록시 권한을 요청하면 허용해 주세요.
클라이언트 인터페이스에서 '프로필(Profiles)' 또는 '구독' 페이지를 찾아 공항 서비스 제공업체에서 제공한 구독 URL을 붙여넣고 '다운로드' 또는 '업데이트' 버튼을 클릭합니다. Clash는 모든 노드 정보와 전략 그룹 설정을 자동으로 분석하므로 서버 매개변수를 수동으로 입력할 필요가 없습니다.
'프록시(Proxies)' 페이지로 들어가 각 전략 그룹 내의 노드에 대해 '지연 시간 테스트(Latency Test)'를 실행하고 지연 시간이 가장 낮은(보통 녹색으로 표시됨) 노드를 선택합니다. 공항 구독에 url-test 자동 속도 측정 그룹이 포함되어 있으면 Clash가 자동으로 최적의 노드를 선택해 줍니다.
클라이언트 메인 인터페이스에서 '시스템 프록시(System Proxy)' 스위치를 켭니다. 이제 Clash가 시스템의 모든 네트워크 트래픽을 자동으로 관리합니다. 브라우저를 열어 Google, YouTube, GitHub 등에 접속하여 빨라진 속도를 확인해 보세요. 다음 재부팅 후 별도의 설정 없이 사용할 수 있도록 '부팅 시 자동 실행' 옵션을 함께 켜두는 것을 권장합니다.
다음 사항을 확인해 주세요: ① 클라이언트에서 '시스템 프록시' 스위치가 켜져 있는지 확인합니다. ② 구독 설정이 성공적으로 다운로드되었는지 확인합니다(프로필 페이지에 노드 목록 표시). ③ 선택한 노드의 지연 시간 테스트가 정상인지 확인합니다(timeout 아님). ④ 방화벽이 Clash의 네트워크 접속을 차단하고 있지 않은지 확인합니다. Windows 사용자는 이더넷 또는 Wi-Fi 속성에서 프록시 설정이 Clash에 의해 올바르게 장악되었는지 확인해야 합니다(보통 127.0.0.1:7890으로 표시됨).
dnsleaktest.com 또는 ipleak.net에 접속하여 테스트를 수행합니다. 테스트 결과에 표시된 DNS 서버가 본인의 로컬 ISP(예: KT, SKT, LG U+)에 속해 있다면 유출이 발생한 것입니다. 이 경우 설정 파일에서 DNS enhanced-mode를 fake-ip 모드로 변경하고 코어를 재시작하는 것이 좋습니다.
일부 클라이언트에는 로컬 캐시가 존재합니다. '프로필(Profiles)' 페이지에서 구독 항목 옆의 '강제 새로고침' 또는 'Update' 버튼을 수동으로 클릭해 주세요. 그래도 해결되지 않으면 해당 구독을 삭제한 후 다시 추가하거나, 공항에서 구독 URL을 새로 생성해야 하는지(만료 여부) 확인해 보세요.
설정 파일에 tun: enable: true를 추가하고 stack: mixed(또는 system)로 설정한 후 클라이언트를 관리자/root 권한으로 실행해야 합니다. TUN 모드는 시스템 프록시를 따르지 않는 프로그램(일부 게임 또는 CLI 도구)의 트래픽을 가로채어 진정한 전역 투명 프록시를 구현합니다. Windows의 경우 Wintun 드라이버를 추가로 설치해야 합니다.
대부분 호환됩니다. 오리지널 Clash의 유효한 설정 파일은 모두 Clash Meta(mihomo)에서 정상적으로 실행됩니다. Meta는 이를 기반으로 VLESS, Reality, Hysteria 2, TUIC 등 새로운 필드를 확장했습니다. 이러한 새 프로토콜 노드를 사용하는 경우 해당 설정 파일은 오리지널 코어에서 로드할 수 없습니다(오리지널 코어는 2023년에 업데이트가 중단되었으므로 Meta 코어로 전면 이전을 권장합니다).
① 해당 아키텍처에 맞는 Clash Meta 코어 바이너리 파일을 다운로드합니다. ② YAML 설정을 작성하고 tproxy-port: 7893 및 allow-lan: true를 활성화합니다. ③ iptables / nftables를 사용하여 트래픽을 7893 포트로 전달합니다. ④ systemd를 통해 부팅 시 자동 실행 데몬을 설정합니다. 로컬 네트워크의 다른 기기 게이트웨이를 해당 서버로 지정하면 프록시를 사용할 수 있습니다.
지금 즉시 해당 플랫폼의 Clash 클라이언트를 다운로드하고 3분 만에 설정을 완료하여 안정적이고 빠른 국제 네트워크 환경을 즐겨보세요.