사용 가이드 · Clash 기술 블로그

Clash 프록시 모드 선택 방법: Rule, Global, Direct의 차이와 전환 방법

Rule, Global 및 Direct는 Clash에 들어온 연결을 규칙에 따라 라우팅하거나, 일괄 프록시로 보내거나, 로컬에서 직접 연결할지 결정합니다. 이 글에서는 세 가지 모드의 사용 환경, 시스템 프록시 및 TUN과의 차이, 이전 Script의 한계 및 문제 해결 방법을 설명합니다.

  • 프록시 모드
  • Rule
  • Global
  • Direct
  • Script
이 글의 목차

Global로 바꾼 뒤 일부 앱은 정상으로 돌아오지만 다른 앱은 여전히 반응하지 않을 수 있습니다. 서로 모순되는 결과는 아닙니다. 실행 모드는 연결의 경로를 정하고, 시스템 프록시나 가상 네트워크 어댑터는 어떤 프로그램의 요청을 클라이언트가 받을지 정합니다. 두 역할을 구분해 모드 전환으로 비교하고, 임시 테스트 설정을 그대로 계속 사용하지 않도록 하세요.

Rule, Global, Direct가 연결 경로를 결정합니다

평소에는 Rule로 규칙에 따라 트래픽을 분리하세요. 접속 경로를 임시로 바꾸거나 접속 결과를 비교해야 할 때 Global 또는 Direct를 사용합니다. 모드를 바꾼다고 노드 자체의 속도가 빨라지는 것은 아닙니다.

모드연결 처리 방식주요 용도
Rule규칙을 순서대로 확인하고 처음 일치한 규칙의 정책을 적용평소 서비스별로 서로 다른 출력 경로 사용
GlobalGLOBAL 그룹으로 전달하며 실제 출력 경로는 해당 그룹의 선택에 따라 결정출력 경로를 잠시 통일하거나 노드를 지정해 접속 결과 비교
Direct로컬 네트워크를 출력 경로로 사용로컬 네트워크의 도달 가능성을 확인하거나 잠시 직접 연결

이 모드들은 이미 코어에 들어온 연결에만 영향을 줍니다. 앱의 트래픽이 코어에 들어오지 않았다면 Global로 바꿔도 자동으로 처리하지 않습니다. Connections에 앱 기록이 전혀 없다면 시스템 프록시, 앱 프록시 또는 TUN이 적용되는지 확인할 수 있습니다.

Clash Verge Rev 같은 데스크톱 클라이언트에서는 메인 화면의 프록시 모드 항목을 열거나 트레이 아이콘을 오른쪽 클릭해 Mode 하위 메뉴로 들어갑니다. 모바일에서는 보통 홈 화면이나 Proxies 페이지의 모드 항목에 있습니다.

클라이언트에서 실제 전환 한 번 수행

  1. Mode / 프록시 모드 열기

    주 화면 모드 항목이나 트레이 메뉴에서 들어가고 원격 YAML의 mode 필드를 수정하지 마세요.

  2. Rule 선택

    대상 웹페이지를 열고 Connections에서 현재 일치한 규칙과 출구를 기록합니다.

  3. 비교가 필요할 때 Global 또는 Direct 선택

    같은 노드와 대상을 유지하고 모드만 바꾼 뒤 연결을 다시 만듭니다.

  4. 비교가 끝나면 Rule로 복귀

    대상을 다시 요청해 새 연결이 규칙 기반 라우팅으로 복구되었는지 확인합니다.

시스템 프록시, TUN, 정책 그룹, DNS의 역할

시스템 프록시, TUN, 모바일 VPN은 트래픽이 코어에 들어오는 방식을 결정합니다. select, url-test, fallback은 그룹이 출구를 고르는 방식을 결정하며 fake-ip와 redir-host는 DNS 강화 모드입니다. 용도가 다른 설정을 모두 "프록시 모드"라고 부르면 엉뚱한 스위치를 바꾸기 쉽습니다.

각 설정이 제어하는 항목

설정 종류일반적인 옵션실제 결정 항목
실행 모드Rule / Global / Direct커널에 들어온 연결이 최종적으로 사용할 출구
제어 방식System Proxy / TUN / 모바일 VPN커널에 들어올 수 있는 앱 또는 시스템 트래픽
정책 그룹 유형select / url-test / fallback정책 그룹 내부에서 노드 또는 다른 정책을 선택하는 방식
DNS 강화 모드fake-ip / redir-host도메인 이름 해석 결과를 규칙과 연결 절차에 전달하는 방식

Rule 모드: 규칙 순서와 연결 확인

Rule은 Mihomo의 기본 실행 모드이며 직접 연결, 프록시, 거부, 여러 정책 그룹을 함께 쓰는 일상 환경에 적합합니다. 본래 "국내 직접 연결, 해외 프록시"를 뜻하지 않으며 실제 결과는 현재 설정의 rules, rule-providers와 순서에 따라 완전히 달라집니다.

Mihomo는 rules를 위에서 아래로 검사하고 처음 일치하는 규칙에서 멈춥니다. 프록시를 사용해야 할 도메인이 더 넓은 DIRECT 규칙에 먼저 일치하면 뒤의 규칙은 실행되지 않습니다. 보통 목록 끝에 있는 MATCH는 앞에서 일치하지 않은 연결을 처리합니다.

Connections를 열어 방금 요청을 찾고 규칙 유형과 정책 그룹을 확인하세요. 인터페이스의 DOMAIN-SUFFIX, RULE-SET 또는 MATCH 표시로 어디서 결정되었는지 바로 알 수 있습니다. 감으로 모드를 반복해서 바꾸면 규칙 순서 문제를 오히려 찾기 어렵습니다.

Mihomo 내장 동작만 사용하는 독립적인 순서 예시
rules:
  - DOMAIN,api.example.com,DIRECT
  - DOMAIN-SUFFIX,example.com,REJECT
  - MATCH,DIRECT

실제 요청 하나 확인

  1. Rule 모드 유지

    프록시를 테스트할 때는 주 프록시 그룹에서 작동이 확인된 노드 하나로 고정하세요. 직접 연결 또는 거부 규칙은 프록시 노드를 선택할 필요가 없습니다.

  2. 대상 동작 다시 수행

    같은 웹페이지를 열거나 같은 엔드포인트로 요청을 다시 보내거나 같은 앱을 시작하세요.

  3. Connections에서 해당 요청 찾기

    도메인, 프로세스 또는 시각으로 방금 생긴 연결을 찾습니다.

  4. 규칙과 출구 읽기

    DIRECT, REJECT 또는 특정 프록시 정책 그룹인지 확인합니다.

결과가 예상과 일치하면 Rule은 정상입니다. 특정 웹사이트가 실패할 때는 관련 규칙이나 정책 그룹만 수정하고 연결 하나 때문에 사이트 전체를 Global로 바꾸지 마세요.

Global 모드: GLOBAL 그룹과 노드 선택

Global은 Mihomo에 이미 들어온 연결만 바꾸며 기기의 모든 앱을 자동으로 제어하지 않습니다. 이 모드로 전환한 뒤 GLOBAL 정책 그룹에서 현재 선택 항목이 구체적인 노드인지, 다른 정책 그룹인지, DIRECT인지 확인해야 합니다. 상단의 Global 표시만으로 실제 출구를 알 수 없습니다.

Global 모드에서는 먼저 GLOBAL 정책 그룹에서 구체적인 노드 하나를 선택하세요. 대상 요청이 Rule에서 DIRECT에 맞아 실패했지만 Global에서 해당 노드로 성공한다면 네트워크와 노드는 적어도 사용 가능하며 Rule의 일치 순서를 중점적으로 확인해야 합니다.

Global에서도 timeout이 발생하면 규칙만의 문제는 아닙니다. 노드, DNS, 로컬 네트워크를 비교하세요. 시험 후에는 Rule로 돌아가야 합니다. 시스템 업데이트, LAN, 국내 서비스처럼 원래 직접 연결하던 트래픽도 Global에서는 같은 출구로 전달될 수 있습니다.

Direct 모드: 직접 연결과 클라이언트 종료의 차이

Direct 모드는 Clash에 들어온 요청을 직접 연결합니다. 로컬에서 접근 가능한 웹사이트가 Direct에서는 성공하지만 프록시 정책에서 실패한다면 노드 또는 프록시 연결 문제일 가능성이 큽니다. Direct에서도 실패하면 로컬 DNS, 네트워크 또는 대상 서비스를 확인하세요.

Direct는 "Clash 끄기"와 완전히 같지 않습니다. 요청은 커널에 계속 들어올 수 있고 출구만 DIRECT를 선택합니다. 앱이 Clash를 거치는지는 페이지가 열리는지만 보지 말고 Connections에서 확인하세요.

Direct에서는 성공하고 Rule에서는 프록시를 사용해 실패함
해당 프록시 정책의 노드와 규칙 배치가 적절한지 확인하세요.
Direct와 Global 모두 실패함
로컬 네트워크와 프록시 로그를 각각 확인하고 결과를 모드 이름 탓으로 돌리지 마세요.
세 모드 모두 연결 기록이 없음
요청을 다시 실행해도 기록이 없다면 시스템 프록시, 앱 자체 프록시 또는 가상 어댑터 설정이 적용됐는지 확인하세요. 모드를 바꾸는 것만으로 트래픽이 처리되고 있는지 판단하지 마세요.

Script 모드: 이전 클라이언트와 현재 Mihomo의 차이

일부 이전 Clash 클라이언트, 구형 커널 또는 특정 설정에서는 Script / 스크립트 모드로 일반 규칙보다 복잡한 판단을 처리했습니다. 현재 Mihomo 일반 설정 문서는 Rule, Global, Direct만 실행 모드로 나열하므로 Script를 모든 최신 클라이언트에 있는 네 번째 공통 모드로 설명해서는 안 됩니다.

이전 클라이언트에 Script가 보인다고 새 클라이언트에도 같은 이름의 옵션이 있다는 뜻은 아닙니다. 새 클라이언트에서 찾지 못해도 설치 실패가 아닙니다. 기존 설정을 이전할 때 스크립트가 실제로 어떤 도메인, 네트워크 또는 프로세스를 판단했는지 확인한 뒤 현재 커널의 기능에 맞춰 rules, rule-providers 또는 클라이언트 지원 덮어쓰기로 다시 작성하세요.

Script를 만났을 때 판단 방법

표시 위치해석 방법다음 단계
이전 클라이언트의 모드 메뉴해당 버전 또는 커널이 제공하는 호환 기능기존 환경 기록을 보관하고 해당 버전 문서와 대조
기존 설정의 스크립트 구간사용자 지정 라우팅 로직이 포함되었을 수 있음판단 조건을 먼저 이해한 뒤 이전 여부 결정
새 Mihomo 클라이언트에 Script가 없음현재 세 가지 공통 실행 모드에 맞는 인터페이스현재 커널에서 확인되지 않은 mode 값을 억지로 넣지 마세요
Merge, 덮어쓰기 또는 JavaScript 페이지클라이언트의 설정 처리 기능에 속함커널 실행 모드와 혼동하지 마세요

모드 전환 후 연결 결과 판단하기

Rule은 실패하고 Global은 성공함

두 번의 Connections 규칙과 출구를 비교해 Rule 일치 조건을 수정하세요.

Global 페이지에 계속 DIRECT가 표시됨

상단 모드만 보지 말고 GLOBAL 정책 그룹의 현재 선택을 확인하세요.

Direct로 전환한 뒤 LAN이 복원됨

로컬 네트워크 범위 직접 연결 규칙을 추가하고 모드 전환에 계속 의존하지 마세요.

모드 전환 후에도 페이지 결과가 같음

재사용 연결을 닫고 다시 요청한 뒤 새 기록을 확인하세요.

비교가 끝나면 원래 계획한 모드로 돌아가 같은 동작을 반복하세요. Rule에서 올바른 정책에 맞고 결과도 정상이라면 Global을 "수정 방법"으로 유지할 필요가 없습니다.

참고 자료