구성 용어 · 범주별 보기
Clash 구성 및 네트워크 용어집
클라이언트 인터페이스, 구독 구성, 규칙 분기, DNS 및 코어 문서에 자주 등장하는 용어를 한곳에서 설명합니다. 각 항목은 기본 정의, 실제 역할 및 혼동하기 쉬운 경계를 함께 다룹니다.
01
기본 개념
클라이언트, 구독 출처, 프록시 항목 및 실행 모드 사이의 관계를 이해하는 데 필요한 내용입니다.
- Clash
- Clash는 일반적으로 규칙에 따라 네트워크 연결을 처리하는 프록시 도구 생태계 전체를 가리키며, 하나의 그래픽 프로그램만을 뜻하지 않습니다. 실제 사용에서는 그래픽 클라이언트, 프록시 코어 및 YAML 구성 파일을 구분해야 하며, 각각 담당하는 역할이 다릅니다. 클라이언트 인터페이스 이름에 Clash가 포함되어 있어도 동일한 코어 버전이나 같은 기능 구성을 사용한다는 의미는 아닙니다.
- 구독
Subscription - 구독은 서비스 제공자가 생성한 원격 구성 주소로, 클라이언트가 구독 주소에서 프록시 항목, 정책 그룹 및 규칙 분기 정보를 가져옵니다. 구독 링크 자체는 노드가 아니며 로컬 구성 파일과도 다릅니다. 업데이트를 실행하면 클라이언트가 원격 내용을 다시 읽으므로, 생성된 구성에 사용자가 직접 수정한 내용이 덮어써질 수 있습니다.
- 노드
Proxy - 노드는 구성에서 프록시 연결을 설정하는 서버 항목으로, 일반적으로 프로토콜, 서버 주소, 포트 및 인증 매개변수를 포함합니다. 노드 연결 가능 여부는 매개변수의 정확성, 네트워크 연결 가능성 및 프로토콜 지원 여부에 따라 달라집니다. 정책 그룹은 하나 이상의 노드를 참조한 뒤 현재 연결에 사용할 출구를 결정합니다.
- 구성 파일
Profile - 구성 파일은 수신 포트, 프록시 항목, 정책 그룹, 규칙 순서 및 DNS 동작을 정의하며, 일반적으로 YAML 형식으로 작성됩니다. 클라이언트가 구독을 가져오면 원격 내용을 선택 가능한 구성으로 저장하는 경우가 많습니다. 구성 파일을 전환하면 노드 목록뿐 아니라 그 안에 정의된 규칙과 정책도 함께 바뀝니다.
- 프록시 모드
Mode - 프록시 모드는 연결이 어떤 출구를 선택할지 결정합니다. 규칙 모드는 규칙 목록을 위에서부터 차례로 매칭하고, 전역 모드는 모든 연결을 현재 전역 정책으로 전달하며, 직접 연결 모드는 프록시 전달을 건너뜁니다. 일상적인 사용은 보통 규칙 모드로 시작하고, 규칙 문제를 확인할 때 다른 모드로 임시 전환해 비교합니다.
- 지연 시간
Latency - 지연 시간은 로컬 장치에서 테스트 요청을 보낸 뒤 응답을 받을 때까지 걸리는 시간입니다. 클라이언트에 표시되는 결과는 특정 테스트 주소, 테스트 프로토콜 및 현재 네트워크 상태에만 해당하므로 다운로드 속도나 연결 안정성을 단독으로 나타내지 않습니다. 클라이언트마다 테스트 방식이 다를 수 있어 결과를 단순히 서로 비교하기도 어렵습니다.
02
프로토콜 및 전송
로컬 프록시 진입점, 원격 연결 프로토콜 및 연결을 전달하는 전송 방식을 구분합니다.
- HTTP 프록시
- HTTP 프록시는 애플리케이션이 로컬 프록시 포트에 연결하는 일반적인 방식으로, 브라우저와 운영 체제의 프록시 설정이 보통 이 진입점을 지원합니다. 원격 노드가 사용하는 프로토콜과는 다른 계층의 개념입니다. 애플리케이션이 시스템 프록시를 읽거나 자체 설정에서 프록시 주소를 지정해야 트래픽이 해당 수신 포트로 들어옵니다.
- SOCKS5
- SOCKS5는 다양한 TCP 연결을 전달할 수 있는 범용 프록시 프로토콜이며, 클라이언트와 코어 구현에 따라 UDP도 지원할 수 있습니다. 일부 애플리케이션은 SOCKS 호스트와 포트를 별도로 입력하도록 합니다. 사용할 때는 애플리케이션이 SOCKS를 통해 도메인을 조회하는지 확인해야 하며, 그렇지 않으면 DNS 조회가 기존 애플리케이션 경로를 이용할 수 있습니다.
- TLS
- TLS는 네트워크 연결에 암호화와 서버 인증을 제공합니다. 프록시 설정의 TLS 옵션에는 일반적으로 서버 이름, 인증서 검증 및 애플리케이션 계층 프로토콜 협상이 함께 포함됩니다. 인증서 오류가 발생했다고 검증을 바로 끄기보다는 시스템 시간, 서버 이름 및 구성 출처를 먼저 확인해야 합니다.
- WebSocket
WS - WebSocket은 HTTP를 기반으로 하는 양방향 통신 프로토콜로, 일부 프록시 구성에서 전송 계층으로 사용할 수 있습니다. 관련 필드에는 경로와 요청 헤더가 포함되는 경우가 많으며 서버 설정과 일치해야 합니다. WebSocket은 데이터가 전달되는 방식을 설명할 뿐, 규칙 매칭이나 정책 그룹 선택을 결정하지 않습니다.
- UDP
- UDP는 비연결형 전송 프로토콜로 DNS, 실시간 통신 및 일부 게임 연결에 자주 사용됩니다. UDP를 프록시로 전달할 수 있는지는 원격 프로토콜, 노드 설정, 코어 기능 및 트래픽 인계 방식에 따라 달라집니다. 클라이언트에서 UDP 옵션만 켠다고 서버가 지원하지 않는 기능이 추가되지는 않습니다.
- 전송 계층
Transport - 프록시 문서에서 전송 계층은 TCP, WebSocket 또는 기타 전달 방식처럼 프록시 프로토콜의 데이터가 어떤 연결 형태로 전송되는지를 설명합니다. 전송 매개변수는 서버 설정과 일치해야 합니다. 시스템 프록시나 TUN처럼 로컬 트래픽을 인계하는 방식과는 다른 단계입니다.
03
구성 및 규칙
규칙 매칭 순서, 정책 그룹 동작 및 외부 구성 리소스의 구성 방식을 설명합니다.
- 규칙 분기
Rules - 규칙 분기는 도메인, IP, 프로세스 또는 네트워크 유형에 따라 연결을 어떤 정책으로 전달할지 판단합니다. 규칙은 일반적으로 위에서 아래로 매칭되며, 일치하는 항목을 찾으면 뒤의 항목은 더 이상 확인하지 않습니다. 범위가 지나치게 넓은 규칙을 앞에 배치하면 뒤의 구체적인 규칙이 가려질 수 있으므로 규칙 내용만큼 순서도 중요합니다.
- 정책 그룹
Proxy Group - 정책 그룹은 여러 노드나 다른 정책을 하나의 논리적 출구로 묶습니다. 수동 선택 그룹은 사용자가 현재 항목을 지정하고, 자동 테스트 그룹은 측정 결과에 따라 선택하며, 장애 조치 그룹은 현재 항목을 사용할 수 없을 때 차례로 시도합니다. 규칙은 일반적으로 특정 노드가 아니라 정책 그룹 이름을 가리킵니다.
- YAML
- YAML은 Clash 구성 파일에 널리 사용되는 구조화된 텍스트 형식으로, 들여쓰기로 계층을 표시합니다. Tab 문자, 잘못된 계층 정렬, 콜론 뒤 공백 누락은 파싱 오류를 일으킬 수 있습니다. 편집하기 전에 목록, 키-값 객체 및 일반 문자열을 구분해야 하며, 특수 문자가 포함된 텍스트는 따옴표로 감쌀 수 있습니다.
- Rule Provider
- Rule Provider는 독립 파일이나 원격 주소에서 규칙 집합을 불러오는 데 사용됩니다. 용량이 큰 규칙을 기본 구성에서 분리하고 지정한 주기에 따라 업데이트할 수 있습니다. Provider 이름은 규칙 섹션에서 올바르게 참조해야 하며, 출처를 선언하는 것만으로 자동 분기에 참여하지는 않습니다.
- Proxy Provider
- Proxy Provider는 독립된 출처에서 프록시 항목을 불러오고 여러 정책 그룹에서 해당 항목을 재사용하도록 합니다. 전체 구독을 가져오는 방식과는 다르며, 보통 직접 작성한 구성의 일부로 사용됩니다. 필터 조건, 상태 확인 및 업데이트 주기가 최종적으로 정책 그룹에 들어가는 항목에 영향을 줍니다.
- GeoIP
- GeoIP는 대상 IP의 지리적 소속을 기준으로 매칭하는 데이터 및 규칙 유형입니다. 도메인이 IP로 해석되었거나 연결이 IP에 직접 접근할 때만 기능을 발휘합니다. 데이터베이스는 코어 지원 여부와 맞아야 하며, 주소 할당 변경으로 인해 소속 결과가 늦게 반영될 수도 있습니다.
- GeoSite
- GeoSite는 용도나 소속별로 정리된 도메인 규칙 모음으로, 하나의 범주를 지정해 많은 도메인을 일괄 참조할 수 있습니다. 도메인 정보를 매칭하므로 IP 소속을 판단하는 GeoIP와는 다릅니다. 범주 내용은 사용하는 데이터 파일에 따라 결정되며, 같은 이름의 범주라도 데이터 출처에 따라 차이가 날 수 있습니다.
- FINAL / MATCH
- FINAL 또는 MATCH는 일반적으로 규칙 목록 마지막에 배치하는 기본 처리 항목으로, 앞에서 일치하지 않은 연결을 처리합니다. 코어와 구성 체계에 따라 비슷한 의미를 다른 키워드로 표현할 수 있습니다. 기본 처리 정책을 너무 앞에 두면 뒤의 규칙이 무효화되므로 보통 규칙 섹션의 마지막에 둡니다.
04
네트워크 및 DNS
도메인 해석, 시스템 트래픽 인계 및 일반적인 조회 경로 문제를 설명합니다.
- DNS
- DNS는 도메인을 연결 가능한 IP 주소로 변환합니다. Clash 구성에서 조회 서버, 캐시, 수신 주소 및 향상 모드를 지정하면 도메인 정보가 규칙 매칭에 활용됩니다. 시스템 DNS, 브라우저 보안 DNS 및 클라이언트 DNS가 동시에 존재할 수 있으므로 문제를 확인할 때 실제 조회 경로를 확인해야 합니다.
- DNS 누출
- DNS 누출은 애플리케이션의 조회 요청이 예상한 프록시나 암호화된 조회 경로를 우회해 다른 리졸버로 직접 전달되는 현상입니다. 프록시 연결 전체가 실패했다는 뜻은 아니며, DNS 조회 경로가 예상과 다르다는 의미입니다. 주요 확인 지점으로는 브라우저 자체 조회, 시스템 네트워크 인터페이스 설정, TUN 라우팅 및 구성의 nameserver가 있습니다.
- Fake-IP
- Fake-IP는 DNS 향상 모드 중 하나로, 코어가 먼저 애플리케이션에 매핑 주소를 반환한 뒤 연결 단계에서 원래 도메인을 복원하고 규칙을 매칭합니다. 이 방식은 도메인 정보를 유지하고 트래픽 인계 절차를 통합하는 데 유리합니다. 일부 LAN 서비스나 실제 IP에 의존하는 애플리케이션은 제외 범위에 추가해야 할 수 있습니다.
- Redir-Host
- Redir-Host 모드는 애플리케이션에 실제 조회 결과를 반환하고 조회 기록을 활용해 후속 분기를 지원합니다. Fake-IP와의 주요 차이는 애플리케이션이 매핑 주소가 아닌 실제 IP를 본다는 점입니다. 구체적인 지원 여부와 필드 이름은 코어 문서를 기준으로 확인해야 합니다.
- 시스템 프록시
- 시스템 프록시는 운영 체제의 프록시 주소를 Clash의 로컬 수신 포트로 지정합니다. 브라우저처럼 시스템 설정을 따르는 애플리케이션은 이를 통해 클라이언트에 연결하지만, 일부 애플리케이션은 해당 설정을 무시할 수 있습니다. 시스템 프록시는 일반적인 데스크톱 사용에 적합하며, 처리되지 않는 트래픽은 TUN이 필요한지 추가로 검토할 수 있습니다.
- TUN 모드
- TUN 모드는 가상 네트워크 인터페이스를 통해 시스템 트래픽을 인계하므로 시스템 프록시 설정을 읽지 않는 애플리케이션도 처리할 수 있습니다. 활성화하면 라우팅, DNS 가로채기 및 시스템 권한이 관련되는 경우가 많아 일반 시스템 프록시보다 장애 범위가 넓습니다. 문제를 해결할 때는 가상 인터페이스, 라우팅 테이블, 방화벽 및 다른 네트워크 도구 간의 충돌을 확인해야 합니다.
- Nameserver
- Nameserver는 구성에서 DNS 조회를 수행하는 리졸버 목록입니다. 코어 버전에 따라 기본 조회, 프록시 노드 도메인 조회 및 대체 조회 등의 용도를 구분할 수 있습니다. 접근 가능한 주소를 입력하는 것은 첫 단계일 뿐이며, 요청이 예상대로 직접 연결 또는 프록시 경로를 통과하는지도 확인해야 합니다.
- IPv6
- IPv6는 IPv4와 다른 주소 형식과 라우팅 체계를 사용하는 차세대 인터넷 주소 프로토콜입니다. 클라이언트, 시스템 네트워크, 노드 및 대상 서비스가 모두 지원해야 IPv6를 온전히 사용할 수 있습니다. 특정 위치에서 IPv6 옵션을 끄면 DNS 반환 결과와 규칙 매칭 동작이 달라질 수 있습니다.
05
플랫폼 및 코어
그래픽 인터페이스, 하위 코어, 수신 포트 및 운영 체제별 메커니즘을 구분합니다.
- mihomo
- mihomo는 Clash 생태계에서 지속적으로 유지 관리되는 프록시 코어 구현체로, 구성 해석, 규칙 매칭, DNS 처리 및 연결 전달을 담당합니다. 그래픽 클라이언트가 mihomo를 호출할 수 있지만 클라이언트 버전과 코어 버전은 서로 다릅니다. 특정 구성 필드를 사용할 수 있는지는 코어 버전과 해당 문서를 기준으로 확인해야 합니다.
- 그래픽 클라이언트
GUI Client - 그래픽 클라이언트는 프록시 코어 위에서 구독 가져오기, 구성 전환, 정책 선택, 로그 확인 및 시스템 통합 인터페이스를 제공합니다. 사용자의 조작을 구성이나 코어 제어 명령으로 변환하는 역할을 합니다. 비슷한 코어를 사용하더라도 클라이언트마다 인터페이스와 플랫폼 기능은 다를 수 있습니다.
- Mixed Port
- Mixed Port는 HTTP와 SOCKS 프록시 연결을 동시에 수신하는 혼합 수신 포트로, 로컬 애플리케이션을 설정할 때 구분해야 하는 포트 수를 줄여 줍니다. 이는 로컬 진입점일 뿐 원격 노드 프로토콜을 의미하지 않습니다. 포트를 변경하면 시스템 프록시와 해당 포트를 직접 입력한 애플리케이션도 함께 수정해야 합니다.
- UWP 루프백 제한
- Windows UWP 애플리케이션은 기본적으로 로컬 루프백 접근 제한을 받을 수 있어 로컬 주소에서 실행 중인 프록시 포트에 연결하지 못할 수 있습니다. 이때 다른 데스크톱 프로그램은 정상적으로 작동하지만 특정 스토어 앱만 프록시를 거치지 않을 수 있습니다. 대상 애플리케이션의 루프백 제한을 해제한 뒤 연결을 다시 확인하는 것이 해결 방향입니다.
- Service Mode
- Service Mode는 일반적으로 데스크톱 클라이언트가 설치하는 시스템 서비스 구성 요소를 가리키며, 더 높은 권한이 필요한 네트워크 작업을 수행하는 데 사용됩니다. TUN, 부팅 시 시작 또는 시스템 수준 라우팅 변경이 이 구성 요소에 의존할 수 있습니다. 서비스가 설치되지 않았거나 실행되지 않거나 버전이 맞지 않으면 클라이언트 인터페이스는 열려도 관련 기능이 작동하지 않을 수 있습니다.
- 코어
Core - 코어는 프록시 연결, DNS 조회, 규칙 매칭 및 트래픽 전달을 실제로 실행하는 프로그램입니다. 그래픽 클라이언트는 주로 코어를 관리하고 상태를 표시합니다. 구성 필드를 인식하지 못하거나 시작에 실패하거나 프로토콜을 지원하지 않을 때는 클라이언트 로그와 현재 코어의 기능을 함께 확인해야 합니다.