왜 규칙 기반 라우팅이 필요한가요?
기존 VPN이나 「글로벌 프록시」는 모든 트래픽을 터널로 보내기 때문에 국내 사이트 접속 시 지연 시간이 길어지고 프록시 트래픽을 무의미하게 소모하게 됩니다. Mihomo Mihomo규칙 라우팅도메인, IP, 지리적 위치 등에 따라 각 데이터 패킷이 직접 연결(DIRECT)될지 프록시(PROXY)。
이상적인 상태는 다음과 같습니다: 쇼핑, 뱅킹 앱은 직접 연결되고, YouTube, Google, ChatGPT는 프록시를 거치며, 로컬 네트워크의 NAS나 프린터는 항상 직접 연결됩니다. 이를 통해 해외 접속의 원활함을 보장하면서 국내 인터넷 속도를 네이티브 환경에 가깝게 유지할 수 있습니다. 이 문서에서는 규칙 문법, 주요 유형, RULE-SET 규칙 세트부터 실제 설정까지 체계적인 라우팅 지식 체계를 구축하도록 돕습니다.
규칙 매칭 원리: 위에서 아래로, 첫 번째 일치 항목 적용
Clash 설정 파일의 rules rules는 순서가 있는 목록입니다. 모든 연결은 목록의 첫 번째 규칙부터 차례대로 비교되며, 일치하는 즉시 해당 동작(직접 연결, 거부, 또는 특정 정책 그룹으로 전달)을 실행하고 。
따라서 규칙 순서가 매우 중요합니다: 구체적이고 우선순위가 높은 규칙일수록 앞에 배치해야 하며, 범위가 넓은 폴백 규칙(예: GEOIP,CN,DIRECT、MATCH,PROXYMATCH)은 목록 맨 뒤에 두어야 합니다. 프로바이더 구독은 보통 이미 정렬되어 있으며, 고급 사용자는 덮어쓰기(Merge)
rules:
- DOMAIN-SUFFIX,local,DIRECT # 로컬 네트워크 직접 연결
- IP-CIDR,192.168.0.0/16,DIRECT,no-resolve
- IP-CIDR,10.0.0.0/8,DIRECT,no-resolve
- RULE-SET,cn,DIRECT # 규칙 세트: 국내 직접 연결
- RULE-SET,gfw,PROXY # 규칙 세트: 차단 사이트 프록시 우회
- GEOIP,CN,DIRECT # 중국 본토 IP 폴백 직접 연결
- MATCH,PROXY # 폴백: 나머지 모두 프록시 우회
주요 규칙 유형 상세 설명
Mihomo는 다양한 규칙 유형을 지원합니다. 각 유형의 매칭 범위를 이해하는 것은 좋은 라우팅 로직을 작성하기 위한 기초입니다.
| 규칙 유형 | 문법 예시 | 매칭 설명 |
|---|---|---|
DOMAIN |
DOMAIN,google.com,PROXY |
전체 도메인 이름을 정확하게 일치시킴 |
DOMAIN-SUFFIX |
DOMAIN-SUFFIX,google.com,PROXY |
도메인 및 그 모든 하위 도메인과 일치 (가장 많이 사용됨) |
DOMAIN-KEYWORD |
DOMAIN-KEYWORD,google,PROXY |
도메인에 키워드가 포함되면 일치 (오탐 가능성이 있으므로 주의 사용) |
IP-CIDR |
IP-CIDR,192.168.0.0/16,DIRECT,no-resolve |
대상 IP 대역에 따라 일치; no-resolve no-resolve는 DNS 해석을 수행하지 않음을 의미함 |
GEOIP |
GEOIP,CN,DIRECT |
GeoIP 데이터베이스에 따라 IP의 국가/지역 판단 |
RULE-SET |
RULE-SET,cn,DIRECT |
외부 규칙 세트(도메인/IP 일괄 목록) 참조 |
MATCH |
MATCH,PROXY |
최종 폴백 규칙으로 반드시 마지막에 배치해야 함 |
DOMAIN과 DOMAIN-SUFFIX의 선택
일상적으로 단일 사이트 규칙을 추가할 때는 DOMAIN-SUFFIXDOMAIN-SUFFIX DOMAIN-SUFFIX,github.com,PROXY 를 우선적으로 사용하세요. 예를 들어 github.com、api.github.com、raw.githubusercontent.com google.com DOMAIN。
IP-CIDR 및 로컬 네트워크 직접 연결
TUN 모드를 켠 후 NAS나 프린터 등 내부 네트워크 기기에 접속할 때는 규칙에 흔히 쓰이는 사설망 대역의 직접 연결이 포함되어 있는지 확인해야 합니다:
- IP-CIDR,127.0.0.0/8,DIRECT,no-resolve
- 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
MATCH MATCH
GEOIP 및 국내 직접 연결
GEOIP,CN,DIRECT GEOIP,CN,DIRECT는 「국내 직접 연결」을 위한 고전적인 폴백 규칙입니다. 대상 IP가 GeoIP 데이터베이스에 의해 중국 본토로 판정되면 프록시를 거치지 않습니다. 앞서 언급한 국내 도메인 규칙 세트와 결합하면 대부분의 국내 접속 시나리오를 커버할 수 있습니다.
주의사항: GeoIP는 도메인이 아닌 IP 할당 기반입니다. 일부 CDN 노드는 해외 도메인을 국내 IP로 해석하여 의도치 않게 직접 연결될 수 있으며, 반대로 일부 국내 서비스가 해외 IP를 사용하여 오판될 수도 있습니다. 특정 사이트에서 이상이 발생하면 DOMAIN-SUFFIX DOMAIN-SUFFIX
RULE-SET: 규칙 세트로 방대한 도메인 관리
수천 수만 개의 도메인을 수동으로 관리하는 것은 비현실적입니다. Mihomo의 RULE-SET rule-providers rule-providers는 외부 규칙 파일(주로 GitHub나 프로바이더 CDN에 호스팅됨)을 참조하여 도메인/IP 목록을 일괄 로드할 수 있게 합니다. 설정 파일에서 먼저 rules rule-providers
rule-providers:
reject:
type: http
behavior: domain
url: "https://cdn.jsdelivr.net/gh/Loyalsoldier/clash-rules@release/reject.txt"
path: ./ruleset/reject.yaml
interval: 86400
gfw:
type: http
behavior: domain
url: "https://cdn.jsdelivr.net/gh/Loyalsoldier/clash-rules@release/gfw.txt"
path: ./ruleset/gfw.yaml
interval: 86400
cn:
type: http
behavior: domain
url: "https://cdn.jsdelivr.net/gh/Loyalsoldier/clash-rules@release/cn.txt"
path: ./ruleset/cn.yaml
interval: 86400
rules:
- RULE-SET,reject,REJECT
- RULE-SET,gfw,PROXY
- RULE-SET,cn,DIRECT
- GEOIP,CN,DIRECT
- MATCH,PROXY
커뮤니티에서 흔히 쓰이는 Loyalsoldier/clash-rules ACL4SSR cn 규칙 세트는 도메인을 gfw국내(CN), 차단 사이트(GFW), 광고 차단(Ads)reject 등의 카테고리로 분류하며 Mihomo와 잘 호환됩니다. 프로바이더 구독에는 이미 유사한 규칙이 포함되어 있는 경우가 많으므로 사용자가 직접 설정할 필요는 없지만, 구독을 직접 구축할 때 유용한 구조입니다.
interval interval 86400 매개변수는 규칙 세트 자동 업데이트 주기를 제어합니다. type: file 86400
정책 그룹: 규칙과 노드 사이의 가교
규칙 목록의 세 번째 열(예: PROXY、DIRECT、REJECT일 수 있으며 내장 동작일 수도 있고, 정책 그룹 이름일 수도 있습니다. 정책 그룹(proxy-groups)은 「프록시를 사용할 때 구체적으로 어떤 노드나 노드 그룹을 사용할지」를 결정합니다.
- select: 노드를 수동으로 선택하며 「노드 선택」 메인 그룹에 적합합니다.
- url-test: 지연 시간에 따라 가장 빠른 노드를 자동으로 선택하며 「자동 선택」에 적합합니다.
- fallback: 순서대로 시도하며 기본 노드 실패 시 예비 노드로 전환합니다.
- load-balance: 로드 밸런싱으로 연결 부하를 분산합니다.
규칙 RULE-SET,gfw,PROXY 의 PROXY 는 단일 노드가 아닌 「PROXY」 또는 「노드 선택」이라는 이름의 정책 그룹을 가리키는 경우가 많습니다. 규칙 파일을 수정하지 않고도 클라이언트의 「프록시」 페이지에서 해당 그룹 내의 특정 노드를 전환할 수 있습니다.
DNS와 라우팅의 협력
규칙 매칭은 DNS 해석 이후(또는 IP 규칙의 경우 IP에 직접 매칭)에 발생합니다. Mihomo에서 자주 쓰이는 fake-ip fake-ip dns.enhanced-mode 모드: 도메인에 가상 IP를 할당하고 연결 시 실제 대상을 복원하여 규칙 판정을 가속화하고 DNS 유출을 줄입니다. 특정 사이트 해석에 이상이 있는 경우 redir-host를 nameserver。
라우팅 로직과 DNS는 서로 영향을 미칩니다: 예를 들어 GEOIP,CN,DIRECT IP-CIDR dns.fake-ip-filter 은 정확한 IP가 있어야 작동합니다. DNS가 오염되어 잘못된 IP가 반환되면 국내 사이트가 프록시로 오인될 수 있습니다. nameserver-policy skip-proxy
설정 덮어쓰기: 구독을 변경하지 않고 규칙 미세 조정
프로바이더 구독은 일반적으로 원격 YAML을 직접 수정하는 것을 허용하지 않지만, Clash Verge Rev 등의 클라이언트는 )은 목록 맨 뒤에 두어야 합니다. 프로바이더 구독은 보통 이미 정렬되어 있으며, 고급 사용자는 덮어쓰기(Merge / Override)
프록시 그룹에 단일 도메인 추가
prepend-rules:
- DOMAIN-SUFFIX,example.com,PROXY
- DOMAIN-SUFFIX,blocked-site.org,PROXY
prepend-rules 규칙을 목록의 맨 앞에 삽입하여 구독 내 규칙보다 먼저 매칭되게 합니다. 특정 국내 도메인을 강제로 직접 연결(gfw 규칙 세트 덮어쓰기)하고 싶은 경우에도 마찬가지로 prepend-rules prepend-rules DOMAIN-SUFFIX,xxx.com,DIRECT。
로컬 네트워크 및 사용자 정의 직접 연결 추가
prepend-rules:
- DOMAIN-SUFFIX,nas.home,DIRECT
- IP-CIDR,192.168.1.0/24,DIRECT,no-resolve
권장되는 라우팅 구조 (모범 사례)
커뮤니티 경험을 종합할 때 속도와 유지 관리성을 모두 고려한 규칙 순서는 대략 다음과 같습니다:
- 로컬 네트워크 및 로컬 도메인 →
DIRECT - 광고/추적 도메인 →
REJECTREJECT (선택 사항) - 스트리밍, 게임 등 전용 정책 그룹 (구독에서 제공하는 경우)
- 차단 사이트 규칙 세트 → 주요 프록시 정책 그룹
- 국내 도메인 규칙 세트 →
DIRECT GEOIP,CN,DIRECTMATCH,PROXY또는MATCH,자동 선택
MATCH,DIRECT를 기본 폴백으로 사용하는 것은 권장하지 않습니다. 매칭되지 않는 해외 사이트가 직접 연결되어 프록시가 필요한 환경에서 접속되지 않는 경우가 많기 때문입니다. 대부분의 템플릿은 MATCH,DIRECT MATCH,PROXY MATCH,PROXY 를 채택하는 것이 더 안전합니다.
디버깅 및 문제 해결: 규칙이 유효한지 확인하는 방법
- 클라이언트에서 「연결」또는「로그」 페이지를 열고 대상 웹사이트에 접속하여 실시간 연결과 일치하는 규칙 이름을 관찰합니다.
- DIRECT로 표시되지만 프록시를 거치고 싶은 경우, 해당 도메인이
DIRECTcncn규칙 세트나GEOIP,CNGEOIP - 일시적으로 글로벌 모드로 전환해 보세요: 글로벌에선 접속되는데 규칙 모드에서 안 된다면 규칙이 커버하지 못하는 것이므로 덮어쓰기로 추가하면 됩니다.
DOMAIN-SUFFIX해결됩니다. - nslookup
nslookup또는 온라인 DNS 조회를 사용하여 도메인 해석 IP가 GeoIP 예상과 일치하는지 확인합니다.
자주 묻는 질문
규칙 모드와 글로벌 모드의 차이점은 무엇인가요?
규칙 모드는 rules 리스트를 통해 분할 라우팅하며, 국내는 직접 연결, 해외는 프록시를 거치기 때문에 일상 사용에 권장됩니다. 글로벌 모드는 로컬 네트워크 등 특수 규칙을 제외한 모든 트래픽을 프록시로 보내므로 일시적인 문제 해결이나 규칙에 없는 사이트 접속 시 적합합니다.
왜 일부 국내 사이트가 느린가요? 프록시를 거치는 것 같습니다.
아웃바운드 모드가 「규칙」인지 확인하세요. 연결 페이지에서 해당 사이트 접속 시 규칙이 DIRECTDIRECT PROXY인지 확인합니다. 만약 cn PROXY DOMAIN-SUFFIX,bilibili.com,DIRECT 로 되어 있다면 규칙 세트가 로드되지 않았거나 DNS가 해외 IP로 해석된 것이므로 명시적인 규칙으로 덮어써야 합니다.
RULE-SET 업데이트에 실패하면 어떻게 하나요?
규칙 세트 URL에 접속 가능해야 합니다 (일부 CDN은 특정 네트워크에서 불안정할 수 있음). 미러 주소로 변경하거나 type: file 로컬 복사본을 사용하거나, 구독 변환 시 규칙 세트를 설정에 포함(bake)할 수 있습니다. 자세한 내용은 본 사이트의 향후 「구독 변환」 관련 튜토리얼을 참조하세요.
GEOIP만 사용하고 RULE-SET을 사용하지 않아도 되나요?
가능하지만 권장하지 않습니다. GeoIP는 「도메인은 해외지만 국내 CDN으로 해석되는」 복잡한 상황을 인식하지 못하며 첫 연결 시 IP 해석을 기다려야 합니다. RULE-SET + GEOIP 조합이 훨씬 정확하며 프로바이더 구독의 주류 방식입니다.
규칙 기반 라우팅을 마스터해야만 Clash는 진정한 가치를 발휘합니다. 국내 경험을 해치지 않으면서 해외 접속을 보장하고 트래픽과 개인 정보도 제어할 수 있습니다. 즉시 사용 가능한 라우팅 템플릿과 원클릭 덮어쓰기를 원하신다면 본 사이트에서 클라이언트 다운로드 페이지 Mihomo 규칙 체계가 통합된 Clash 클라이언트를 받아 YAML을 직접 작성하는 시간 비용을 줄여보세요.