고급

Clash 규칙 라우팅 상세: rules를 명확히 쓰는 실전 접근

노드가 Clash의 「팔다리」라면 규칙(rules)은 「두뇌」입니다. 같은 노드라도 규칙을 잘 쓰느냐에 따라 체감이 매끄러운지, 곳곳에서 걸리는지가 갈립니다. 이 글은 어려운 용어 나열 대신 규칙 동작 방식을 정리하고, 바로 쓸 수 있는 배치 방식을 제시합니다.

규칙은 어떻게 매칭되나?

한 줄로 기억하세요. 규칙은 위에서 아래로 한 줄씩 매칭되며, 맞으면 즉시 멈춥니다. Clash는 현재 연결 대상을 첫 규칙부터 비교하고, 한 줄에 걸리면 그 정책을 실행한 뒤 아래 규칙은 보지 않습니다.

여기서 중요한 결론이 나옵니다. 순서가 전부입니다. 더 「구체적인」 규칙을 앞에, 더 「넓은」 규칙을 뒤에 두세요. 그렇지 않으면 넓은 규칙이 먼저 맞아 뒤의 구체적 규칙은 영원히 적용되지 않습니다. 초보자가 가장 자주 밟는 함정입니다.

규칙 한 줄의 형태

기본 형식은 유형,매칭값,정책입니다. 예를 들어 DOMAIN-SUFFIX,google.com,PROXYgoogle.com으로 끝나는 도메인은 모두 PROXY 정책 그룹으로 보낸다는 뜻입니다. 「정책」은 정책 그룹·개별 노드·내장 DIRECT(직접 연결)·REJECT(거부)가 될 수 있습니다.

자주 쓰는 규칙 유형 요약

유형설명예시
DOMAIN도메인 전체 정확 일치DOMAIN,www.google.com,PROXY
DOMAIN-SUFFIX도메인 접미사 일치(가장 흔함)DOMAIN-SUFFIX,google.com,PROXY
DOMAIN-KEYWORD도메인에 키워드 포함DOMAIN-KEYWORD,google,PROXY
IP-CIDRIP 대역 일치IP-CIDR,192.168.0.0/16,DIRECT
GEOIPIP의 국가·지역으로 일치GEOIP,CN,DIRECT
PROCESS-NAME프로세스 이름으로 일치PROCESS-NAME,Telegram,PROXY
MATCH나머지 전부(최종 처리)MATCH,PROXY

DOMAIN-SUFFIX는 한 도메인 아래 모든 하위 도메인을 한 줄로 커버할 수 있어 사용 빈도가 가장 높습니다. MATCH는 「최종 규칙」으로 항상 맨 마지막 줄에 두고, 앞 규칙에 걸리지 않은 트래픽을 처리합니다.

실전에서 쓰는 규칙 배치 순서

실무에서는 「사설→공용, 구체→넓음」 순으로 정리하는 것을 권장합니다.

  1. LAN·사설 주소: IP-CIDR로 내부 주소는 직접 연결, 로컬 기기가 프록시 타지 않게;
  2. 거부할 도메인: 광고·추적은 REJECT로 차단;
  3. 프록시가 필요한 서비스: DOMAIN-SUFFIX로 해외 서비스를 프록시로;
  4. 직접 연결할 서비스: 국내 자주 쓰는 사이트는 DOMAIN-SUFFIX로 직접 연결;
  5. 지역별 최종 처리: GEOIP,CN,DIRECT로 남은 국내 IP는 직접 연결;
  6. 최종 처리: MATCH로 나머지 전부를 프록시에.
rules 예시
rules:
  - IP-CIDR,192.168.0.0/16,DIRECT
  - DOMAIN-KEYWORD,ad,REJECT
  - DOMAIN-SUFFIX,google.com,PROXY
  - DOMAIN-SUFFIX,bilibili.com,DIRECT
  - GEOIP,CN,DIRECT
  - MATCH,PROXY

규칙 세트(rule-providers): 더 편한 방법

규칙을 한 줄씩 손으로 쓰면 힘들고 유지도 어렵습니다. 커뮤니티에는 규칙 세트(rule-providers)가 많아, 수백·수천 줄을 원격 갱신 가능한 파일 하나로 묶어 둡니다. 참조만 하고 주기적으로 자동 업데이트하면 됩니다. 「국내 도메인 모음」「광고 차단 모음」 등을 각각 가져온 뒤, 소수 규칙으로 방향만 지정하면 설정이 훨씬 깔끔하고 관리도 쉬워집니다.

규칙 디버깅 팁

REJECT와 광고 차단

정책에는 직접 연결·프록시 외에 REJECT도 있습니다. 연결 자체를 끊는 뜻으로, 광고·추적 도메인 차단에 가장 많이 씁니다. REJECT 규칙에 걸리면 요청이 바로 차단되어 페이지 광고 슬롯이 로드되지 않아 깔끔하고 트래픽도 아낍니다. 커뮤니티 광고 도메인 규칙 세트와 함께 쓰면 효과가 특히 큽니다.

규칙과 정책 그룹의 협업

규칙의 「정책」은 종종 특정 노드가 아니라 정책 그룹 이름입니다. 이렇게 하면 분리됩니다. 규칙은 「이 트래픽을 어느 그룹에 맡길지」만 답하고, 그 그룹에서 어떤 노드를 쓸지는 UI에서 언제든 바꿀 수 있습니다. 예를 들어 「스트리밍」 정책 그룹을 만들고 관련 규칙을 모두 그쪽으로 보내면, 이후 그룹에서 노드만 바꿔도 스트리밍 트래픽 전체가 함께 전환됩니다. 규칙을 한 줄씩 고칠 필요가 없습니다.

초보자 흔한 실수

가장 흔한 실수는 순서를 거꾸로 쓰는 것입니다. GEOIP,CN,DIRECTMATCH를 구체적 프록시 규칙보다 앞에 두면, 트래픽이 넓은 규칙에 먼저 걸려 뒤의 구체 규칙은 영원히 적용되지 않습니다. 「규칙을 썼는데 안 먹는다」는 증상으로 나타납니다. 구체적일수록 앞, 최종 처리는 항상 맨 뒤—이것만 기억하세요. 또 하나는 들여쓰기 오류입니다. YAML은 들여쓰기에 매우 민감해 공백 하나만 어긋나도 전체 설정 로드가 실패할 수 있습니다.

정리

규칙의 핵심은 여덟 글자입니다. 순서 우선, 구체 우선. 「사설 → 거부 → 프록시 → 직접 → 최종 처리」 뼈대를 잡고 규칙 세트로 세부를 채우면 정밀하고 유지하기 쉬운 라우팅이 됩니다. 각 규칙 유형의 전체 설명은 문서 · 규칙 유형 참조를 보세요.

원리만 이해하면 어렵지 않고, 진짜 어려운 것은 자신의 사용에 맞게 다듬는 인내입니다. 검증된 템플릿 규칙에서 시작해 「프록시여야 하는데 직접 연결된다」「직접이어야 하는데 프록시를 탄다」 같은 상황을 조금씩 조정해 보세요. 몇 번이면 규칙이 점점 손에 맞아집니다. Clash에서 시간을 들일 만한 부분이 규칙이며, 한번 정리해 두면 오래 이득을 봅니다.


더 읽기