스플릿 터널링이란?

스플릿 터널링(규칙 기반 라우팅)은 Clash의 가장 강력한 기능 중 하나입니다. 한마디로, 미리 정의된 규칙에 따라 각 네트워크 요청을 직접 연결할지 프록시 노드를 경유할지 자동으로 판단하는 메커니즘입니다.

전형적인 예: 로컬 인트라넷, 지역 콘텐츠가 포함된 스트리밍 서비스, 지연에 민감한 게임 서버는 직접 연결로 최고 속도를 확보하고, 나머지 트래픽은 프록시를 경유하도록 설정할 수 있습니다. 이 모든 것이 백그라운드에서 원활하게 이루어지므로 프록시를 수동으로 켜고 끌 필요가 없습니다.

규칙 기반 라우팅의 기반은 Clash 설정 파일의 rules 필드입니다. 이 작동 방식을 이해하면 자신의 사용 사례에 맞게 트래픽 라우팅을 자유롭게 커스터마이징할 수 있습니다.

규칙 파일 구조

Clash는 YAML 형식의 설정 파일을 사용하며, 모든 규칙은 rules: 필드에 작성합니다. 각 규칙은 다음 형식을 따릅니다:

- TYPE,VALUE,POLICY

세 부분의 의미:

  • TYPE:매칭 방법——트래픽을 어떻게 식별할지 결정합니다.
  • VALUE:도메인 이름, IP 범위, 국가 코드 등 구체적인 매칭 대상.
  • POLICY:규칙이 매칭될 때 수행할 동작. 주요 정책:PROXY(프록시 경유)、DIRECT(직접 연결)、REJECT(차단, 광고 필터링에 유용).

주요 규칙 유형

도메인 규칙(가장 많이 사용)

도메인 규칙은 가장 널리 사용되는 규칙 유형으로, 세 가지 수준의 정밀도로 매칭할 수 있습니다:

  • DOMAIN,www.example.com,PROXY — 완전 일치:서브도메인은 제외하고 www.example.com에만 적용.
  • DOMAIN-SUFFIX,example.com,PROXY — 접미사 일치:example.com과 모든 서브도메인(mail.example.comapi.example.com 등)에 매칭. 가장 많이 사용되는 도메인 규칙 유형.
  • DOMAIN-KEYWORD,googleapis,PROXY — 키워드 일치:googleapis를 포함하는 모든 도메인에 매칭. 유연하지만 오탐이 발생할 수 있으므로 주의가 필요.

IP 주소 규칙

도메인 규칙으로 충분하지 않을 때, IP 주소 범위로 트래픽을 라우팅할 수 있습니다:

  • IP-CIDR,192.168.0.0/16,DIRECT — 지정한 IP 범위에 매칭. 로컬/프라이빗 네트워크를 직접 연결로 유지하는 데 자주 사용.
  • GEOIP,KR,DIRECT — GeoIP 데이터베이스로 국가/지역별 트래픽을 매칭. 특정 국가의 트래픽을 일괄 처리하는 캐치올로 유용.

프로세스 규칙(Mihomo 확장)

Mihomo 코어는 프로세스 이름 기반 규칙을 지원하여 애플리케이션 단위로 라우팅을 제어할 수 있습니다:

  • PROCESS-NAME,curl,DIRECT — curl의 모든 요청을 직접 연결.
  • PROCESS-NAME,steam.exe,PROXY — Steam의 모든 트래픽을 프록시 경유.

캐치올 규칙(필수)

목록의 마지막 규칙은 반드시 MATCH 규칙이어야 합니다. 앞의 규칙에 매칭되지 않은 모든 요청을 캐치하여 기본 정책으로 처리합니다:

- MATCH,PROXY

규칙 세트 활용(권장)

수천 개의 도메인 규칙을 직접 관리하는 것은 비효율적이고 최신 상태를 유지하기도 어렵습니다. Clash는 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
  proxy:
    type: http
    behavior: domain
    url: "https://cdn.jsdelivr.net/gh/Loyalsoldier/clash-rules@release/proxy.txt"
    path: ./ruleset/proxy.yaml
    interval: 86400

rules:
  - RULE-SET,reject,REJECT
  - RULE-SET,proxy,PROXY
  - GEOIP,KR,DIRECT
  - MATCH,PROXY

interval: 86400은 규칙 세트 파일을 86,400초(24시간)마다 갱신한다는 의미로, 규칙이 자동으로 최신 상태를 유지합니다.

프록시 제공업체의 구독 설정에는 보통 포괄적인 규칙 세트가 내장되어 있습니다. 대부분의 사용자는 규칙을 직접 작성할 필요가 없습니다. 이 가이드는 라우팅을 커스터마이징하려는 고급 사용자를 위한 것입니다.

규칙 매칭 순서와 우선순위

Clash는 규칙을 위에서 아래로 평가합니다. 규칙이 매칭되면 해당 정책이 즉시 적용되고 평가가 중지됩니다. 즉, 규칙의 순서가 매우 중요합니다:

  • 광고 차단(REJECT)규칙을 맨 앞에 배치하여 광고 요청을 조기에 차단합니다.
  • 더 구체적인 규칙(완전 일치)을 더 일반적인 규칙(접미사 일치)보다 앞에 배치합니다.
  • MATCH 규칙은 항상 마지막——이전 규칙에 매칭되지 않은 모든 트래픽의 기본 정책입니다.

디버깅 및 문제 해결

규칙 설정 후 트래픽이 예상대로 라우팅되지 않으면 다음 단계로 확인할 수 있습니다:

  • 「연결」탭 확인:Clash Verge Rev의 「연결(Connections)」 페이지에서 각 요청에 적용된 규칙과 정책을 실시간으로 확인할 수 있습니다.
  • 규칙 순서 확인:특정 도메인에 잘못된 규칙이 적용되고 있다면 더 구체적인 규칙을 위로 이동시키면 해결됩니다.
  • 규칙 세트 업데이트:외부 규칙 세트가 오래된 경우 구독 화면에서 수동으로 업데이트하거나 interval값을 줄여 자동 업데이트 빈도를 높이세요.

기타 Clash 설정에 대해서는 도움말 센터상세 튜토리얼을 참고하세요.