Clash 규칙이란? 분류 라우팅의 기본
Clash(Mihomo) 설정 파일의 rules: 섹션은 「이 연결을 어느 프록시 그룹으로 보낼까?」를 결정하는 분류 라우팅 엔진입니다. 구독을 가져온 뒤에도 「국내 사이트는 직연, 해외·차단 대상만 프록시」「광고 도메인 차단」「게임만 특정 노드」처럼 세밀한 동작을 원한다면, 결국 규칙 문법을 이해해야 합니다.
한국 사용자에게 특히 중요한 이유는 두 가지입니다. 첫째, 네이버·카카오·국내 은행·OTT 등 국내 서비스는 DIRECT(직연)로 두어야 속도와 결제·본인인증이 안정적입니다. 둘째, YouTube·Google·해외 SNS 등은 PROXY 또는 자동 선택 그룹으로 보내야 합니다. 이 분류를 DOMAIN·GEOIP·MATCH 규칙 조합으로 구현합니다.
규칙 한 줄의 기본 형식은 다음과 같습니다.
규칙타입,매칭값,대상프록시그룹[,추가옵션]
예: DOMAIN-SUFFIX,google.com,PROXY — 호스트명이 google.com으로 끝나면 PROXY 그룹으로 보냅니다. 대상 그룹 이름은 같은 YAML의 proxy-groups에 선언된 name과 정확히 일치해야 합니다. 오타가 있으면 해당 규칙은 무시되거나 설정 로드 오류로 이어질 수 있습니다.
rules 배열이 동작하는 방식을 설명합니다. Global·Direct 모드에서는 규칙이 무시되거나 단순화됩니다. GUI에서 「규칙 / Rule」이 선택돼 있는지 먼저 확인하세요.
규칙 매칭 순서와 우선순위
Clash는 rules 배열을 위에서 아래로 순차 검사하고, 첫 번째로 조건에 맞는 규칙을 적용한 뒤 나머지는 보지 않습니다. 이것이 분류 설정에서 가장 자주 놓치는 원칙입니다.
- 구체적 규칙을 위에 — 특정 DOMAIN, PROCESS-NAME, IP-CIDR
- 포괄 규칙을 아래에 — GEOIP, GEOSITE, 대역 IP
- MATCH는 항상 맨 마지막 — 나머지 전부의 기본값
잘못된 순서 예: GEOIP를 맨 위에 두고 그 아래에 특정 DOMAIN을 넣으면, 해당 도메인의 IP가 이미 GEOIP에서 걸려 DOMAIN 규칙까지 도달하지 못합니다. DNS가 IP를 먼저 반환하는 IP-CIDR 규칙도 같은 이유로 순서에 민감합니다.
| 배치 위치 | 적합한 규칙 예 | 이유 |
|---|---|---|
| 최상단 | LAN IP-CIDR DIRECT, REJECT 광고 | 절대 우회하면 안 되는 예외 |
| 중간 | DOMAIN-SUFFIX, GEOSITE | 서비스·카테고리별 분류 |
| 하단 | GEOIP,KR,DIRECT | 국가 단위 포괄 처리 |
| 맨 끝 | MATCH,PROXY 또는 MATCH,DIRECT | 미매칭 트래픽 기본 동작 |
DOMAIN 계열 규칙 완전 정리
도메인 기반 규칙은 분류 설정의 핵심입니다. Clash / Mihomo에서 자주 쓰는 타입은 아래와 같습니다.
| 규칙 타입 | 구문 예 | 매칭 조건 |
|---|---|---|
DOMAIN |
DOMAIN,www.example.com,PROXY |
호스트명 완전 일치 |
DOMAIN-SUFFIX |
DOMAIN-SUFFIX,example.com,PROXY |
접미사 일치 (api.example.com 포함) |
DOMAIN-KEYWORD |
DOMAIN-KEYWORD,google,PROXY |
호스트명에 키워드 포함 |
DOMAIN-REGEX |
DOMAIN-REGEX,^.*\.cdn\.example\.com$,PROXY |
정규식 일치 (고급) |
DOMAIN — 정확히 한 호스트만
DOMAIN,login.example.com,DIRECT는 오직 login.example.com만 매칭합니다. www.example.com은 매칭되지 않습니다. 로그인 페이지만 예외 처리할 때 유용합니다.
DOMAIN-SUFFIX — 서브도메인 일괄 처리
가장 많이 쓰는 형태입니다. DOMAIN-SUFFIX,naver.com,DIRECT는 www.naver.com, mail.naver.com 등을 모두 직연합니다. 접두 점(.naver.com)을 쓰지 않고 naver.com만 적습니다.
rules:
- DOMAIN-SUFFIX,naver.com,DIRECT
- DOMAIN-SUFFIX,kakao.com,DIRECT
- DOMAIN-SUFFIX,google.com,PROXY
- DOMAIN-SUFFIX,youtube.com,PROXY
- DOMAIN-SUFFIX,github.com,PROXY
DOMAIN-KEYWORD — 넓은 매칭 (신중히 사용)
DOMAIN-KEYWORD,apple,는 apple.com뿐 아니라 notapple.fake처럼 키워드만 포함된 호스트도 걸릴 수 있습니다. 편리하지만 오매칭 위험이 있어, 가능하면 SUFFIX·GEOSITE를 우선하세요.
DOMAIN-REGEX — 정규식 (고급)
CDN·동적 서브도메인처럼 패턴이 복잡할 때 사용합니다. YAML에서 백슬래시 이스케이프에 주의하고, 잘못된 정규식은 설정 파싱 실패를 일으킬 수 있습니다.
GEOSITE,youtube,PROXY)로 도메인 목록을 카테고리 단위로 불러올 수 있어, 수백 줄 DOMAIN-SUFFIX를 직접 나열하는 것보다 유지보수가 쉽습니다. GeoSite 데이터베이스는 커널·클라이언트 업데이트에 따라 갱신됩니다.
GEOIP 규칙과 GeoSite
GEOIP 규칙은 연결 대상 IP의 국가 코드로 분류합니다. MaxMind GeoIP 등의 데이터베이스를 사용하며, Mihomo는 내장 DB 또는 geodata 설정으로 경로를 지정할 수 있습니다.
rules:
- GEOIP,LAN,DIRECT
- GEOIP,KR,DIRECT
- GEOIP,CN,DIRECT
- GEOIP,US,PROXY
GEOIP,LAN,DIRECT는 사설망·로컬 대역을 직연해 NAS·프린터·공유기 관리 페이지 접속을 유지합니다. 한국 사용자라면 GEOIP,KR,DIRECT를 MATCH 위에 두는 패턴이 매우 흔합니다. 국내 IP로 해석되는 트래픽은 프록시를 거치지 않아 지연과 SSL 문제를 줄입니다.
GEOIP의 한계도 알아 두세요. CDN 엣지 IP는 접속 위치와 다른 국가 코드를 가질 수 있고, DNS가 fake-ip를 쓰면 IP 기반 규칙 타이밍이 달라질 수 있습니다. 중요한 서비스는 DOMAIN·GEOSITE로 보완하는 것이 안전합니다.
| 규칙 | 용도 | 비고 |
|---|---|---|
GEOIP,LAN,DIRECT |
사설 IP·로컬 네트워크 | TUN 사용 시 거의 필수 |
GEOIP,KR,DIRECT |
한국 IP 직연 | 국내 서비스 속도·인증 안정 |
GEOSITE,category-ads-all,REJECT |
광고 도메인 차단 | DOMAIN 수백 줄 대체 |
GEOSITE,netflix,PROXY |
스트리밍 카테고리 | 구독 노드 지역과 맞출 것 |
MATCH 규칙: 마지막 안전망
MATCH는 조건 없이 모든 미매칭 트래픽에 적용되는 규칙입니다. 구문은 단순합니다.
- MATCH,🚀 PROXY
또는 기본 직연 정책:
- MATCH,DIRECT
rules 배열에는 반드시 하나의 MATCH를 맨 마지막에 두는 것이 관례입니다. MATCH가 없으면 위 규칙에 걸리지 않은 연결의 동작이 불명확해져, 「특정 앱만 안 된다」는 증상이 생길 수 있습니다.
「해외는 전부 프록시, 국내는 DIRECT」 전략이라면 보통 MATCH,PROXY를 씁니다. 「국내 위주, 필요한 것만 프록시」라면 DOMAIN·GEOSITE로 해외 서비스를 명시하고 MATCH,DIRECT로 마무리하는 화이트리스트형도 가능합니다.
proxy-groups의 그룹 이름이거나 특수 값 DIRECT(직연), REJECT(차단)입니다. REJECT는 광고·추적 차단 규칙 끝에 자주 쓰입니다.
IP·프로세스 등 자주 쓰는 규칙
DOMAIN / GEOIP / MATCH 외에 실전 설정에서 자주 등장하는 규칙입니다.
| 규칙 타입 | 예시 | 설명 |
|---|---|---|
IP-CIDR |
IP-CIDR,192.168.0.0/16,DIRECT,no-resolve |
CIDR 대역 매칭; no-resolve는 DNS 조회 생략 |
IP-CIDR6 |
IP-CIDR6,fe80::/10,DIRECT |
IPv6 대역 |
PROCESS-NAME |
PROCESS-NAME,Discord.exe,PROXY |
프로세스 이름으로 분류 (TUN·Windows/macOS) |
PORT |
PORT,22,DIRECT |
대상 포트 (SSH 등) |
AND / OR / NOT |
논리 조합 규칙 | Mihomo 확장; 복합 조건 |
TUN 모드·게임 가속에서는 PROCESS-NAME으로 런처·안티치트 실행 파일을 특정 그룹에 매핑하기도 합니다. LAN 장비는 IP-CIDR과 GEOIP,LAN을 함께 두면 누락을 줄일 수 있습니다.
실전 YAML 예제
아래는 한국 사용자에게 흔한 「국내 직연 + 해외 프록시 + LAN 예외」 최소 예제입니다. proxy-groups와 rules를 함께 봐야 합니다.
proxy-groups:
- name: PROXY
type: select
proxies:
- AUTO
- DIRECT
- "Tokyo-01"
- "Singapore-01"
- name: AUTO
type: url-test
url: http://www.gstatic.com/generate_204
interval: 300
proxies:
- "Tokyo-01"
- "Singapore-01"
rules:
# LAN & local
- IP-CIDR,192.168.0.0/16,DIRECT,no-resolve
- IP-CIDR,10.0.0.0/8,DIRECT,no-resolve
- IP-CIDR,172.16.0.0/12,DIRECT,no-resolve
- GEOIP,LAN,DIRECT
# Ads (optional)
- GEOSITE,category-ads-all,REJECT
# Domestic
- GEOSITE,category-korea,DIRECT
- DOMAIN-SUFFIX,naver.com,DIRECT
- DOMAIN-SUFFIX,kakao.com,DIRECT
# Overseas services
- GEOSITE,youtube,PROXY
- GEOSITE,google,PROXY
- GEOSITE,github,PROXY
- GEOSITE,twitter,PROXY
# Country fallback
- GEOIP,KR,DIRECT
# Default for everything else
- MATCH,PROXY
Clash Verge Rev·Mihomo Party 등 GUI에서는 「Merge」 또는 「프로필 편집」으로 위 rules 일부만 덮어쓸 수 있습니다. 구독 전체를 수정하지 않고 개인 규칙만 추가할 때 유용합니다.
DOMAIN-SUFFIX(...)·GEOIP(...)·MATCH 등이 표시됩니다.
흔한 실수와 디버깅
- 그룹 이름 불일치 —
rules의PROXY와proxy-groups.name대소문자·공백·이모지까지 일치해야 합니다. - MATCH 누락 또는 중복 — MATCH는 하나만, 항상 맨 아래.
- GEOIP를 DOMAIN보다 위에 — 특정 사이트 예외가 먹지 않을 수 있습니다.
- YAML 들여쓰기·하이픈 —
rules는 리스트이므로 각 줄 앞-필수; 탭 대신 스페이스 권장. - no-resolve 누락 — IP-CIDR에서 불필요한 DNS 룩업으로 순서가 꼬일 수 있습니다.
- Global 모드로 테스트 — Rule 모드가 아니면 rules가 적용되지 않습니다.
「국내 사이트가 느리다」→ GEOIP,KR,DIRECT와 해당 DOMAIN이 PROXY 아래에 있는지 확인. 「해외 사이트가 안 열린다」→ MATCH가 DIRECT인지, REJECT 규칙에 걸리는지 확인. 「NAS 접속 불가」→ LAN IP-CIDR·GEOIP,LAN·TUN auto-route 설정을 점검하세요.
더 넓은 Clash 사용 흐름은 Clash 전체 사용 가이드를, TUN·게임 트래픽 분류는 게임 가속 튜토리얼을 참고하세요.
자주 묻는 질문
규칙을 수정했는데 적용이 안 됩니다
프로필을 저장·적용(Apply)했는지, Rule 모드인지 확인하세요. Merge 파일을 쓰는 경우 올바른 프로필에 연결됐는지, YAML 문법 오류로 로드가 실패하지 않았는지 로그를 봅니다.
GEOSITE와 DOMAIN-SUFFIX를 같이 써도 되나요?
네. GEOSITE로 대량 목록을 처리하고, GEOSITE에 없는 개별 도메인만 DOMAIN-SUFFIX로 보완하는 방식이 일반적입니다. 우선순위는 배열 순서가 결정합니다.
MATCH를 DIRECT로 두면 안전한가요?
국내 중심 사용·회사망에서는 MATCH,DIRECT가 보수적입니다. 해외 미분류 트래픽까지 프록시하려면 MATCH,PROXY가 맞습니다. 보안·컴플라이언스 요구에 따라 선택하세요.
구독 제공자 rules를 그대로 써도 되나요?
대부분의 공개 구독은 이미 GEOIP·GEOSITE·MATCH를 포함합니다. 다만 LAN DIRECT·개인 NAS·회사 VPN 예외는 Merge로 추가하는 경우가 많습니다. 제공자 rules를 이해한 뒤 필요한 줄만 덧붙이세요.
단순 VPN 앱은 「전체 터널 on/off」만 제공해 사이트·IP·앱별 분류가 어렵고, 규칙 편집 UI도 없는 경우가 많습니다. 브라우저 확장은 시스템·게임·UDP 트래픽을 다루지 못합니다. 반면 Clash(Mihomo)는 DOMAIN·GEOIP·MATCH·GEOSITE·IP-CIDR 등을 YAML 한 파일(또는 Merge)에서 조합하고, Clash Verge Rev·Mihomo Party 같은 GUI로 연결별 매칭 결과까지 확인할 수 있어, 「국내는 빠르게, 필요한 해외만 프록시」 같은 실전 분류에 적합합니다.