커널 계보: 오리지널 Clash → Clash Meta → mihomo
Clash 커널은 설정을 불러오고 규칙을 매칭하며 트래픽을 전달하는 핵심 프로세스로, Clash Verge나 ClashX 같은 그래픽 클라이언트는 사실 이 커널을 감싼 인터페이스일 뿐입니다. 인터페이스는 바뀌어도 커널 계보는 두 갈래뿐입니다. 업데이트가 멈춘 오리지널 Clash, 그리고 커뮤니티가 이어받아 유지보수 중인 Clash Meta(현재 이름은 mihomo)입니다. 이 두 계보를 구분하는 것이 클라이언트를 고르고, 가이드를 읽고, 문제를 해결하는 데 있어 가장 먼저 확인해야 할 부분입니다.
- 오리지널 Clash: Dreamacro가 Go 언어로 작성해 GPL-3.0으로 공개했습니다. 2023년 11월 작성자가 저장소를 삭제하며 프로젝트가 종료되었고, 같은 시기 비공개 강화판인 Clash Premium(TUN, 스크립트 규칙 포함)도 함께 업데이트가 중단됐습니다.
- Clash Meta: MetaCubeX 팀이 오리지널 공개 코드를 기반으로 개발을 이어받아 신규 프로토콜, 오픈소스 TUN, 도메인 스니핑 등의 기능을 추가했습니다. 커뮤니티에서는 흔히 Meta 커널이라고 부릅니다.
- mihomo: 2023년 말 Clash Meta가 mihomo로 이름을 바꾸었으며, 버전 번호는 v1.18부터 이어서 올라가고 있습니다. 현재 유일하게 활발히 유지보수되는 메인 커널로, 주요 신규 클라이언트에는 모두 이 커널이 기본 탑재되어 있습니다.
오리지널 Clash: 업데이트 중단 시점의 기능 기준선
오리지널 Clash는 2023년 11월 시점에 멈춰 있으며, 그 기능 목록은 모든 Clash 계열 커널의 공통 출발점으로 볼 수 있습니다.
- 프록시 프로토콜: HTTP, SOCKS5, Shadowsocks, ShadowsocksR, VMess, Trojan, Snell을 지원하며 인바운드·아웃바운드 모두 갖추고 있습니다.
- 규칙 분기: DOMAIN, DOMAIN-SUFFIX, DOMAIN-KEYWORD, GEOSITE, IP-CIDR, GEOIP, SRC-IP-CIDR, DST-PORT, MATCH 등의 유형을 지원하며, 정책 그룹은 select, url-test, fallback, load-balance, relay 다섯 가지가 있습니다.
- DNS 모듈: nameserver, fallback, enhanced-mode(fake-ip / redir-host)를 지원해 도메인별로 해석 경로를 지정할 수 있습니다.
- 비공개 Premium 강화 기능: TUN 전체 트래픽 인수, rule-providers 규칙셋(RULE-SET), PROCESS-NAME 프로세스 매칭, SCRIPT 스크립트 규칙 등이 있으며 이 부분의 코드는 한 번도 공개되지 않았습니다.
업데이트 중단의 영향은 '신기능이 없다'는 것에 그치지 않습니다. Hysteria2, TUIC, Reality 등 2023년 이후 널리 쓰이게 된 프로토콜은 전혀 사용할 수 없고, Go 런타임과 암호화 컴포넌트도 옛 버전에 그대로 머물러 있어 보안 문제가 있어도 더 이상 수정되지 않습니다. 새로운 OS와의 호환성 역시 아무도 챙기지 않습니다. 오리지널 커널이 오늘날 가지는 유일한 가치는 오랫동안 손대지 않은 옛 설정과의 호환성뿐입니다.
Clash Meta와 mihomo: 커뮤니티 메인 라인의 확장 목록
mihomo는 오리지널 기준선 위에 체계적인 확장을 더했으며, 그 증가분은 크게 네 가지 영역에 집중되어 있습니다.
프로토콜
VLESS(XTLS Vision 흐름 제어 및 Reality 포함), Hysteria, Hysteria2, TUIC v5, WireGuard, SSH 아웃바운드가 추가되었고, 새 버전에서는 AnyTLS 등의 프로토콜도 순차적으로 들어오고 있습니다. Shadowsocks, VMess, Trojan 같은 기존 프로토콜도 그대로 남아 있어 옛 노드를 계속 사용할 수 있습니다.
TUN
Premium의 비공개 TUN을 오픈소스 방식으로 새로 구현했습니다. stack은 system, gvisor, mixed 세 가지 중에서 고를 수 있고, auto-route로 라우팅을 자동으로 인수하며 auto-detect-interface로 출력 네트워크 카드를 자동 선택하고 dns-hijack으로 시스템 DNS 조회를 가로챕니다. 전체 트래픽 인수가 더 이상 비공개 컴포넌트에 의존하지 않게 됐습니다.
스니핑과 규칙
sniffer 도메인 스니핑은 TLS 핸드셰이크의 SNI나 HTTP 요청의 Host에서 실제 도메인을 복원해, fake-ip 환경에서 IP 기반 규칙이 어긋나는 문제를 해결합니다. 규칙 쪼에는 AND, OR, NOT 논리 조합과 SUB-RULES 하위 규칙이 추가되었고, rule-providers에는 inline 인라인 방식과 mrs 바이너리 포맷이 더해졌으며, PROCESS-NAME 프로세스 매칭은 오픈소스화되어 모든 플랫폼에서 사용할 수 있습니다.
DNS와 스케줄링
DNS에는 respect-rules(분기 규칙에 따라 해석 경로 결정), proxy-server-nameserver(프록시를 통해 노드 도메인 해석), direct-nameserver(직결 해석 경로 지정)가 추가되었습니다. 스케줄링 쪼에서는 unified-delay 통합 지연 통계, tcp-concurrent 동시 접속, find-process-mode 프로세스 탐색, global-client-fingerprint TLS 핑거프린트 같은 튜닝 옵션을 제공합니다. 외부 제어 API는 오리지널과 호환되므로 각종 패널을 그대로 사용할 수 있습니다.
기능 비교: 오리지널 Clash와 mihomo
| 비교 항목 | 오리지널 Clash(Premium 포함) | Clash Meta / mihomo | |||
|---|---|---|---|---|---|
| 유지보수 상태 | 2023년 11월 업데이트 중단 | 활발히 유지보수 중, 버전 계속 갱신 | |||
| 오픈소스 여부 | 코어는 GPL-3.0, TUN 등 강화 기능은 비공개 | GPL-3.0 전면 오픈소스 | |||
| 프록시 프로토콜 | SS、SSR、VMess、Trojan、Snell、HTTP、SOCKS5 | 오리지널 전체 지원, VLESS/Reality, Hysteria2, TUIC, WireGuard 등 추가 | |||
| TUN 모드 | 비공개 Premium에서만 제공 | 기본 내장 오픈소스, system/gvisor/mixed 세 가지 stack | |||
| 도메인 스니핑 | 없음 | sniffer 내장, TLS와 HTTP 지원 | |||
| 규칙셋 | rule-providers는 Premium 비공개 기능 | 프로세스 매칭 | PROCESS-NAME은 Premium에서만 지원 | 오픈소스화, 모든 플랫폼에서 사용 가능 | |
| DNS 튜닝 | nameserver、fallback、enhanced-mode | respect-rules, proxy-server-nameserver, direct-nameserver 추가 | |||
| 논리 규칙 | 없음 | AND / OR / NOT 조합과 SUB-RULES 하위 규칙 | |||
| 외부 제어 API | RESTful API + WebSocket | 인터페이스 호환, 패널 원활 이전 가능 |
결론은 명확합니다. mihomo는 오리지널 Clash의 완전한 상위 집합이며 설정 문법도 하위 호환됩니다. 오리지널에서 돌던 구독과 설정은 mihomo에서 모두 그대로 작동하지만, 반대는 성립하지 않습니다. VLESS, Hysteria2, TUN 오픈소스 스택을 사용한 설정을 오리지널 커널에 그대로 넣으면 바로 오류가 나거나 무시됩니다.
설정 차이: 이전 시 반드시 수정해야 할 항목
오리지널에서 mihomo로 옮길 때 대부분의 필드는 그대로 쓸 수 있지만, 다음 네 가지는 걸리기 쉽습니다.
- external-controller 작성 방식은 동일: 패널 주소, secret 인증 형식이 그대로 유지되므로 이전 후 가장 먼저 패널이 커널에 연결되는지 확인한 뒤 다른 부분을 살펴봅니다.
- TUN 설정 구조가 다름: 오리지널 Premium의 TUN 필드는 mihomo 오픈소스 TUN의 필드명, 계층 구조와 다르므로 옛 설정의 tun 구간은 mihomo 문서에 맞춰 다시 작성하는 것을 권장합니다.
auto-route와auto-detect-interface를 켜면 수동 라우팅 설정을 대부분 줄일 수 있습니다. - rule-providers 포맷 확장: 오리지널 Premium은 yaml/text 규칙셋만 인식하지만, mihomo는 inline과 mrs를 추가로 지원합니다. 서드파티 규칙셋을 참조할 때는 behavior와 format 두 필드가 서로 맞는지 확인해야 합니다.
- fake-ip와 스니핑 연동: mihomo의 기본 동작은 '먼저 스니핑한 뒤 매칭하는' 방식에 더 가깝습니다. 옛 설정이 특정 fake-ip 동작에 의존한다면 sniffer와 fake-ip-filter의 조합을 점검해 도메인 규칙이 우회되지 않도록 해야 합니다.
설정 호환성 요약
구독과 기본 규칙만 있는 옛 설정은 그대로 mihomo에 넣어 바로 실행할 수 있습니다. TUN, rule-providers, SCRIPT 규칙이 포함된 설정이라면 이전 전에 mihomo 문서를 참고해 하나씩 대조해야 하며, SCRIPT 규칙은 mihomo에서 하위 규칙과 스크립트 정책 그룹으로 대체됩니다.
선택 가이드: 상황별로 고르는 법
신규 사용자
mihomo 커널이 기본 내장된 클라이언트를 바로 선택하고 오리지널은 신경 쓰지 않아도 됩니다. 신규 프로토콜, 신규 OS, 신규 규칙셋은 모두 mihomo 라인에서만 갱신되므로 오리지널을 고르는 것은 첫날부터 이후 유지보수를 포기하는 것과 같습니다.
기존 설정 계속 사용
구독에 SS, VMess, Trojan 같은 옛 프로토콜만 있고 설정을 오랫동안 손대지 않았다면 일단 오리지널을 계속 써도 되지만, 가능한 한 빨리 mihomo로 이전하는 것을 권장합니다. 이전 비용은 주로 TUN과 규칙셋 두 부분이며, 한 번만 고쳐두면 오랫동안 이득을 봅니다.
전체 트래픽 인수(TUN)가 필요한 경우
게임 가속, UWP 앱, 시스템 프록시를 따르지 않는 프로그램에는 mihomo의 오픈소스 TUN을 선택하고 stack은 호환성과 성능을 함께 고려하는 mixed를 사용합니다. 더 이상 아무도 수정하지 않는 비공개 Premium TUN에는 의존하지 않는 것이 좋습니다.
구독에 신규 프로토콜이 포함된 경우
노드 목록에 VLESS Reality, Hysteria2, TUIC 중 하나라도 있다면 반드시 mihomo 커널이어야 하며, 오리지널은 아예 해석할 수 없습니다. 이는 현재 클라이언트 커널이 신형인지 구형인지 판단하는 가장 빠른 방법이기도 합니다. 구독을 불러온 뒤 신규 프로토콜 노드가 나타나는지 확인하면 됩니다.
여러 클라이언트 동시 사용
같은 기기에 여러 클라이언트를 설치했다면 각각의 커널 버전을 확인해야 합니다. 한 클라이언트가 시스템 프록시나 라우팅을 변경했는데 옛 커널을 쓰는 다른 클라이언트가 옛 방식으로 인수해버리면 규칙이 서로 덮어써지는 문제가 생길 수 있습니다.
버전 확인: 3초 만에 커널 신구 구분하기
- 클라이언트의 '정보' 또는 '커널 정보' 페이지를 열어 커널 이름과 버전 번호를 확인합니다.
Clash로 표시되고 버전이 2023년에 멈춰 있다면 오리지널이며,mihomo또는Clash Meta로 표시되고 버전이 v1.18 이상이라면 커뮤니티 메인 라인입니다. - 프로토콜 지원 목록을 확인합니다. Hysteria2, VLESS, TUIC 옵션이 있으면 mihomo이고, SS/SSR/VMess/Trojan만 있으면 오리지널입니다.
- TUN 설정 항목을 확인합니다. stack, auto-route, dns-hijack 필드가 있으면 mihomo의 오픈소스 TUN이고, 세부 항목 없이 TUN 스위치만 하나 있다면 대부분 Premium의 비공개 구현입니다.
커널을 잘못 고르면 나타나는 증상은 전형적입니다. 구독을 불러왔는데 노드가 대량으로 빠져 있거나, TUN을 켰는데 작동하지 않거나, 규칙 매칭 결과가 가이드 내용과 맞지 않습니다. 이 세 가지 증상이 보이면 먼저 커널 계보를 확인한 뒤 설정을 점검하세요.