mihomo
Clash Meta에서 이어져 발전한 프록시 커널로, 프로토콜 연결, 규칙 매칭, DNS 처리와 트래픽 전달을 담당합니다. 많은 데스크톱 및 모바일 클라이언트가 mihomo를 하위 구성 요소로 사용하고 설정 관리, 트레이 메뉴와 시스템 프록시 전환 기능을 제공합니다. 클라이언트 버전과 커널 버전이 항상 동기화되는 것은 아니므로 기능 지원 여부를 판단할 때 각각 확인해야 합니다.
Clash 설정 살펴보기
mihomo 커널, 프록시 모드, 규칙 라우팅, DNS와 설정 파일의 주요 개념을 한곳에서 설명합니다. 낯선 필드는 분류나 영문 색인으로 바로 찾을 수 있습니다.
그래픽 클라이언트, 프록시 커널, 제어 인터페이스와 외부 리소스를 구분합니다. 인터페이스는 조작 창구를 담당하고, 커널은 실제 연결과 트래픽 처리를 담당합니다.
Clash Meta에서 이어져 발전한 프록시 커널로, 프로토콜 연결, 규칙 매칭, DNS 처리와 트래픽 전달을 담당합니다. 많은 데스크톱 및 모바일 클라이언트가 mihomo를 하위 구성 요소로 사용하고 설정 관리, 트레이 메뉴와 시스템 프록시 전환 기능을 제공합니다. 클라이언트 버전과 커널 버전이 항상 동기화되는 것은 아니므로 기능 지원 여부를 판단할 때 각각 확인해야 합니다.
설정 파일을 읽고 프록시 연결, 규칙 라우팅과 DNS 해석을 실행하는 핵심 프로그램입니다. 독립적으로 실행할 수도 있고 그래픽 클라이언트가 시작하고 관리할 수도 있습니다. 기존 Clash, Clash Meta와 mihomo는 같은 생태계 흐름에 속하지만 필드와 기능 범위에는 차이가 있으므로 설정을 이전할 때는 현재 커널 문서를 기준으로 삼아야 합니다.
노드가 원격 서버와 연결할 때 사용하는 통신 규격입니다. 설정에는 서버 주소, 포트, 인증 정보, 전송 방식과 암호화 매개변수가 포함되는 경우가 많으며, 이 필드는 서버 측과 일치해야 합니다. 프로토콜 이름이 같아도 모든 확장 옵션의 호환을 의미하지는 않으므로 설정을 가져온 뒤 현재 커널이 관련 필드를 지원하는지 확인해야 합니다.
커널이 제공하는 제어 인터페이스로, 그래픽 클라이언트가 프록시 그룹, 활성 연결, 로그와 규칙 상태를 읽고 프록시 전환 등의 작업을 요청할 수 있습니다. 일반적인 설정값에는 로컬 수신 주소와 포트가 포함됩니다. 로컬 네트워크에서 제어 인터페이스에 접근하도록 허용할 경우 접근 키를 설정하고 접근 범위를 제한해야 합니다.
독립 파일이나 원격 주소에서 노드 모음 또는 규칙 모음을 불러오는 기능입니다. Proxy Provider는 노드를 관리하고 Rule Provider는 재사용 가능한 규칙을 관리하며, 두 Provider의 데이터 형식과 참조 위치는 다릅니다. Provider에는 업데이트 주기, 상태 점검과 로컬 캐시 경로를 설정할 수 있어 기본 설정에 모든 세부 항목을 넣지 않아도 됩니다.
프록시 모드는 Clash로 들어온 트래픽이 출구를 선택하는 방식을 결정하고, 시스템 프록시와 TUN은 어떤 애플리케이션 트래픽이 커널로 들어오는지를 결정합니다.
설정 파일의 규칙 순서에 따라 각 요청을 직접 연결할지, 프록시를 사용할지, 거부할지 판단합니다. 도메인, IP, 프로세스와 외부 규칙 집합을 기준으로 매칭할 수 있어 일상적으로 가장 많이 사용하는 모드입니다. Rule로 전환한 뒤에도 각 프록시 그룹에 유효한 출구를 지정해야 하며, 그렇지 않으면 규칙이 프록시 그룹에 매칭되어도 연결되지 않을 수 있습니다.
Clash로 들어온 트래픽을 지정한 프록시 그룹으로 일괄 전송하고 일반적인 규칙 라우팅을 개별적으로 실행하지 않습니다. 노드 사용 가능 여부를 임시로 확인하거나 규칙 설정으로 인한 접속 이상을 분리할 때 적합합니다. Global은 커널 내부의 출구 선택만 바꾸며 Clash로 들어오지 않은 애플리케이션 트래픽까지 자동으로 가로채지는 않습니다.
커널로 들어온 연결이 원격 프록시 노드를 거치지 않고 대상 주소에 직접 접속하도록 합니다. 인터넷에 연결되지 않을 때 이 모드로 로컬 수신, 시스템 프록시와 기본 네트워크가 정상인지 판단할 수 있습니다. Direct는 클라이언트를 끄는 것과 같지 않으며 트래픽이 여전히 Clash의 로컬 포트와 DNS 모듈을 거칠 수 있습니다.
운영체제의 HTTP 또는 SOCKS 프록시 주소를 Clash의 로컬 수신 포트로 지정합니다. 브라우저와 대부분의 데스크톱 애플리케이션은 이 설정을 읽지만 일부 게임, 명령줄 도구와 독립 네트워크 구성 요소는 무시할 수 있습니다. 시스템 프록시를 켰는데 트래픽이 없으면 포트, 우회 목록과 애플리케이션 자체 프록시 설정을 확인해야 합니다.
가상 네트워크 인터페이스로 IP 트래픽을 가로채 시스템 프록시 설정을 읽지 않는 애플리케이션까지 처리할 수 있습니다. 활성화하려면 대개 시스템 권한이 필요하며 클라이언트가 라우팅과 DNS 하이재킹 규칙도 설정합니다. 인터넷 연결 끊김, 로컬 네트워크 서비스 장애 또는 절전 모드 복귀 이상이 발생하면 가상 네트워크 어댑터, 라우팅 테이블, 방화벽과 DNS 상태를 순서대로 확인해야 합니다.
규칙은 작성된 순서대로 실행됩니다. 일반적으로 더 구체적인 매칭을 앞에 배치하고, 마지막에는 매칭되지 않은 연결을 대체 규칙으로 처리합니다.
도메인, IP, 프로세스 또는 규칙 모음에 따라 요청을 서로 다른 프록시 그룹으로 보냅니다. 규칙은 위에서 아래로 매칭되며 처음 일치한 결과가 현재 연결의 출구를 결정하므로 순서 자체가 설정의 일부입니다. 라우팅을 수정한 뒤에는 설정을 다시 불러오고 연결 세부 정보에서 실제로 매칭된 규칙과 프록시 경로를 확인해야 합니다.
도메인 접미사로 요청을 매칭하는 규칙 유형입니다. 예를 들어 example.com 규칙은 일반적으로 하위 도메인에도 적용할 수 있어 같은 사이트 체계를 하나의 출구로 묶는 데 적합합니다. 이 규칙은 도메인 정보를 처리하므로 대상 IP만 있고 커널이 도메인을 복원하지 못하면 매칭되지 않을 수 있습니다.
대상 IP의 지리 데이터베이스상 소속을 기준으로 매칭하며, 지역별 직접 연결이나 프록시 정책에 자주 사용합니다. 결과는 GeoIP 데이터베이스 버전, 대상 서비스가 사용하는 주소와 DNS 응답에 따라 달라집니다. 도메인 등록 지역, 서버 배치 지역과 IP 데이터베이스의 표시는 서로 다를 수 있으므로 GEOIP를 유일한 규칙 기준으로 삼아서는 안 됩니다.
Rule Provider의 규칙 모음을 참조하는 매칭 방식입니다. 대량의 도메인이나 IP 규칙을 기본 설정에서 분리하고 커널이 지정한 주기로 캐시를 업데이트할 수 있습니다. 사용하려면 Provider 이름, 규칙 동작 유형과 RULE-SET 참조가 일치해야 하며, 그렇지 않으면 불러오기에 실패하거나 매칭되지 않을 수 있습니다.
규칙 목록의 최종 대체 항목으로, 앞선 규칙에 매칭되지 않은 연결을 처리합니다. MATCH는 보통 한 번만 마지막에 배치하며 대상은 프록시 그룹, DIRECT 또는 REJECT가 될 수 있습니다. 목록 중간에 두면 뒤의 규칙은 매칭에 참여할 기회를 얻지 못합니다.
DNS 모드는 도메인을 해석하고 매핑하는 방식을 좌우합니다. 네트워크 이상은 노드뿐 아니라 시스템 해석기, IPv6 라우팅 또는 애플리케이션 내장 DNS에서도 발생할 수 있습니다.
연결은 프록시를 사용하지만 도메인 조회가 예상하지 못한 DNS 해석기로 전송되는 현상입니다. 조회 대상이 노출되거나 해석 결과와 프록시 출구 지역이 달라 접속 이상이 발생할 수 있습니다. 점검할 때 시스템 DNS, Clash DNS 모드, 브라우저 암호화 DNS와 TUN 가로채기 범위를 함께 확인해야 합니다.
커널이 먼저 도메인에 예약 주소를 반환한 뒤 내부 매핑으로 후속 연결의 실제 대상을 식별하는 DNS 모드입니다. IP 트래픽 단계에서도 도메인 정보를 유지해 도메인 규칙을 계속 매칭할 수 있습니다. 로컬 네트워크 검색, 일부 게임과 실제 DNS 응답에 의존하는 프로그램은 Fake-IP 필터 목록에 추가해야 할 수 있습니다.
먼저 도메인의 실제 IP를 해석한 다음 그 결과에 따라 연결을 전달하는 DNS 방식입니다. 호환 경로는 직관적이지만 도메인 규칙과 IP 규칙이 DNS 캐시, CDN 조정과 해석 위치의 영향을 받을 수 있습니다. DNS 모드를 바꾼 뒤에는 기존 캐시를 삭제하고 결과를 판단해야 합니다.
Clash DNS 모듈이 일반 도메인 조회에 사용하는 업스트림 해석기 목록입니다. 항목은 일반 DNS, DoH 또는 DoT 등의 형식으로 지정할 수 있으며 구체적인 지원 범위는 커널에 따라 다릅니다. 해석기 자체가 현재 네트워크나 프록시 경로를 통해 접근 가능해야 하며, 그렇지 않으면 노드는 정상인데 도메인만 열리지 않는 현상이 나타납니다.
인터넷 프로토콜의 여섯 번째 버전으로, IPv4와 독립적인 주소와 라우팅 경로를 제공합니다. Clash에서 IPv6를 활성화하면 DNS가 AAAA 레코드를 반환할 수 있고 연결이 IPv6를 먼저 시도할 수도 있습니다. 로컬 네트워크, 노드, 라우팅과 대상 서비스가 모두 사용 가능해야 경로가 완성되며, 문제 범위를 확인하려면 일시적으로 비활성화할 수 있습니다.
구독은 설정을 배포하고 YAML은 구체적인 필드를 저장하며, 클라이언트는 커널 기능을 운영체제에 연결합니다. 업데이트와 로컬 수정 사이의 덮어쓰기 관계를 명확히 해야 합니다.
원격 설정이나 노드 모음을 가져오는 주소로, 일반적으로 서비스 제공자가 생성합니다. 클라이언트가 구독을 업데이트하면 내용을 다시 다운로드하며 같은 설정의 로컬 수정이 덮어써질 수 있습니다. 구독 가져오기에 실패하면 링크가 완전한지, 네트워크에 연결되는지, 반환 형식이 현재 클라이언트에서 지원되는지 확인해야 합니다.
설정 파일에서 프록시 서버 연결 매개변수를 설명하는 항목으로, 주소, 포트, 프로토콜과 인증 필드를 포함합니다. 노드 이름은 선택을 돕는 라벨일 뿐 회선 품질을 판단하는 기준이 아닙니다. 실제 사용 가능 여부는 매개변수의 정확성, 서버 상태, 로컬 네트워크와 중간 경로가 함께 결정합니다.
여러 노드, DIRECT, REJECT 또는 다른 프록시 그룹을 하나의 출구로 묶어 규칙에서 참조할 수 있게 합니다. 일반적인 유형으로 수동 선택, 자동 속도 측정, 장애 전환과 부하 분산이 있습니다. 프록시 그룹은 중첩할 수 있지만 계층이 너무 깊으면 문제 해결이 어려워지므로 활성 연결을 확인할 때 최종적으로 연결된 구체적인 노드를 확인해야 합니다.
클라이언트가 테스트 주소에 TCP 연결이나 HTTP 요청을 보낸 뒤 기록한 응답 시간으로, 보통 밀리초 단위로 표시합니다. 테스트 값은 당시의 테스트 URL, 네트워크 경로와 핸드셰이크 과정만 반영하며 대역폭이나 장시간 안정성을 직접 의미하지는 않습니다. 노드를 선택할 때는 실제 접속, 패킷 손실, 피크 시간대 성능과 다운로드 속도도 함께 고려해야 합니다.
Clash 설정 파일에 흔히 사용하는 구조화된 텍스트 형식으로, 들여쓰기로 객체와 목록의 계층을 표현합니다. 탭, 잘못된 들여쓰기, 누락된 공백이나 닫히지 않은 따옴표로 인해 설정을 해석하지 못할 수 있습니다. 편집 후 먼저 문법을 확인하고 설정을 다시 불러온 뒤 로그에서 구체적인 오류 위치를 확인하세요.
포트, 노드, 프록시 그룹, 규칙과 DNS 옵션을 저장하는 YAML 문서이며 클라이언트에서 Profile이라고도 합니다. 구독 설정, 로컬 설정과 클라이언트가 생성한 설정은 서로 다른 디렉터리에 저장될 수 있습니다. 백업할 때는 기본 YAML뿐 아니라 Provider 파일과 클라이언트 덮어쓰기 설정도 함께 보존해야 하는지 확인해야 합니다.
하나의 로컬 포트에서 HTTP와 SOCKS 프록시 연결을 동시에 받는 수신 방식으로, 일반적인 필드명은 mixed-port입니다. 애플리케이션은 같은 주소와 포트만 입력하면 되며 커널이 연결 내용에 따라 진입 프로토콜을 식별합니다. 포트가 사용 중이거나 방화벽에 차단되면 시스템 프록시를 올바르게 설정해도 연결할 수 없습니다.
다른 로컬 네트워크 기기가 Clash의 로컬 프록시 포트에 접속할 수 있는지 제어하며, 일반적인 필드명은 allow-lan입니다. 활성화한 뒤에는 수신 주소가 루프백 인터페이스로만 제한되지 않았는지 확인하고 호스트 방화벽에서 해당 포트를 허용해야 합니다. 휴대폰, TV나 게임기는 Clash가 실행 중인 기기의 로컬 네트워크 주소를 프록시 서버로 입력해야 합니다.