개념과 설정 범위
Mihomo 용어 가이드
설정 계층별로 주요 개념을 확인하세요. 각 항목에서 의미와 사용 위치, 혼동하기 쉬운 차이를 설명합니다. 구체적인 사용법은 입문부터 고급까지 안내서를 참고하세요.
CORE / CLIENT
커널과 클라이언트
UI, 연결 진입점, 실제 프록시 처리를 담당하는 프로그램을 먼저 구분하세요.
- Mihomo 커널 Mihomo core
- Mihomo는 프록시 프로토콜 연결, 규칙 매칭, DNS 처리를 담당하는 프로그램의 핵심이며, 설정에는 보통 YAML을 사용합니다. 커널 자체는 구독 관리 UI가 포함된 데스크톱 또는 모바일 앱과 다릅니다. 단독 실행 시에는 일반적으로 설정 파일, 명령줄 또는 제어 인터페이스로 관리하고, 그래픽 클라이언트를 사용하면 클라이언트가 커널을 호출합니다.
- Clash Meta Former project name
- Clash Meta는 Mihomo 프로젝트에서 과거에 사용하던 이름으로, 오래된 가이드와 구독 안내, 일부 클라이언트 이름에서 여전히 볼 수 있습니다. 이름이 비슷한 설정이라고 해서 모든 항목을 그대로 사용할 수 있다고 단정해서는 안 됩니다. 호환성을 판단할 때는 앱 제목에 Meta가 있는지만 보지 말고 실제 커널과 해당 버전의 지원 범위를 확인하세요.
- 클라이언트 Client application
- 클라이언트는 구독 가져오기, 프록시 그룹 선택, 로그 확인, 시스템 네트워크 설정 등을 위한 UI를 제공합니다. UI 기능과 권한 관리 방식, 내장 커널은 각각 업데이트될 수 있으므로 같은 커널을 사용해도 이용 경험은 다를 수 있습니다. 클라이언트를 비교할 때는 플랫폼 지원, 설정 덮어쓰기 방식, 트래픽 가로채기 방법을 함께 확인하세요. 클라이언트 선택 가이드를 참고하세요.
- 시스템 프록시 System proxy
- 시스템 프록시는 운영체제 설정에 로컬 HTTP 또는 SOCKS 프록시 주소를 등록해, 해당 설정을 따르는 앱의 요청을 커널로 전달합니다. 일부 게임, 명령줄 프로그램, 자체적으로 네트워크 연결을 관리하는 앱은 이 경로를 사용하지 않습니다. 시스템 프록시를 켜도 모든 트래픽이 가로채지는 않으며, 연결이 직접 연결될지 프록시 노드를 거칠지도 결정되지 않습니다.
- 노드 Proxy outbound
- 노드는 일반적으로 서버 주소, 포트, 프로토콜, 인증 정보, 전송 매개변수를 포함하는 프록시 아웃바운드 설정을 뜻합니다. 노드 이름은 식별을 위한 라벨일 뿐이며, 이름에 적힌 지역만으로 실제 출구 위치를 증명할 수 없습니다. 노드를 가져올 수 있다는 것은 데이터가 읽힌다는 뜻일 뿐, 연결 가능 여부는 설정값, 서버 상태, 현재 네트워크에 따라 달라집니다.
PROTOCOL
프록시 프로토콜
프로토콜은 통신 방식을 정의합니다. 하위 전송 방식, 인증, TLS는 각각 따로 확인해야 합니다.
- HTTP 프록시 HTTP proxy
- HTTP 프록시는 널리 쓰이는 애플리케이션 계층 프록시 인터페이스로, 브라우저에서 주소와 포트를 직접 지정할 수 있습니다. HTTPS 웹사이트에 접속할 때 클라이언트는 보통 CONNECT 메서드로 터널을 만든 다음, 터널 안에서 웹사이트와 TLS 통신을 합니다. 프록시 진입점 자체의 암호화 여부와 웹사이트의 HTTPS 사용 여부는 별개이므로 혼동하지 마세요.
- SOCKS5 SOCKS version 5
- SOCKS5는 TCP 연결을 전달할 수 있는 범용 프록시 프로토콜이며, 클라이언트와 서버, 앱이 모두 지원하면 UDP도 전달할 수 있습니다. SOCKS5 자체는 전송을 암호화하지 않으므로 프록시 포트를 사용한다고 전체 연결이 암호화되는 것은 아닙니다. 도메인을 앱에서 직접 조회할지 프록시에 맡길지는 앱과 프록시 설정에 따라 달라집니다.
- Shadowsocks Encrypted proxy protocol
- Shadowsocks는 정해진 암호화 방식과 키로 프록시 트래픽을 전송하며, 설정 유형은 보통
ss로 표기합니다. 클라이언트와 서버에서 호환되는 암호화 방식과 인증 정보를 사용해야 합니다. 프로토콜 세대가 다르면 이름만 바꿔 서로 대체할 수 없습니다. 노드에 플러그인이 필요하다면 현재 커널이 해당 플러그인과 옵션을 지원하는지도 확인하세요.
- VMess VMess protocol
- VMess는 UUID 등의 값으로 인증하는 프록시 프로토콜이며, 여러 하위 전송 방식을 사용할 수 있습니다. 노드 설정의 프로토콜 종류, WebSocket 등의 전송 설정, TLS는 각각 다른 계층이므로 서버 설정과 일치해야 합니다. UUID가 맞는 것만으로 설정이 완전하다고 볼 수 없으며 주소, 포트, 경로, 서버 이름 등의 실제 매개변수도 확인해야 합니다.
- Trojan TLS-based proxy protocol
- Trojan은 보통 TLS 연결을 통해 프록시 데이터를 전달하고 비밀번호로 인증합니다. 연결 오류는 네트워크 연결, TLS 핸드셰이크, 비밀번호 인증 중 서로 다른 단계에서 발생할 수 있으므로 로그를 확인해 원인을 구분하세요. 인증서 검증에는 서버 이름과 인증서 체인 등이 필요합니다. 인증서 검증을 건너뛰는 방법을 일반적인 문제 해결 절차로 사용하지 마세요.
RULE / POLICY
규칙과 프록시 그룹
규칙은 연결을 처리할 대상을 정하고, 프록시 그룹은 사용할 출구를 선택합니다.
- 규칙 기반 라우팅 Rule-based routing
- 규칙 기반 라우팅은 Rule 모드에서 설정 순서에 따라 도메인, IP, 프로세스 등의 조건을 확인하고, 처음 일치한 규칙에 지정된 프록시 그룹으로 연결을 전달합니다. 구체적인 예외 규칙은 일반적으로 범위가 넓은 규칙보다 앞에 둬야 합니다. 예상과 다른 출구를 사용할 때는 설정에 대상 도메인이 있는지만 확인하지 말고 실제로 일치한 규칙과 프록시 그룹 선택을 확인하세요.
- 프록시 그룹 Proxy group
- 프록시 그룹은 노드나 다른 프록시 그룹을 하나의 논리적 출구로 묶어 규칙에서 참조할 수 있게 합니다.
select는 직접 선택하고,url-test는 테스트 결과에 따라 선택하며,fallback은 사용 가능 여부와 설정 순서에 따라 대체 경로를 선택합니다. 그룹 이름은 참조하는 이름과 일치해야 합니다. 그룹 내 노드를 바꾸면 해당 그룹을 사용하는 새 연결에 영향을 주지만, 이미 연결된 세션이 이동하는 것은 아닙니다.
- GeoIP IP geolocation matching
- GeoIP는 IP 주소의 지역 정보 데이터에 따라 매칭합니다. 예를 들면
GEOIP,CN,DIRECT와 같습니다. 서비스 등록 국가나 사용자의 위치가 아니라 IP 주소 데이터를 기준으로 판단합니다. 공유 인프라, 주소 할당 변경, 데이터베이스 갱신 상태에 따라 결과가 달라질 수 있습니다. 특정 웹사이트를 정확하게 처리하려면 도메인 규칙을 함께 사용할 수 있습니다.
- GEOSITE Domain category matching
- GEOSITE는 도메인 분류 데이터로 서비스나 사이트 모음을 매칭합니다. 예를 들면
GEOSITE,category-ads-all,REJECT와 같습니다. 분류 이름과 적용 범위, 갱신 주기는 사용하는 데이터 소스에 따라 다르며 모든 소스에 같은 분류가 있는 것은 아닙니다. GeoIP가 서버 IP의 지역을 기준으로 하는 것과 달리, GEOSITE는 도메인 모음을 기준으로 매칭합니다.
- MATCH Catch-all rule
- MATCH는 별도의 매칭 조건이 없는 기본 규칙으로, 보통
rules목록의 마지막에 둡니다. 예를 들면MATCH,PROXY와 같습니다. 여기서PROXY는 설정에 실제로 존재하는 노드나 프록시 그룹이어야 하며, 기본 제공되는 고정 출구가 아닙니다. MATCH를 목록 앞쪽에 두면 뒤의 규칙은 이미 일치한 연결을 처리할 수 없습니다.
DNS / NETWORK
DNS와 네트워크 모드
트래픽 가로채기, 도메인 조회, 연결 테스트는 서로 다른 단계입니다.
- TUN 모드 Virtual network interface
- TUN 모드는 가상 네트워크 인터페이스와 라우팅 설정을 통해 트래픽을 커널로 전달하므로 시스템 프록시를 따르지 않는 앱을 처리하는 데 적합합니다. 트래픽이 커널로 들어오는 방식을 바꾸는 기능이며 Rule, Global 등의 아웃바운드 모드를 대체하지 않습니다. 실제로 가로채는 범위는 라우팅, 제외 항목, 시스템 권한, 클라이언트 구현에 따라 달라집니다. 활성화한 뒤에도 LAN 및 다른 VPN과의 호환성을 확인해야 합니다.
- DNS Domain Name System
- DNS는 도메인에 연결된 주소 등의 레코드를 조회하며, 조회 결과는 이후 연결 대상과 일부 IP 규칙의 판정에 영향을 줍니다. Mihomo의 DNS 설정은 커널의 조회 동작과 관련 경로를 제어하지만 DNS 서비스를 켜는 것만으로 시스템이나 모든 앱이 이를 사용하는 것은 아닙니다. 브라우저의 보안 DNS, 앱 자체 조회, 시스템 DNS도 각각 확인해야 합니다.
- Fake-IP Synthetic address mapping
- Fake-IP는 앱에 가상 주소를 반환하고 커널에서 해당 주소와 원래 도메인의 매핑을 관리하는 DNS 강화 모드입니다. 커널은 연결을 받았을 때 매핑 정보를 이용해 도메인을 보존하고 규칙을 판정할 수 있습니다. 실제 조회 주소에 의존하는 LAN 서비스나 특정 앱에 문제가 생기면
fake-ip-filter를 적용하고 앱 동작도 함께 확인하세요. 도메인을 필터링한다고 직접 연결이 지정되는 것은 아닙니다.
- DNS 누출 DNS leak
- DNS 누출은 조회 요청이 예상한 경로로 전송되지 않아 의도하지 않은 DNS 서버가 요청을 받는 현상을 말합니다. 브라우저에서 별도로 켠 보안 DNS, 앱 자체 조회, 가로채지 않은 시스템 요청 등이 서로 다른 경로를 사용할 수 있습니다. 검사 페이지에 표시된 DNS 서버 이름은 단서일 뿐입니다. 시스템 설정, 브라우저 구성, 커널 로그를 함께 확인해야 하며 이름만으로 결론 내릴 수 없습니다.
- 지연 시간 테스트 Latency test
- 클라이언트의 지연 시간 테스트는 보통 지정한 대상에 요청을 보내 프록시 경로의 응답을 확인합니다. 결과는 테스트 대상, DNS 조회, 연결 핸드셰이크, 네트워크 혼잡, 테스트 방식에 따라 달라지므로 클라이언트 간 결과를 그대로 비교하기는 어렵습니다. 테스트에 성공해도 모든 웹사이트에 접속할 수 있다는 뜻은 아니며, 지연 시간이 짧다고 다운로드 속도가 빠른 것도 아닙니다.
SUBSCRIPTION / CONFIG
구독과 설정 파일
콘텐츠 구조를 먼저 확인한 뒤 가져오기, 업데이트, 실제 적용을 구분하세요.
- 구독 Subscription
- 구독은 링크를 통해 갱신 가능한 노드 정보나 설정을 가져오는 방식이며, 특정 프록시 프로토콜을 뜻하지 않습니다. 반환되는 콘텐츠는 노드만 포함할 수도 있고 DNS, 프록시 그룹, 규칙 등의 전체 설정을 포함할 수도 있습니다. 링크에 계정 정보가 포함될 수 있으므로 스크린샷이나 로그를 공유할 때 가려야 합니다. 자세한 가져오기 절차는 구독 가져오기 가이드를 참고하세요.
- 구독 형식 Subscription format
- 구독 형식은 링크에서 반환하는 콘텐츠 구조를 뜻합니다. 전체 YAML 설정, 노드 목록, 인코딩된 공유 링크 모음 등이 있습니다. 파일 확장자나 링크 모양만으로 형식이 올바른지 알 수 없으며, 클라이언트의 가져오기 메뉴에서 해당 구조를 지원하는지 확인해야 합니다. 전체 설정은 노드 데이터만 받는 provider에 그대로 사용할 수 없는 경우가 많습니다. 파싱에 실패하면 로그인 페이지, 오류 페이지, 만료되거나 잘못된 링크가 아닌지 먼저 확인하세요.
- YAML Structured configuration text
- YAML은 Mihomo 설정에 사용하는 구조화된 텍스트 형식으로, 들여쓰기와 키·값, 목록으로 계층을 표현합니다. 들여쓰기에는 공백을 사용하고 같은 계층의 항목은 일관되게 맞추세요. 특수 문자가 포함된 문자열은 따옴표로 감싸야 할 수 있습니다. YAML 문법이 올바르다는 것은 구조를 파싱할 수 있다는 뜻일 뿐입니다. 항목 이름과 값, 프록시 그룹 참조가 커널 요구 사항에 맞는지는 설정 검사와 로그로 확인해야 합니다.
- rule-providers Rule set providers
rule-providers는 로컬 또는 원격 규칙 세트와 콘텐츠 유형, 형식, 갱신 방식을 지정합니다. 선언한 뒤에는rules에서RULE-SET으로 규칙 세트를 참조하고 출구 프록시 그룹을 지정해야 합니다. 규칙 세트는 매칭 조건을 제공할 뿐 노드를 자동으로 선택하지 않습니다. 노드 데이터를 제공하는proxy-providers와 혼동하지 마세요.
- 설정 업데이트 Profile update
- 설정 업데이트는 구독이나 원격 리소스를 다시 가져오는 작업이며, 클라이언트나 커널을 업그레이드하는 것과는 다릅니다. 다운로드 성공, 파싱 성공, 커널이 새 설정을 실제로 적용했는지는 각각 확인해야 합니다. 원격 업데이트는 구독 내용을 직접 수정한 부분을 덮어쓸 수 있으므로, 장기간 사용할 사용자 설정은 클라이언트가 지원하는 오버라이드 방식을 활용하는 것이 좋습니다. 문제 해결 방법은 일상적인 유지 관리 섹션을 참고하세요.