Clash의 세 가지 프록시 모드
mode 값으로 살펴보는 세 가지 모드의 트래픽 처리와 전환 시점, 규칙 모드에서 MATCH 기본 규칙이 하는 일을 설명합니다.
먼저 구분할 점: 트래픽 유입과 프록시 모드
평소에는 규칙에 따라 트래픽을 분기하고, 문제를 확인할 때는 잠시 전역 모드로 전환하며, 기기에서 직접 연결해야 할 때는 직접 연결 모드를 선택하세요. 세 모드는 연결이 Clash 코어에 들어온 뒤 어떤 방식으로 출구를 선택할지 정합니다. 어떤 앱의 트래픽이 클라이언트로 들어오는지를 직접 결정하지는 않습니다.
예를 들어 브라우저가 시스템 프록시를 통해 클라이언트에 연결하거나, 앱에서 로컬 주소 127.0.0.1:7890을 HTTP 프록시로 지정하면 연결이 코어로 전달됩니다. TUN 모드를 켜면 가상 네트워크 인터페이스와 라우팅을 통해 더 많은 트래픽을 처리할 수 있습니다. 실제로 처리되는 범위는 운영체제, 라우팅 설정, 제외 항목 및 권한에 따라 달라집니다.
아래 설명은 일반적인 Clash 설정 방식과 Clash Meta(mihomo) 코어에 적용됩니다. 클라이언트에 따라 메뉴 이름은 ‘프록시 모드’, ‘실행 모드’ 또는 ‘모드’로 표시될 수 있지만, 규칙·전역·직접 연결은 대체로 같은 mode 값에 해당합니다.
mode 설정: 세 가지 모드 비교
설정 파일 최상위에서 mode는 mixed-port, rules 등의 필드와 같은 수준에 둡니다. dns나 정책 그룹 안에 들여쓰면 안 됩니다. 아래는 모드와 수신 포트만 보여 주는 예시이며, 단독으로 실행할 수 있는 구독 설정 파일은 아닙니다.
mixed-port: 7890
mode: rule
log-level: info
| 메뉴 이름 | 설정값 | 출구 선택 방식 | 사용 상황 |
|---|---|---|---|
| 규칙 모드 | rule | 규칙을 위에서부터 확인해 일치하는 규칙의 대상으로 전달 | 평소 트래픽 분기, LAN 연결은 직접 연결로 유지 |
| 전역 모드 | global | 내장 GLOBAL 정책 그룹에서 선택 | 출구 비교 테스트, 일시적으로 출구 통일 |
| 직접 연결 모드 | direct | DIRECT 출구 사용 | 로컬 네트워크 비교, 일시적인 직접 접속 |
클라이언트에서 모드를 전환하면 보통 코어의 제어 인터페이스를 통해 현재 실행 상태가 바뀝니다. 구독 파일 자체를 직접 수정하는 것은 아닐 수 있습니다. 설정을 다시 불러오거나 클라이언트를 재시작하거나 구독을 업데이트한 뒤에도 선택한 모드가 유지되는지는 클라이언트의 저장 및 덮어쓰기 방식에 따라 다릅니다. 기본값을 고정하려면 클라이언트의 덮어쓰기 설정을 확인하세요. 다음 업데이트 때 바뀔 구독 사본만 수정하지 않는 것이 좋습니다.
규칙 모드: 위에서부터 확인하고, 처음 일치한 규칙 적용
규칙 모드에서는 코어가 rules 목록을 순서대로 확인하고, 처음 일치하는 규칙이 연결의 대상을 결정합니다. 대상은 DIRECT, REJECT 또는 정책 그룹 이름일 수 있습니다. 따라서 규칙 모드는 ‘모든 연결을 프록시로 보내는 모드’가 아니라 연결마다 서로 다른 처리를 지정하는 방식입니다.
읽기 쉬운 규칙 예시
아래 예시는 설정에 ‘프록시 선택’이라는 정책 그룹이 이미 있다고 가정합니다. 이름은 실제 proxy-groups의 name과 정확히 일치해야 합니다. 아래 몇 줄의 규칙만으로는 프록시 노드나 정책 그룹을 만들 수 없습니다.
mode: rule
rules:
- DOMAIN-SUFFIX,example.com,프록시 선택
- IP-CIDR,192.168.0.0/16,DIRECT,no-resolve
- IP-CIDR,10.0.0.0/8,DIRECT,no-resolve
- IP-CIDR,172.16.0.0/12,DIRECT,no-resolve
- MATCH,프록시 선택
DOMAIN-SUFFIX,example.com은 해당 도메인과 하위 도메인에 일치합니다. 단, 코어가 연결에 해당하는 도메인 정보를 얻을 수 있어야 합니다.- 세 개의
IP-CIDR규칙은 일반적인 IPv4 사설 주소 대역을 다루며, 로컬 서비스 연결을 직접 연결 출구로 보내는 데 적합합니다. no-resolve는 이 IP 규칙을 확인하기 위해 추가 도메인 조회를 하지 않는다는 뜻입니다. 연결 전체에서 DNS가 필요 없다는 뜻은 아닙니다.- 마지막의
MATCH는 앞선 규칙과 일치하지 않은 연결을 받아 ‘프록시 선택’으로 전달합니다.
규칙 목록은 ‘더 구체적인 규칙 우선’으로 자동 정렬되지 않습니다. MATCH,DIRECT를 첫 줄에 두면 뒤에 있는 도메인 규칙은 적용될 기회가 없습니다. 마찬가지로 포괄적인 규칙을 구체적인 규칙보다 앞에 두면 뒤의 규칙이 계속 적용되지 않을 수 있습니다.
정책 그룹의 선택도 최종 출구에 영향을 줍니다
규칙이 ‘프록시 선택’과 일치한 것은 첫 단계일 뿐입니다. 해당 그룹에서 현재 DIRECT를 선택했다면 연결은 결국 직접 연결됩니다. 다른 정책 그룹을 선택했다면 참조된 그룹을 따라가며 출구를 확인해야 합니다. ‘프록시 규칙과 일치했는데 예상한 노드로 연결되지 않는다’면 모드 버튼만 보지 말고 일치한 규칙, 대상 그룹, 그룹 내 현재 선택을 모두 확인하세요.
MATCH 기본 규칙: 분류되지 않은 연결의 출구 결정
MATCH에는 도메인, IP 또는 포트 조건이 필요하지 않습니다. 이 규칙까지 도달한 모든 연결과 일치합니다. 설정을 명확하게 유지하려면 보통 규칙 목록의 마지막에 둡니다. 연결 실패 시 다시 시도하는 기능이 아니며, 노드에 연결할 수 없다고 자동으로 직접 연결로 바뀌지도 않습니다.
| 규칙 구문 | 분류되지 않은 연결의 처리 결과 | 확인할 항목 |
|---|---|---|
MATCH,프록시 선택 | 지정한 정책 그룹으로 전달 | 그룹이 존재하는지, 현재 선택한 항목을 사용할 수 있는지 |
MATCH,DIRECT | 기기에서 대상에 직접 연결 | 로컬 네트워크에서 대상 서비스에 접속할 수 있는지 |
MATCH,REJECT | 앞선 규칙에서 허용되지 않은 연결 거부 | 필요한 허용 규칙이 빠지지 않았는지 |
‘알려진 로컬 서비스는 직접 연결하고 나머지는 프록시 그룹으로 보내기’를 원한다면 앞의 예시처럼 구성하면 됩니다. ‘명시한 도메인만 프록시로 보내고 나머지는 직접 연결하기’를 원한다면 마지막 줄을 MATCH,DIRECT로 바꾸세요. 두 설정의 차이는 기본 출구에 있으며, 규칙 모드 자체에 있는 것은 아닙니다.
전역 모드: 출구 비교 테스트에 적합
mode를 global로 바꾸면 코어에 들어와 처리되는 연결은 일반 rules 목록을 하나씩 적용하는 대신 내장 GLOBAL 정책 그룹으로 전달됩니다. 클라이언트의 프록시 화면에서 전역 그룹의 현재 선택을 확인하세요. 모드만 바꾸고 전역 그룹을 확인하지 않으면 원하는 노드가 출구로 선택된다고 보장할 수 없습니다.
전역 그룹에서 선택할 수 있는 항목은 코어와 클라이언트의 표시 방식에 따라 달라집니다. 현재 DIRECT를 선택했다면 화면에 ‘전역’으로 표시되더라도 직접 연결될 수 있습니다. 전역 모드는 출구를 한곳에서 선택하는 방식이지, 반드시 원격 프록시를 사용한다는 보장은 아닙니다.
규칙 모드에서는 실패하고 전역 모드에서는 성공할 때 확인할 사항
- 같은 대상 주소를 사용해 규칙 모드에서 새 연결을 만들고, 연결 화면에 표시되는 일치 규칙, 정책 경로 및 출구를 기록합니다.
- 전역 모드로 전환한 뒤
GLOBAL에서 방금 테스트할 노드를 명시적으로 선택하고 새 연결을 만듭니다. - 전역 모드에서만 성공한다면 규칙 순서, 규칙 세트의 로드 여부, 규칙 모드에서 사용하는 정책 그룹의 현재 선택을 먼저 확인하세요.
- 두 모드 모두 실패한다면 규칙만 계속 바꾸지 말고 노드 상태, 로컬 연결 방식, DNS 및 대상 서비스도 확인하세요.
전역 모드에도 사용상 주의점이 있습니다. LAN 연결은 원래 직접 연결 규칙으로 처리될 수 있지만, 전역 모드에서는 일반적인 트래픽 분기 규칙이 더 이상 적용되지 않습니다. 프린터, NAS 또는 내부 웹사이트에 문제가 생기면 전역 모드를 계속 임시 해결책으로 사용하기보다 규칙 모드로 되돌리고 연결 경로를 확인하세요.
직접 연결 모드: 클라이언트를 종료하는 것은 아닙니다
mode: direct는 코어가 처리하는 연결을 DIRECT 출구로 보내 대상에 접속합니다. 이때도 클라이언트가 로컬 포트를 열어 두거나 시스템 프록시 트래픽을 받거나 TUN을 실행할 수 있습니다. 코어의 DNS 모듈도 계속 도메인을 조회할 수 있습니다. 클라이언트 종료, 시스템 프록시 해제, TUN 종료와는 서로 다른 작업입니다.
이 차이는 문제 해결 시 중요합니다. 직접 연결 모드로 원격 프록시 사용과 기기에서의 직접 연결 결과를 비교할 수 있지만, 클라이언트가 연결에 전혀 영향을 주지 않는다는 것을 단독으로 증명하지는 못합니다. 운영체제의 원래 네트워크 경로를 테스트하려면 시스템 프록시와 TUN을 각각 끄고, 앱에 프록시 주소가 직접 지정되어 있지 않은지도 확인하세요.
직접 연결이 유용한 세 가지 상황
- 로컬 서비스 테스트: 현재 네트워크에서 대상에 직접 접속할 수 있는지 확인한 뒤, 직접 연결 규칙을 추가할지 결정합니다.
- 노드 및 경로 비교: 같은 주소에 직접 연결과 프록시 출구로 각각 새 연결을 만들어 접속 가능 여부를 비교하세요. 화면에 표시된 속도 측정 결과만 비교하지 마세요.
- 기본 출구로 잠시 복구: 클라이언트는 계속 실행하면서 코어에 들어오는 연결만 일시적으로 대상에 직접 접속하도록 합니다.
직접 연결 모드에서도 일반 규칙 목록에 따라 트래픽을 분기하지 않으므로, 목록의 REJECT 규칙으로 규칙 기반 차단을 계속할 수 없습니다. 특정 접근 제한이 이 규칙에 의존한다면 모드를 바꾸기 전에 동작이 어떻게 달라지는지 확인하세요.
시스템 프록시, TUN, DNS 확인 순서
‘모드를 바꿨는데 달라진 게 없다’면 유입 경로, 모드, 규칙, 출구 순서로 확인하세요. 클라이언트의 연결 화면에 연결이 표시되는지 먼저 확인한 다음 일치 정보를 살펴보면, 계속 재시작하는 것보다 원인을 좁히기 쉽습니다.
- 유입 포트 확인: 실제
mixed-port가7890이라면 앱에서도 해당 로컬 프록시 주소를 사용해야 합니다. 포트를7891로 바꿨는데 앱이 계속7890을 가리키면 연결이 실패하거나 다른 프로세스에 연결될 수 있습니다. - 현재 모드 확인: 클라이언트의 모드 메뉴에서 실제 선택 항목을 확인하세요. 디스크의
mode설정만 읽어서는 부족합니다. 실행 중인 모드가 화면에서 변경되었을 수 있습니다. - 정책 경로 확인: 규칙 모드에서는 일치 항목과 정책 그룹을, 전역 모드에서는
GLOBAL을, 직접 연결 모드에서는DIRECT를 사용하는지 확인하세요. - 새 연결 만들기: 모드 전환은 보통 새 연결에 적용됩니다. 진행 중인 다운로드, 동영상 재생 또는 장시간 연결이 즉시 전환되지 않을 수 있습니다. 테스트 페이지를 닫았다가 다시 열고, 필요하면 해당 연결만 종료하세요.
- DNS 별도 확인: 모드를 바꾼다고 모든 DNS 설정이 자동으로 바뀌지는 않습니다. 앱의 암호화 DNS, 시스템 캐시, 코어 DNS 및 TUN의 DNS 처리 방식이 최종적으로 확인되는 IP 주소에 영향을 줄 수 있습니다.
평소 모드 선택과 복구 확인
구독, 정책 그룹, 규칙을 설정한 클라이언트라면 규칙 모드를 평소 기본값으로 사용하는 것이 일반적으로 적합합니다. LAN 직접 연결, 지정 사이트 프록시, 필요한 거부 규칙을 유지할 수 있습니다. 전역 모드는 짧은 시간 동안 출구를 확인할 때, 직접 연결 모드는 로컬 네트워크 경로를 비교할 때 유용합니다.
- 평소 사용: 규칙 모드를 선택하고 마지막
MATCH의 대상이 원하는 처리 방식에 맞는지 확인하세요. - 트래픽 분기 문제: 잠시 전역 모드로 전환해 비교할 노드를 명시적으로 선택하세요. 차이를 확인한 뒤 규칙 목록으로 돌아와 원인을 찾습니다.
- 네트워크 기준선 테스트: 먼저 직접 연결 모드로 비교하세요. 연결 처리의 영향을 더 배제해야 한다면 시스템 프록시와 TUN을 끄고 테스트합니다.
- 테스트 후: 원래 모드와 정책 그룹 선택을 복원하고 LAN 서비스와 자주 사용하는 사이트를 다시 확인하세요. 임시 설정을 계속 유지하지 않도록 주의합니다.
서로 다른 두 가지를 구분하면 혼란을 줄일 수 있습니다. 시스템 프록시와 TUN은 연결이 클라이언트로 들어오는 방식을 결정하고, mode는 들어온 뒤 어떤 출구를 선택할지 결정합니다. 규칙 모드에서는 ‘위에서부터 규칙을 확인하고 MATCH로 마무리한다’는 점까지 살펴보면 대부분의 모드 전환과 트래픽 분기 결과를 이해할 수 있습니다.