Clash 코어(Clash Meta·mihomo 포함)는 모든 네트워크 연결을 처리할 때마다 먼저 어떤 「모드」로 처리할지 판단합니다 — 규칙 모드, 글로벌 모드, 다이렉트 모드 중 하나입니다. 세 모드의 차이는 단순한 화면상의 스위치가 아니라 연결마다 완전히 다른 처리 로직을 따른다는 점에 있습니다. 이 세 모드의 실제 동작을 이해해야 프록시 이상을 진단하고 접속 속도를 최적화할 수 있습니다.
세 모드의 트래픽 흐름은 정확히 어떻게 다른가
Clash 클라이언트는 새 연결(도메인 조회 1회, TCP 핸드셰이크 1회)이 생성될 때마다 「판정」 과정을 거쳐 이 연결이 최종적으로 어느 출구로 나갈지 결정합니다. 세 모드의 판정 로직은 다음과 같습니다.
- 규칙 모드(Rule): 코어가 설정 파일의
rules항목을 위에서부터 순서대로 매칭하며, 조건에 맞는 규칙을 찾으면 그 규칙이 지정한 출구(프록시 그룹, DIRECT 또는 REJECT)로 처리하고 이후 규칙은 확인하지 않습니다. 규칙은 보통 도메인 접미사, IP 소재지(GeoIP), 프로세스명, 규칙 세트(rule-provider) 등 다양한 방식으로 매칭되며, 마지막에는 대개 매칭되지 않은 모든 연결의 기본 처리 방식을 정하는MATCH규칙이 있습니다. - 글로벌 모드(Global):
rules항목의 내용을 전부 무시하고, 모든 연결이 규칙 판정 없이 현재 선택된 프록시 노드 또는 프록시 그룹으로 일괄 전송됩니다. 도메인 조회 방식도 프록시 측 정책을 따르므로 중국 본토·해외 사이트를 구분하지 않습니다. - 다이렉트 모드(Direct): 마찬가지로 규칙 매칭을 무시하지만 방향이 반대입니다 — 모든 연결이 어떤 프록시 노드도 거치지 않고 로컬 네트워크로 직접 나가며, 프록시 기능을 임시로 끈 것과 같은 효과를 냅니다.
| 모드 | rules 참조 여부 | 대표 출구 | 적합한 상황 |
|---|---|---|---|
| 규칙 모드 | 예 | 규칙에 따라 프록시/다이렉트로 분류 | 평소 기본 모드 |
| 글로벌 모드 | 아니오 | 현재 프록시로 일괄 전송 | 노드 테스트, 임시 전체 프록시 |
| 다이렉트 모드 | 아니오 | 일괄 다이렉트 출구 | 프록시로 인한 문제인지 확인 |
규칙 모드가 기본값인 이유
규칙 모드의 핵심 가치는 「필요한 만큼만 프록시 적용」입니다. 중국 본토 사이트, 로컬 네트워크 주소, 시스템 업데이트처럼 프록시가 필요 없는 트래픽은 로컬 네트워크로 바로 나가고, 실제로 프록시가 필요한 트래픽만 프록시 노드로 들어갑니다. 이렇게 하면 두 가지 이점이 생깁니다 — 첫째, 국내 리소스 접속 시 프록시 경로의 영향을 받지 않아 지연이 줄고, 둘째, 프록시 노드의 대역폭이 실제로 필요한 트래픽에만 쓰여 무관한 요청에 낭비되지 않습니다.
규칙 파일에서 자주 쓰이는 매칭 방식은 다음과 같습니다.
DOMAIN-SUFFIX: 도메인 접미사로 매칭합니다. 예:DOMAIN-SUFFIX,github.com,PROXYGEOIP: IP 소재지로 판단하며, 국내 IP를 일괄 다이렉트로 보낼 때 자주 사용합니다. 예:GEOIP,CN,DIRECTRULE-SET/rule-providers: 외부에서 관리되는 규칙 세트를 참조해 설정을 직접 고치지 않고도 일괄 업데이트할 수 있습니다.
대부분의 구독 설정 파일에는 이미 국내 서비스, 광고 차단, 스트리밍 분류 등 흔한 상황을 다루는 규칙 템플릿이 내장돼 있어, 평소에는 별도로 손댈 필요 없이 기본 규칙 모드를 유지하면 됩니다.
규칙은 위에서부터 순서대로 매칭되며, 앞쪽에 있을수록 우선순위가 높습니다. 특정 사이트의 처리 방식이 예상과 다르다면, 프록시 노드를 먼저 건드리기보다 더 앞쪽 규칙이 먼저 매칭되고 있는지부터 확인하세요.
글로벌 모드가 필요한 상황과 그 대가
글로벌 모드가 가장 자주 쓰이는 상황은 문제를 진단할 때 「규칙 설정」이라는 변수를 배제하는 경우입니다. 예를 들어 특정 사이트 접속이 이상할 때, 규칙이 이 사이트를 다루지 못한 건지 노드 자체 문제인지 애매하다면 글로벌 모드로 전환해 봅니다. 이때 접속이 정상으로 돌아온다면 노드 문제가 아니라 규칙 매칭 문제일 가능성이 크고, 글로벌 모드에서도 여전히 이상하다면 프록시 노드나 회선 자체의 문제로 볼 수 있습니다.
글로벌 모드의 또 다른 용도는 규칙 세트가 아직 충분히 커버하지 못하는 임시 상황에 대응하는 것입니다 — 예를 들어 아직 익숙하지 않은 새 구독 규칙으로 막 바꿨을 때, 우선 글로벌 모드로 사용 가능성을 확보한 뒤 이후 규칙을 하나씩 점검하며 보완하는 식입니다.
주의할 점은, 글로벌 모드에서는 국내 사이트나 로컬 네트워크 서비스도 강제로 프록시 노드를 거치게 된다는 것입니다. 이는 불필요한 지연을 늘릴 뿐 아니라, 위치 검증이 엄격한 국내 서비스에서 로그인 오류나 인증 요구가 잦아지는 문제로 이어질 수 있습니다. 글로벌 모드는 짧은 시간의 진단·테스트용으로 적합하며, 장기적인 일상 모드로 쓰는 것은 권장하지 않습니다.
다이렉트 모드와 로컬 네트워크 진단
다이렉트 모드는 프록시 기능을 임시로 끈 것과 같아서, 모든 트래픽이 원래의 로컬 네트워크 경로로 나갑니다. 이 모드의 가치는 주로 진단 상황에서 드러납니다. 프록시 노드나 클라이언트 자체가 네트워크 이상의 원인이라고 의심될 때, 다이렉트 모드로 전환해도 문제가 여전하다면 프록시와 무관한 문제, 즉 로컬 네트워크·DNS·통신사 회선 문제일 가능성이 크고, 다이렉트 모드로 전환한 뒤 문제가 사라진다면 원인이 프록시 쪽에 있다고 확인할 수 있습니다.
이 외에도 네트워크 환경 조건이 엄격한 일부 상황(예: 실제 로컬 IP가 필요한 특정 인증 절차, 로컬 네트워크 내부 서비스 디버깅)에서도 일시적으로 다이렉트 모드로 전환한 뒤 작업이 끝나면 다시 규칙 모드로 돌아가곤 합니다. 다이렉트 모드를 장기간 사용하는 것은 프록시 클라이언트를 쓰는 의미 자체가 없어지므로 권장하지 않습니다.
평소에 모드를 유연하게 전환하고 확인하는 방법
주요 클라이언트(Clash Verge Rev, Clash Plus, FlClash 등)는 대체로 메인 화면이나 개요 페이지에 모드 전환 버튼을 제공하며, 보통 「Rule / Global / Direct」 또는 해당 언어 표기로 나타납니다. 클릭 즉시 적용되며 클라이언트를 재시작하거나 설정을 다시 불러올 필요가 없습니다.
모드 전환과 TUN 모드의 관계는 구분해서 이해해야 합니다. TUN 모드는 트래픽이 어떻게 코어에 캡처되는지를 다루는 설정(시스템 레벨 네트워크 인터페이스 인수, 프록시를 인식하지 못하는 앱·프로토콜까지 포함)이고, 규칙/글로벌/다이렉트는 캡처된 트래픽을 어떤 로직으로 분류할지를 다루는 설정입니다. 둘은 서로 다른 레이어의 설정이라 동시에 존재할 수 있습니다 — TUN 모드를 켠 상태에서도 규칙·글로벌·다이렉트 세 모드 사이를 그대로 전환할 수 있고 동작 방식도 변하지 않습니다.
모드 전환이 실제로 적용됐는지 확인하려면 클라이언트의 연결 로그나 트래픽 패널을 보면 됩니다. 규칙 모드에서는 연결마다 서로 다른 출구 정책이 표시되고, 글로벌 모드에서는 모든 연결이 현재 프록시 그룹으로 일괄 표시되며, 다이렉트 모드에서는 프록시 노드를 통한 트래픽 기록이 전혀 나타나지 않습니다.
자주 묻는 질문 한눈에 보기
- 규칙 모드에서 특정 사이트가 계속 느린데, 글로벌 모드로 바꿔야 하나요?먼저 해당 사이트가 어떤 규칙에 매칭되는지, 그 출구 노드가 정상인지 확인한 뒤 필요하면 임시로 글로벌 모드로 바꿔 검증해 보세요. 장기적으로 바꿔 두는 것은 권장하지 않습니다.
- 글로벌 모드와 다이렉트 모드는 서로 대체할 수 있나요?불가능합니다. 두 모드는 출구 방향이 정반대입니다. 글로벌 모드는 여전히 프록시 노드를 거치지만, 다이렉트 모드는 프록시를 전혀 거치지 않습니다.
- 모드를 바꿀 때 설정을 다시 불러와야 하나요?필요 없습니다. 모드는 실행 중에 켜고 끄는 스위치이며, 설정 파일 자체의 규칙 내용에는 영향을 주지 않습니다.
결론적으로 규칙 모드는 대부분의 일상 상황을 커버하며, 글로벌·다이렉트 모드는 짧은 시간 동안 진단 도구로 활용하는 것이 적합합니다. 세 모드의 트래픽 흐름 차이를 알고 있으면 접속 이상이 생겼을 때 문제가 규칙 설정, 프록시 노드, 로컬 네트워크 중 어디에 있는지 더 빠르게 짚어낼 수 있습니다.