클라이언트
Client
클라이언트는 설정, 프록시 선택, 연결, 로그를 관리하는 앱이며, 보통 시스템 프록시와 서비스 권한도 담당합니다. 인터페이스가 비슷해도 같은 코어를 사용하거나 동일한 설정 항목을 지원한다고 볼 수 없습니다. 설정을 옮길 때는 메뉴 이름만 비교하지 말고 클라이언트의 설정 처리 방식과 코어 기능을 함께 확인하세요.
인터페이스에 표시되는 항목부터 코어 개념까지 찾아보세요. 각 용어에서 의미와 설정 위치, 혼동하기 쉬운 차이를 설명합니다. 카드의 앵커 링크로 바로 공유하거나 다시 확인할 수 있습니다.
처음 설정을 가져온다면 시작 가이드를 먼저 확인하세요. 정책 그룹, 규칙 세트, DNS 설정을 조합하려면 고급 설정을 참고하세요. 각 항목의 지원 여부는 실행 중인 코어와 클라이언트에 따라 달라집니다.
관리 인터페이스, 트래픽 처리 엔진, 시스템 연결 방식을 구분하세요. 인터페이스의 스위치가 켜졌다고 연결이 실제로 적용된 것은 아닙니다.
Client
클라이언트는 설정, 프록시 선택, 연결, 로그를 관리하는 앱이며, 보통 시스템 프록시와 서비스 권한도 담당합니다. 인터페이스가 비슷해도 같은 코어를 사용하거나 동일한 설정 항목을 지원한다고 볼 수 없습니다. 설정을 옮길 때는 메뉴 이름만 비교하지 말고 클라이언트의 설정 처리 방식과 코어 기능을 함께 확인하세요.
Core
코어는 프록시 연결, DNS, 규칙 매칭을 실제로 처리하는 네트워크 엔진입니다. GUI 클라이언트에서 호출하거나 독립적으로 실행할 수 있습니다. 클라이언트와 코어는 별도로 업데이트될 수 있으므로, 인터페이스에서 옵션을 저장할 수 있다고 해서 현재 코어가 실행할 수 있는 것은 아닙니다. 알 수 없는 필드나 지원되지 않는 프로토콜 오류가 나타나면 먼저 코어 이름과 버전을 확인하세요.
mihomo / Clash.Meta
mihomo는 Clash 생태계에서 파생된 프록시 코어로, 이전에는 튜토리얼과 클라이언트 설명에 Clash.Meta라는 이름으로 자주 등장했습니다. 특정 GUI 클라이언트 하나를 가리키는 이름은 아니며, 같은 코어를 다양한 관리 인터페이스와 함께 사용할 수 있습니다. 오래된 가이드를 참고할 때는 현재 필드 문서를 확인하고, 특히 DNS, TUN, 스니핑 옵션의 버전 차이에 유의하세요.
System proxy
시스템 프록시는 로컬 프록시 주소를 운영체제에 등록해 해당 설정을 따르는 앱에서 사용하도록 합니다. 모든 프로그램의 연결을 강제로 가로채지는 않습니다. 별도로 프록시를 설정한 브라우저, 명령줄 도구, 게임은 다른 경로를 사용할 수 있습니다. 문제 해결 시 로컬 수신 포트, 앱의 프록시 설정, 연결 로그를 확인하세요. 시스템 프록시를 켰다고 모든 트래픽이 코어로 들어가는 것은 아닙니다.
External controller
외부 컨트롤러는 패널이나 클라이언트가 코어 상태에 접근하는 제어 인터페이스입니다. 설정 항목은 보통 external-controller입니다. 연결 조회, 정책 변경, 실행 상태 확인에 쓸 수 있지만 브라우저에 입력하는 프록시 포트는 아닙니다. 일반적으로 로컬에서만 수신 대기하도록 설정하고, 원격 접속이 꼭 필요하다면 인증을 설정하고 네트워크 접근 범위를 제한하세요.
노드는 연결 대상 위치를 지정하고, 프로토콜은 연결 방식을 정의합니다. 테스트 결과는 특정 대상과 시점의 네트워크 경로만 반영합니다.
Proxy node
프록시 노드는 서버 주소, 포트, 프로토콜, 인증 정보, 전송 매개변수 등을 포함하는 아웃바운드 연결 설정입니다. 노드 하나와 구독은 다릅니다. 구독에는 여러 노드가 포함될 수 있고 전체 규칙이 함께 제공되기도 합니다. 노드 연결에 성공해도 해당 아웃바운드만 기본적으로 사용할 수 있다는 뜻입니다. 앱에서 접속할 수 있는지는 규칙이 트래픽을 해당 노드로 전달하는지에 달려 있습니다.
Shadowsocks / SS
Shadowsocks는 정해진 암호화 방식과 인증 정보를 사용해 클라이언트와 서버 사이에서 프록시 트래픽을 전달합니다. 설정에는 흔히 type: ss가 사용되며, 암호화 방식, 비밀번호, 서버 매개변수가 서로 일치해야 합니다. 노드에 별도의 플러그인이나 전송 확장이 필요하다면 코어가 해당 기능을 지원하는지도 확인하세요. 서버 주소와 포트만 복사해서는 충분하지 않습니다.
Trojan
Trojan은 일반적으로 TLS 연결을 통해 프록시 트래픽을 전달하며, 설정에 서버 주소, 비밀번호, 서버 이름 등이 필요합니다. 인증 성공과 인증서 검증은 서로 다른 절차입니다. 도메인 불일치나 시스템 시간 오류도 핸드셰이크 실패의 원인이 될 수 있습니다. 인증서 오류가 발생하면 이름, 인증서 체인, 시간을 확인하고, 장기적인 해결책으로 검증을 끄지는 마세요.
SOCKS version 5
SOCKS5는 앱과 프록시가 목적지 연결을 협상하는 프로토콜입니다. TCP 연결과 UDP 릴레이에 사용할 수 있지만 자체적으로 전송을 암호화하지는 않습니다. 앱이 로컬 SOCKS5 포트에 연결한 뒤의 아웃바운드 경로는 코어 규칙이 결정합니다. 도메인을 로컬과 프록시 중 어디에서 해석하는지는 앱 구현에 따라 다르므로 프록시 주소와 해석 방식을 각각 확인하세요.
Latency test / URL test
클라이언트의 지연 시간 테스트는 보통 프록시를 통해 지정된 주소에 요청을 보내고 걸린 시간을 표시합니다. ICMP Ping과 반드시 같은 것은 아닙니다. 테스트 사이트, 이름 해석, 핸드셰이크, 네트워크 경로가 결과에 영향을 주며, 수치가 낮다고 다운로드가 더 빠른 것은 아닙니다. 테스트 시간 초과만으로 노드가 완전히 작동하지 않는다고 단정하지 말고 실제 대상 접속과 코어 로그를 함께 확인하세요.
규칙은 트래픽을 어디로 보낼지 결정하고, 정책 그룹은 현재 사용할 아웃바운드를 선택합니다. 먼저 어떤 규칙이 매칭됐는지 확인한 다음 노드를 조정하세요.
Rule-based routing
규칙 기반 라우팅은 규칙 모드에서 도메인, 대상 IP 등 연결 특성을 확인해 지정된 아웃바운드로 연결을 전달합니다. 규칙은 보통 위에서 아래 순서로 매칭되며, 먼저 일치한 항목이 결과를 결정합니다. 따라서 구체적인 예외 규칙은 포괄적인 규칙보다 위에 둬야 합니다. 전역 모드에서는 규칙 모드를 기준으로 트래픽 경로를 해석하지 마세요.
Proxy group
정책 그룹은 여러 프록시나 다른 정책 그룹을 하나의 논리적 아웃바운드로 묶으며, 규칙에서 그룹 이름을 직접 참조할 수 있습니다. select는 수동 선택, url-test는 테스트 결과에 따른 선택, fallback은 일반적으로 순서에 따라 사용 가능한 멤버를 선택합니다. 자동 선택 결과는 테스트 주소와 검사 주기의 영향을 받으므로 모든 대상에 최적의 경로를 보장하지는 않습니다.
Rule provider / Rule set
규칙 세트는 여러 도메인, IP, 규칙 항목을 별도 리소스로 저장해 분류와 주기적 업데이트를 쉽게 합니다. mihomo에서는 보통 rule-providers로 정의하고 RULE-SET으로 참조합니다. 리소스 형식은 선언한 동작 유형과 일치해야 합니다. 업데이트에 성공해도 적용됐다는 뜻은 아니므로 참조 이름, 규칙 순서, 대상 정책을 확인하세요.
IP geolocation
GeoIP는 IP 위치 데이터베이스를 바탕으로 대상 주소가 어느 지역에 속하는지 판별합니다. 흔히 GEOIP,CN,DIRECT처럼 작성합니다. 판별 기준은 IP 기록이며, 이 결과만으로 기업 등록 국가나 사용자의 실제 위치를 알 수는 없습니다. CDN 라우팅과 데이터베이스 업데이트에 따라 결과가 달라질 수 있습니다. 도메인 대상은 매칭 전에 해석이 필요할 수도 있으므로 no-resolve를 사용하기 전에 제약을 확인하세요.
Catch-all rule
MATCH는 앞선 규칙에 일치하지 않은 연결을 처리하는 기본 규칙입니다. 예를 들어 MATCH,프록시처럼 설정할 수 있습니다. 보통 목록의 마지막에 두며, 앞쪽에 배치하면 이후 규칙은 매칭될 기회를 잃습니다. 로그에서 많은 연결이 MATCH에 걸린다면 노드만 바꾸지 말고 도메인 정보, 규칙 세트 로드 상태, 규칙 범위를 확인하세요.
트래픽 가로채기, 도메인 해석, 프록시 아웃바운드는 서로 다른 계층입니다. TUN을 켠 뒤에도 라우팅 경로와 DNS 경로를 각각 확인해야 합니다.
Domain Name System
DNS는 도메인에 연결된 주소 등의 레코드를 조회합니다. 코어의 dns 섹션은 관련 해석 동작을 제어합니다. DNS 요청이 통과하는 경로와 앱 연결이 최종적으로 통과하는 경로는 서로 다를 수 있습니다. nameserver를 변경하기 전에 앱이 실제로 코어 DNS를 사용하는지 확인하세요. 브라우저의 암호화 DNS는 별도 경로를 사용할 수 있습니다.
Fake-IP
Fake-IP는 앱에 가상 주소를 반환하고 코어에 가상 주소와 도메인의 매핑을 저장해 이후 도메인 규칙을 적용하기 쉽게 합니다. 가상 주소는 대상 서버의 실제 주소가 아니므로 조회 결과에 표시되어도 오류라고 볼 수 없습니다. 실제 주소를 사용해야 하는 LAN 서비스나 앱에는 예외 설정이 필요할 수 있습니다. 해당 도메인만 지정하고 필터 목록에 지나치게 넓은 범위를 추가하지 마세요.
TUN virtual network interface
TUN은 가상 네트워크 인터페이스를 통해 시스템에서 코어로 라우팅된 IP 트래픽을 수신하므로 시스템 프록시를 따르지 않는 일부 앱도 처리할 수 있습니다. 실제로 트래픽을 가로채는지는 권한, 라우팅, 제외 설정, 다른 VPN의 영향에 따라 달라집니다. TUN을 켜도 모든 연결이 반드시 프록시를 거치는 것은 아닙니다. 코어에 들어온 연결은 규칙에 따라 직접 연결할 수 있으며, DNS 가로채기에도 별도 설정이 필요합니다.
DNS leak
DNS 누수는 예를 들어 코어가 처리하도록 설정했는데도 시스템이나 앱이 직접 요청을 보내는 등, DNS 요청이 예상한 경로를 통과하지 않는 현상입니다. 익숙한 리졸버 이름이 테스트 페이지에 표시되는지가 아니라 예상한 정책과 실제 요청을 기준으로 판단해야 합니다. 문제를 해결할 때는 IPv4, IPv6, 브라우저의 암호화 DNS, 기타 네트워크 소프트웨어를 함께 확인하세요. 한 곳의 설정만 변경해서는 해결되지 않을 수 있습니다.
Domain sniffing
도메인 스니핑은 식별 가능한 핸드셰이크나 애플리케이션 계층 필드에서 도메인을 추출합니다. 예를 들어 일부 연결의 HTTP Host나 TLS 서버 이름을 확인할 수 있습니다. 도메인 정보를 보완하는 데 유용하지만 임의의 앱 콘텐츠를 복호화하거나 모든 연결을 식별하지는 않습니다. 켠 뒤 호환성 문제가 발생하면 스니핑 프로토콜 범위, 제외할 도메인, 대상 설정을 확인하세요.
전체 설정, 프록시 목록, 규칙 리소스를 구분한 뒤 적절한 가져오기 방법을 선택하세요. 설정을 업데이트할 때는 로컬 수정 사항이 유지되는지도 확인해야 합니다.
Subscription
구독은 링크에서 설정이나 프록시 목록을 가져오는 배포 방식입니다. 링크는 전체 YAML을 반환할 수도 있고 다른 형식의 노드 목록을 반환할 수도 있습니다. 가져오기 기능이 해당 형식을 지원해야 하며, 웹페이지에서 링크가 열린다고 코어가 내용을 해석할 수 있는 것은 아닙니다. 구독 주소에는 접속 정보가 포함되는 경우가 많으므로 로그, 스크린샷, 설정을 공유할 때 전체 링크를 가리세요.
YAML
YAML은 Clash 설정에 자주 사용하는 구조화된 텍스트 형식입니다. 들여쓰기로 맵과 목록의 계층을 표현하며, 탭이 아닌 공백을 사용해야 합니다. 문법을 해석할 수 있어도 필드 이름과 유형, 참조가 올바르다는 뜻은 아닙니다. 오류가 발생하면 먼저 표시된 줄 근처의 들여쓰기, 콜론, 따옴표를 확인한 뒤 정책 그룹과 규칙 참조를 살펴보세요. 실제 오류가 표시된 줄보다 앞에 있을 수도 있습니다.
Configuration file / config.yaml
설정 파일에는 수신 포트, 프록시, 정책 그룹, 규칙, DNS 등의 설정이 들어갑니다. 흔히 config.yaml이라는 이름을 사용합니다. 파일명만으로 내용이 결정되는 것은 아닙니다. 클라이언트는 원본 설정을 다운로드한 뒤 로컬 오버라이드를 적용해 실행 설정을 만들 수 있습니다. 인터페이스의 설정과 파일 내용이 다르면 구독 원본만 보지 말고 클라이언트에 표시되는 실제 실행 설정을 확인하세요.
Proxy provider
프록시 제공자는 proxy-providers로 업데이트 가능한 프록시 목록을 관리하고, 정책 그룹에서 해당 목록의 멤버를 참조합니다. 전체 설정 구독과는 다르며 규칙을 제공하지도 않습니다. 응답 내용은 프록시 제공자 형식에 맞아야 합니다. 업데이트에 성공했는데 노드가 보이지 않으면 정책 그룹의 use 참조, 필터 조건, 리소스 파싱 로그를 확인하세요.
Local override / Merge
로컬 오버라이드는 구독 원본 설정에 항목을 추가하거나 일부를 대체하는 기능으로, 포트 고정, DNS 사용자 지정, 라우팅 규칙 추가 등에 사용합니다. 클라이언트마다 목록 병합, 규칙 삽입 순서, 스크립트 처리 방식이 다르므로 이름이 같은 기능의 동작도 같다고 볼 수 없습니다. 변경한 뒤 최종 실행 설정을 확인하고 구독을 한 번 업데이트해 로컬 설정이 예상대로 유지되는지 테스트하세요.