glossary(7) · 26 entries

Clash 용어 사전

설정 파일, 클라이언트 화면, 오류 로그에 반복적으로 등장하는 용어들을 5개 카테고리로 나눠 하나씩 설명합니다. 각 용어 카드에는 고유 앵커가 있어 주소창 링크를 그대로 복사해 공유할 수 있습니다. 사용법 가이드나 완벽 매뉴얼을 읽다가 낯선 개념이 나오면 이 페이지에서 바로 확인하세요.

01 / core & clients

코어와 클라이언트

먼저 코어와 클라이언트를 구분해야 합니다. 코어는 트래픽 처리와 규칙 매칭을 담당하고, 클라이언트는 코어에 그래픽 인터페이스를 씌우는 역할을 합니다. 이 두 계층은 자주 혼용되어 언급되지만, 명확히 구분해두면 이후 문제 파악이 훨씬 쉬워집니다.

mihomo

코어와 클라이언트

현재 Clash 생태계의 주력 코어로, 커뮤니티가 Clash.Meta를 기반으로 이어서 관리하고 있습니다. 오리지널 코어에 비해 VLESS, Hysteria2 등 최신 프로토콜을 지원하며 더 완전한 TUN 구현과 Geosite를 제공합니다. 본 사이트 다운로드 페이지에 수록된 GUI 클라이언트 대부분이 mihomo를 내장하고 있으니, 클라이언트를 선택할 때 코어 버전을 확인해보세요.

Clash(오리지널 코어)

코어와 클라이언트

Go 언어로 작성된 규칙 기반 프록시 코어로, 지금까지 이어지는 YAML 설정 형식을 정의했습니다. 프로젝트는 2023년 개발이 중단되었습니다. 이제 'Clash'라는 이름은 특정 코어 프로그램보다는 이 설정 형식을 중심으로 형성된 전체 생태계를 가리키는 경우가 많으며, 현재 주력 코어는 mihomo입니다.

GUI 클라이언트

코어와 클라이언트

코어 위에 그래픽 인터페이스를 얹은 데스크톱 또는 모바일 앱으로, Clash Verge Rev, Clash Plus, FlClash 등이 대표적입니다. 클라이언트는 구독 관리, 노드 전환, 시스템 프록시와 TUN 스위치 등의 상호작용을 담당하며, 실제 트래픽 처리와 규칙 매칭은 코어가 수행합니다. 문제를 해결할 때는 먼저 화면 계층인지 코어 계층인지 구분해야 합니다.

Clash Verge Rev

코어와 클라이언트

Tauri 기반의 크로스 플랫폼 데스크톱 클라이언트로, mihomo 코어를 내장하고 Windows, macOS, Linux 버전을 제공합니다. Linux용으로는 deb와 rpm 두 종류의 패키지가 있어 Debian 계열과 Red Hat 계열 배포판을 모두 지원하며, Linux 데스크톱 환경에서 자주 선택되는 클라이언트입니다.

ClashX Meta

코어와 클라이언트

macOS용 메뉴바 클라이언트로, 초기 ClashX가 Meta 계열 코어로 전환하며 탄생했으며 인터페이스가 매우 간결하고 메뉴바에 상주합니다. 현재 프로젝트는 유지보수가 중단되어 기존 설치본은 계속 작동하지만 더 이상 기능 업데이트가 제공되지 않으므로, 신규 사용자는 유지보수 중인 다른 클라이언트를 선택하는 것을 권장합니다.

02 / protocols

프록시 프로토콜

구독 목록의 노드마다 하나의 프로토콜이 대응됩니다. 프로토콜은 트래픽 암호화와 위장 방식을 결정하며, 어느 세대의 코어가 필요한지도 결정합니다. '지원하지 않는 type' 오류가 발생하면 여기서 해당 프로토콜을 먼저 확인하세요.

Shadowsocks

프록시 프로토콜

가볍고 암호화 오버헤드가 적은 프록시 프로토콜로, 생태계에서 가장 먼저 널리 지원된 프로토콜 중 하나입니다. Clash 설정에서는 type을 ss로 지정하며, aes-128-gcm이나 chacha20-ietf-poly1305 같은 암호화 방식이 흔히 쓰이고 신구 코어 모두에서 사용할 수 있습니다.

VMess

프록시 프로토콜

V2Ray 프로젝트가 설계한 전송 프로토콜로, UUID로 신원을 인증하며 시간 검증 기능이 내장되어 있어 로컬 시간이 크게 어긋나면 연결에 실패합니다. WebSocket, gRPC 등 다양한 전송 계층에 TLS 암호화를 더해 여러 조합으로 사용할 수 있습니다.

Trojan

프록시 프로토콜

프록시 트래픽을 표준 HTTPS처럼 위장하는 프로토콜로, 유효한 인증서를 가진 TLS 위에서만 동작하며 보통 443 포트를 사용합니다. 핸드셰이크와 전송 방식이 일반 웹 접속과 동일해 트래픽 식별이 어렵고, 설정의 sni 필드는 인증서 도메인과 일치해야 합니다.

VLESS

프록시 프로토콜

VMess의 경량화된 후속 프로토콜로, 프로토콜 내장 암호화를 제거하고 보안을 전적으로 외부 TLS나 REALITY에 맡겨 오버헤드가 더 낮습니다. 오리지널 Clash 코어는 이 프로토콜을 지원하지 않으므로, 구독에 VLESS 노드가 있다면 mihomo 계열 코어를 쓰는 클라이언트가 필요합니다.

Hysteria2

프록시 프로토콜

QUIC 기반 프록시 프로토콜로, 패킷 손실과 지연이 큰 네트워크 환경에 맞춰 혼잡 제어를 최적화해 열악한 네트워크에서도 좋은 처리량을 보입니다. UDP 기반이라 경로상의 방화벽에서 해당 포트를 허용해야 하며, mihomo 계열 코어에서만 지원됩니다.

03 / rules & routing

규칙과 분기

'어떤 트래픽을 프록시로 보내고 어떤 것을 직접 연결할지'는 규칙 시스템이 결정합니다. 규칙 매칭 순서와 정책 그룹의 관계를 이해하는 것이 '작동은 하는' 단계에서 '제대로 쓰는' 단계로 넘어가는 분기점입니다.

규칙 분기(rules)

규칙과 분기

설정 파일에서 위에서 아래로 순차적으로 매칭되는 규칙 목록으로, 각 항목은 매칭 유형, 매칭 값, 정책 세 부분으로 구성됩니다. 예를 들면 DOMAIN-SUFFIX,example.org,PROXY와 같습니다. 매칭되면 즉시 멈추고 이후 규칙은 적용되지 않으므로 순서가 중요하며, 마지막에는 보통 MATCH 규칙으로 기본값을 지정합니다.

정책 그룹(proxy-groups)

규칙과 분기

여러 노드를 하나의 선택 가능한 그룹으로 묶는 기능입니다. select(수동 선택), url-test(자동 지연 측정 후 최적 노드 선택), fallback(장애 조치), load-balance(로드 밸런싱) 유형이 있습니다. 규칙의 목적지는 보통 개별 노드가 아니라 정책 그룹을 가리키므로, 노드를 바꿔도 규칙을 수정할 필요가 없습니다.

GeoIP

규칙과 분기

목적지 IP의 소속 지역을 기준으로 매칭하는 규칙 유형으로, 클라이언트 로컬의 GeoIP 데이터베이스에 의존합니다. GEOIP,CN,DIRECT는 중국 본토 IP를 직접 연결하도록 하는 대표적인 작성 방식입니다. 데이터베이스는 시간이 지나면 오래되므로, 대부분의 클라이언트 설정에 원클릭 업데이트 기능이 있어 지역 판단이 이상할 때는 먼저 갱신해보세요.

Geosite

규칙과 분기

커뮤니티가 관리하는 도메인 분류 라이브러리를 기준으로 매칭하는 규칙 유형으로, 규칙 하나로 특정 카테고리의 사이트 전체를 커버할 수 있습니다. 예를 들어 GEOSITE,category-ads-all은 광고 도메인을 차단할 때 자주 사용됩니다. mihomo가 기본 지원하며, GeoIP와 함께 사용하면 직접 작성하는 규칙 수를 크게 줄일 수 있습니다.

rule-providers(규칙 세트)

규칙과 분기

대량의 규칙을 외부 파일로 분리해 URL로 구독하고 interval 필드로 주기적으로 갱신하는 방식입니다. 본문에는 RULE-SET 한 줄만 참조하면 되므로 수천 줄의 규칙을 직접 관리할 필요가 없으며, 커뮤니티에서 꾸준히 갱신되는 공개 규칙 세트를 바로 가져다 쓸 수 있습니다.

04 / network & ports

네트워크와 포트

트래픽이 어떻게 코어로 들어오는지, 도메인이 어떻게 해석되는지, 지연 시간 숫자가 무엇을 의미하는지—이 카테고리는 프록시 경로상의 네트워크 계층 개념을 다루며, '프록시를 켰는데 적용이 안 되는' 상황을 진단할 때 가장 많이 참고하게 됩니다.

TUN 모드

네트워크와 포트

코어가 가상 네트워크 인터페이스를 만들어 네트워크 계층에서 시스템 전체 트래픽을 처리하는 방식으로, 시스템 프록시 설정을 따르지 않는 프로그램이나 커맨드라인 도구까지 커버할 수 있습니다. Linux에서는 해당 권한을 부여하거나 코어를 특권 모드로 실행해야 하며, 보통 auto-route와 함께 라우팅 테이블을 자동으로 처리합니다.

시스템 프록시

네트워크와 포트

운영체제 차원의 HTTP/SOCKS 프록시 설정으로, 클라이언트를 켜면 데스크톱 환경의 프록시가 로컬 수신 포트(예: 127.0.0.1:7890)를 가리키게 됩니다. 이 설정을 따르는 앱만 프록시를 경유하는데, 브라우저는 대부분 이를 따르지만 일부 커맨드라인 도구는 무시합니다—이것이 바로 TUN 모드가 존재하는 이유입니다.

Fake-IP

네트워크와 포트

DNS 동작 모드 중 하나로, enhanced-mode 필드로 제어합니다. 코어가 도메인 조회에 예약된 대역(기본값 198.18.0.0/16)의 가상 주소를 반환하고, 트래픽이 도착하면 도메인 기준으로 바로 규칙을 매칭해 실제 해석 과정을 건너뛰므로 응답이 빠르고 DNS 오염의 영향도 적게 받습니다. 실제 IP가 필요한 일부 프로그램은 fake-ip-filter로 제외해야 합니다.

DNS 유출

네트워크와 포트

프록시를 켰는데도 도메인 해석 요청이 여전히 로컬 ISP DNS로 전송되는 현상입니다. 접속 의도가 노출될 수 있고 해석 결과가 오염되어 연결 오류를 일으킬 수도 있습니다. Fake-IP를 활성화하거나 설정의 dns 항목에 DoH/DoT 암호화 업스트림을 지정하면 유출을 막을 수 있습니다.

UWP 루프백 문제

네트워크와 포트

Windows의 UWP 앱(스토어 앱)은 기본적으로 로컬 루프백 주소 127.0.0.1 접근이 시스템에 의해 차단되어 로컬 프록시 포트에 연결할 수 없습니다. 다른 프로그램은 정상인데 스토어 앱만 프록시를 타지 않는 형태로 나타나며, 루프백 예외 도구로 하나씩 허용해야 합니다. Linux와 macOS에는 이런 제한이 없습니다.

노드 지연 시간

네트워크와 포트

클라이언트가 노드에 HTTP 요청 한 번(주로 구글의 generate_204 주소 사용)을 보내 측정한 왕복 시간(단위: ms)입니다. 이 값은 연결 상태와 응답 속도를 반영하며 다운로드 대역폭과는 직접적인 관계가 없습니다. 타임아웃이나 오류가 나면 해당 노드가 현재 사용 불가능하다는 뜻이며, 단순히 '느리다'는 의미가 아닙니다.

05 / config fields

설정 파일 필드

config.yaml 최상단의 핵심 필드 몇 가지가 코어가 어디서 수신하는지, 누가 접속할 수 있는지, 외부 패널이 어떻게 제어할 수 있는지를 결정합니다. 설정을 수정하기 전에 어느 필드를 건드리는지 먼저 확인하세요.

mixed-port

설정 파일 필드

같은 포트에서 HTTP와 SOCKS5 두 가지 프록시 프로토콜을 동시에 수신하는 필드로, 보통 7890으로 설정합니다. 시스템 프록시와 브라우저 확장 프로그램 모두 이 포트만 가리키면 되므로 port와 socks-port를 따로 설정하는 번거로움을 줄일 수 있습니다. 포트가 이미 사용 중이면 이 값을 바꾸고 시스템 프록시 설정도 함께 갱신하세요.

allow-lan

설정 파일 필드

LAN 내 다른 기기가 로컬 프록시 포트에 접속할 수 있는지를 제어하는 필드입니다. true로 설정하고 bind-address와 함께 사용하면 같은 네트워크 대역의 스마트폰, TV 박스 등이 이 기기의 주소와 포트로 프록시를 지정해 함께 사용할 수 있습니다. 공용 네트워크 환경에서는 반드시 꺼두어야 합니다.

external-controller

설정 파일 필드

코어가 외부에 노출하는 RESTful API 수신 주소로, 보통 127.0.0.1:9090으로 설정합니다. metacubexd, yacd 같은 웹 패널이 이를 통해 노드 목록을 읽고, 정책 그룹을 전환하고, 실시간 연결을 확인합니다. 함께 있는 secret 필드는 접속 비밀번호를 설정하는 용도로, 로컬이 아닌 주소로 수신할 때는 반드시 설정해야 합니다.

mode

설정 파일 필드

동작 모드 필드로 세 가지 값이 있습니다: rule(규칙표 기반 분기), global(전체 트래픽 프록시 경유), direct(전체 직접 연결). 평소에는 rule을 유지하면 됩니다. '이 사이트가 프록시를 타야 하는지' 확인할 때는 잠시 global이나 direct로 전환해 비교 테스트를 해보고, 확인 후에는 다시 되돌려놓으세요.

YAML

설정 파일 필드

Clash 설정 파일이 사용하는 데이터 형식으로, 들여쓰기로 계층을 표현하며 반드시 공백만 사용해야 하고 탭은 쓸 수 없습니다. 콜론 뒤에는 공백 하나를 반드시 넣어야 합니다. 구독 가져오기에서 '해석 실패' 오류가 뜨는 경우 상당수가 YAML 문법 오류입니다. 에디터의 YAML 검증 기능을 사용하면 오류 줄 번호를 빠르게 찾을 수 있습니다.

용어를 넘어서

개념을 이해했다면 다음은 실전입니다. 사용법 가이드에서는 구독 가져오기부터 연결 확인까지 전체 절차를 다룹니다. 규칙 분기, TUN, 일상적인 관리까지 체계적으로 알고 싶다면 완벽 매뉴얼을 참고하세요. 플랫폼별 설치 파일은 클라이언트 다운로드 페이지에 정리되어 있습니다.