Clash 규칙 모드·전역 모드·직접 연결 모드 비교: 프록시 모드별 차이와 선택 방법
Clash의 rule·global·direct 모드별 트래픽 처리 방식과 사용 상황을 비교하고, config.yaml의 mode 설정 및 변경 방법을 안내합니다.
세 가지 모드의 차이: 커널에 들어온 트래픽을 어떻게 처리할까
평소에는 규칙 모드를 사용하고, 분기 규칙의 영향을 잠시 배제하려면 전역 모드로 전환하세요. 로컬 네트워크에서 직접 접속할 수 있는지 확인할 때는 직접 연결 모드를 사용하면 됩니다. 세 모드는 Clash 커널이 연결을 처리하는 방식을 바꾸는 것으로, 구독 내용이나 노드 서버 설정을 변경하는 것은 아닙니다.
여기서 말하는 ‘연결’은 트래픽이 이미 Clash에 들어왔다는 전제가 있습니다. 브라우저가 시스템 프록시를 따르거나, 앱이 프록시 포트에 직접 연결하거나, TUN이 트래픽을 가로채야 커널이 연결 경로를 결정할 수 있습니다. 커널에 들어오지 않은 연결은 화면에서 전역 모드로 바꿔도 자동으로 프록시를 사용하지 않습니다.
| 모드와 설정값 | 주요 처리 방식 | 사용 상황 |
|---|---|---|
규칙 모드 rule | 규칙 순서대로 일치 여부를 확인하고, 일치한 정책을 적용 | 일상적인 트래픽 분기, 로컬 네트워크 접속, 사이트별 출구 선택 |
전역 모드 global | 내장된 GLOBAL 정책 그룹 사용 | 일시적으로 출구를 통일하거나 규칙 선택 문제인지 비교할 때 |
직접 연결 모드 direct | 직접 연결 출구를 사용하며 일반 규칙 목록에 따라 프록시를 선택하지 않음 | 로컬 네트워크를 확인하거나 원격 노드를 잠시 사용하지 않을 때 |
규칙 모드: 순서대로 확인하고 처음 일치한 규칙을 적용
mode: rule에서는 커널이 rules를 나열된 순서대로 확인합니다. 규칙이 일치하면 해당 규칙에 지정된 정책으로 연결을 처리하며, 일반적으로 그 뒤의 규칙은 해당 연결의 선택에 관여하지 않습니다. 정책은 노드나 정책 그룹일 수도 있고, 내장된 DIRECT 또는 REJECT일 수도 있습니다.
간단한 규칙 예시 읽기
mode: rule
rules:
- DOMAIN-SUFFIX,example.com,DIRECT
- IP-CIDR,192.168.0.0/16,DIRECT,no-resolve
- MATCH,Proxy
example.com과 그 하위 도메인은 첫 번째 규칙에 일치해 직접 연결됩니다.- 목적지 주소가
192.168.0.0/16범위에 포함된 연결은 두 번째 규칙에 일치합니다.no-resolve는 이 IP 규칙을 확인하기 위해 도메인 조회를 별도로 수행하지 않는다는 뜻입니다. - 앞선 규칙에 일치하지 않은 연결은
MATCH에서 처리되며,Proxy라는 정책을 사용합니다.
이것은 규칙 일부일 뿐, 완전한 구독 파일이 아닙니다. 사용하려면 기존 설정에 Proxy 노드나 정책 그룹이 정의되어 있어야 합니다. 실제 그룹 이름이 ‘노드 선택’이라면 그 이름을 정확히 사용해야 합니다. 이름이 일치하지 않으면 설정 검사가 실패하며, 다른 노드로 자동 대체되지 않습니다.
규칙 모드가 모든 사이트를 자동으로 판별하는 것은 아닙니다
트래픽 분기 결과는 설정에 등록된 규칙, 규칙 세트의 업데이트 상태, 정책 그룹의 현재 선택에 따라 달라집니다. 어떤 사이트가 선택 그룹에 일치하더라도 그 그룹에서 DIRECT를 선택했다면 최종 연결은 직접 연결됩니다. 반대로 중국 본토 사이트가 MATCH,Proxy에 걸리면 원격 노드를 이용할 수도 있습니다. 사이트가 있는 지역만으로 실제 연결 경로를 판단할 수는 없습니다.
특정 사이트의 연결 경로가 예상과 다르면 먼저 클라이언트의 ‘연결’ 화면에서 해당 도메인, 일치한 규칙, 출구 경로를 확인한 뒤 규칙을 수정하세요. 예외를 추가할 때는 더 구체적인 도메인 규칙을 포괄적인 규칙보다 앞에 배치해야 합니다. MATCH는 마지막에 두세요. 그렇지 않으면 뒤에 있는 규칙은 적용되지 않습니다.
전역 모드: GLOBAL로 출구를 통일하지만 모든 기기의 트래픽을 프록시로 보내지는 않습니다
mode: global은 일반적으로 모드 제어를 받는 연결을 내장된 GLOBAL 정책 그룹으로 보냅니다. 따라서 일반적인 분기에는 rules 목록을 사용하지 않습니다. 모드를 바꾼 뒤에는 프록시 또는 정책 그룹 화면을 열어 전역 그룹에서 사용 가능한 노드나 실제 노드를 선택하는 정책 그룹을 골랐는지 확인하세요.
GLOBAL에서 DIRECT를 선택하면 연결은 계속 직접 연결됩니다. 자동 속도 측정 그룹을 선택한 경우 최종 출구는 해당 그룹의 후보 노드와 선택 방식에 따라 달라집니다. ‘전역’은 하나의 경로 결정 지점을 사용한다는 뜻이지, 특정 노드나 최저 지연 시간을 보장하거나 모든 앱의 트래픽을 가로챈다는 뜻은 아닙니다.
잠깐 비교할 때는 유용하지만, 트래픽 가로채기 설정을 확인하는 용도로 대신 쓸 수는 없습니다
- 먼저 규칙 모드에서 접속되지 않았던 전체 도메인과 해당 연결에 일치한 규칙을 기록합니다.
- 전역 모드로 전환한 뒤
GLOBAL에서 정상 작동이 확인된 노드를 선택합니다. - 기존 페이지의 연결을 끊고 다시 접속하거나 새 브라우저 세션을 열어 이전 연결이 기존 경로를 계속 사용하지 않도록 합니다.
- 전역 모드에서는 접속되지만 규칙 모드에서는 안 된다면 규칙 모드로 돌아가 기존에 일치한 정책과 노드를 확인하세요. 규칙 전체를 바로 삭제할 필요는 없습니다.
전역 모드를 사용하면 라우터 관리 페이지, 프린터, 사내 네트워크 연결에 적합하지 않은 출구가 선택될 수 있습니다. 시스템 프록시의 우회 목록이나 TUN 라우팅 제외 항목에 등록된 트래픽은 커널에 들어오지 않습니다. mihomo를 사용할 때 설정에 별도 라우팅, 리스너, 고급 규칙이 포함되어 있다면 이 항목도 함께 확인하세요. 모드 이름만으로 모든 트래픽의 동작을 판단할 수는 없습니다.
직접 연결 모드: 커널은 그대로 사용하고 로컬 네트워크로 연결
mode: direct는 커널에 들어온 연결에 직접 연결 출구를 사용합니다. 원격 프록시 때문에 접속 문제가 생기는지 확인할 때 유용합니다. 예를 들어 같은 사이트가 직접 연결 모드에서는 열리지만 전역 모드에서는 열리지 않는다면, 전역 그룹의 선택, 노드 상태, 해당 출구의 네트워크를 중점적으로 확인하세요.
직접 연결 모드로 바꿔도 클라이언트가 종료되는 것은 아닙니다. 시스템 프록시는 계속 로컬 리스닝 포트를 가리킬 수 있고, TUN도 계속 작동할 수 있으며, DNS 설정 역시 커널에서 처리될 수 있습니다. 이 상태에서 클라이언트를 바로 종료했는데 시스템 프록시 설정이 복구되지 않으면 앱이 더는 열려 있지 않은 포트에 연결을 시도해 모든 웹페이지가 열리지 않을 수 있습니다.
- 출구 경로만 비교하려면: 클라이언트를 실행한 상태로 두고 직접 연결 모드로 전환한 다음 새 연결을 시작합니다.
- 클라이언트를 전혀 거치지 않는 네트워크를 비교하려면: 시스템 프록시와 TUN을 끄고 운영체제의 프록시 설정이 복구되었는지 확인한 뒤 테스트합니다.
- 클라이언트를 종료하려면: 먼저 클라이언트에서 제공하는 정상 종료 기능을 사용하고, 프록시 설정이 남아 있지 않은지 확인합니다.
직접 연결을 사용해도 대상 사이트에 반드시 접속할 수 있는 것은 아닙니다. 사이트 자체의 장애, 로컬 DNS 문제, 네트워크 접근 제한, 기업 인증 요구 등이 계속 영향을 줄 수 있습니다. 직접 연결은 경로 차이를 확인하기 위한 방법이지, 모든 문제를 해결하는 기능은 아닙니다.
config.yaml에서 mode 필드 설정하기
mode는 YAML 최상위 필드이며 mixed-port, rules와 같은 단계에 둬야 합니다. dns나 정책 그룹 아래에 들여쓰기하지 마세요. 값은 소문자로 rule, global, direct를 사용하는 것이 좋습니다. 아래 예시의 7890은 혼합 프록시 포트를 보여 주기 위한 값이며, 모든 클라이언트의 기본 포트가 이 값이라는 뜻은 아닙니다.
# 기존 설정의 최상위 항목에 병합하고 같은 이름의 필드를 중복 정의하지 마세요
mixed-port: 7890
mode: rule
전역 모드나 직접 연결 모드로 바꾸려면 같은 줄의 값만 바꾸세요.
# 전역 모드
mode: global
# 직접 연결 모드
mode: direct
그래픽 인터페이스와 파일 수정 함께 사용하기
- 해당 기능을 지원하는 데스크톱 클라이언트에서 ‘설정’ → ‘Clash 설정’ 또는 ‘커널 설정’을 열고 ‘프록시 모드’를 찾으세요. 일부 클라이언트는 모드 버튼을 홈 화면에 바로 표시합니다. 메뉴 이름과 위치는 클라이언트 버전에 따라 다를 수 있습니다.
- 파일을 수정해야 한다면 먼저 ‘설정’ 또는 ‘구독’ 화면에서 현재 활성화된 설정 파일을 확인하고 사본을 저장한 뒤, 해당 편집 메뉴를 통해 수정하세요.
- 저장한 뒤 클라이언트에서 제공하는 다시 불러오기 기능을 실행하고 YAML 구문 오류가 없는지, 화면에 표시된 현재 모드가 맞는지 확인하세요.
- 새 연결을 시작하고 ‘연결’ 화면에서 경로를 확인하세요. 파일이 저장되었다는 사실만으로 실행 중인 커널에 새 값이 적용되었다고 볼 수는 없습니다.
시스템 프록시, TUN, DNS: 혼동하기 쉬운 세 가지 구분
시스템 프록시: 앱이 로컬 포트로 연결을 보낼지 결정
설정에서 실제로 127.0.0.1:7890을 리슨한다고 가정해 보겠습니다. 시스템 프록시를 따르는 브라우저는 이 경로로 네트워크에 접속할 수 있지만, 시스템 프록시를 무시하는 게임, 명령줄 프로그램, 기타 앱은 직접 연결을 시도할 수 있습니다. Windows 11에서는 ‘설정’ → ‘네트워크 및 인터넷’ → ‘프록시’에서 설정을 확인할 수 있습니다. macOS에서는 ‘시스템 설정’ → ‘네트워크’ → 현재 네트워크 서비스 → ‘세부사항’ → ‘프록시’에서 확인하세요. 주소와 포트는 클라이언트의 실제 리스닝 설정과 일치해야 합니다.
TUN은 트래픽을 가로챌 범위를, 모드는 가로챈 뒤의 출구를 결정합니다
TUN은 가상 네트워크 인터페이스와 라우팅을 이용해 더 많은 앱의 트래픽을 커널로 보냅니다. TUN은 네 번째 프록시 모드가 아니며 규칙 모드와 함께 사용할 수 있습니다. 흔히 ‘TUN 켜기 + 규칙 모드’로 설정한 뒤 규칙으로 직접 연결과 프록시 연결을 구분합니다. TUN을 활성화한 후에는 권한, 라우팅 제외 항목, 다른 VPN과의 충돌 여부도 확인하세요. ‘전역 모드’가 TUN 활성화를 의미한다고 볼 수는 없습니다.
모드를 바꿔도 DNS 설정 전체가 자동으로 바뀌지는 않습니다
DNS의 nameserver, fake-ip 설정은 mode와 별개의 설정입니다. mihomo에서는 DNS 쿼리의 출구 경로가 respect-rules나 프록시 서버의 도메인 조회 설정에도 영향을 받을 수 있습니다. 따라서 직접 연결 모드에서도 DNS 문제가 생기거나, 전역 모드에서 도메인 접속은 실패하지만 IP 주소로는 접속될 수 있습니다. 이때는 DNS 로그도 확인해야 하며 세 모드를 계속 바꿔 보는 것만으로는 해결되지 않습니다.
증상별 점검: 모드를 바꾼 뒤 확인할 항목
| 증상 | 먼저 확인할 항목 |
|---|---|
| 전역 모드에서는 접속되지만 규칙 모드에서는 안 됨 | 일치한 규칙, 해당 정책 그룹의 선택, DIRECT 또는 REJECT로 잘못 연결되었는지 |
| 규칙 모드에서는 접속되지만 전역 모드에서는 안 됨 | 현재 GLOBAL 선택, 선택한 노드의 작동 여부, 내부 네트워크 트래픽의 출구가 바뀌었는지 |
| 세 모드 모두 연결 기록이 없음 | 앱이 시스템 프록시를 따르는지, 포트가 올바른지, TUN이 실제로 트래픽을 가로채는지 |
| 모드를 바꿔도 기존 페이지가 달라지지 않음 | 브라우저 캐시, 연결 재사용, 백그라운드 장기 연결 여부를 확인하고 새 연결로 다시 테스트 |
| 직접 연결은 되지만 프록시 출구 연결은 실패 | 노드 연결 오류, 구독 노드 상태, 프록시 그룹의 최종 출구 |
테스트할 때 나머지 조건은 그대로 유지하세요. 같은 도메인과 같은 앱, 같은 트래픽 가로채기 방식으로 테스트하고, 한 번에 모드나 정책 그룹 하나만 변경합니다. ‘현재 모드, 일치한 규칙, 최종 출구, 오류 메시지’를 기록하면 접속 여부만 적는 것보다 문제를 쉽게 파악할 수 있습니다. 로그를 공유하기 전에 구독 주소, 액세스 토큰 등 민감한 정보를 삭제하세요.
일상적인 사용은 규칙 모드로, 전역 모드와 직접 연결 모드는 비교용으로
- 웹 검색, 업무, 로컬 네트워크를 함께 사용할 때: 규칙 모드를 선택하고 필요한 도메인 예외를 관리하며 자주 쓰는 정책 그룹의 선택 상태를 확인합니다.
- 잠시 출구를 하나로 통일해야 할 때: 전역 모드를 선택하고 GLOBAL도 확인하세요. 모드 버튼만 바꾸면 끝나는 것이 아닙니다.
- 로컬 네트워크가 정상인지 확인할 때: 먼저 직접 연결 모드로 비교해 보세요. 클라이언트의 영향을 완전히 배제하려면 트래픽 가로채기를 끄고 시스템 설정도 확인해야 합니다.
세 단계로 확인하면 됩니다. 먼저 트래픽이 커널에 들어오는지 확인하고, 현재 모드를 확인한 다음, 최종 출구를 살펴보세요. 이 관계를 이해하면 ‘전역 모드인데도 일부 앱이 프록시를 사용하지 않는’ 이유를 설명하고 규칙, 노드, DNS 문제를 더 정확히 구분할 수 있습니다. 설정 필드를 하나씩 확인하려면 Clash 설정 필드 안내를 참고하세요. 처음 설정을 가져오는 경우에는 빠른 시작 가이드부터 확인하면 됩니다.