세 개의 이름, 하나의 줄기: Clash 커널 발전 타임라인
Clash 생태계를 처음 접할 때 가장 헷갈리는 건 설정이 아니라 이름입니다. 튜토리얼에는 Clash, 다운로드 페이지에는 Clash Meta, 최신 버전 클라이언트 화면에는 또 mihomo라는 이름이 등장합니다. 이 셋은 경쟁 관계의 세 프로젝트가 아니라 같은 커널이 시기별로 불린 이름일 뿐입니다. 타임라인부터 정리하면 이후의 선택은 자연스럽게 풀립니다.
| 시기 | 명칭 | 유지보수 주체 | 상태 |
|---|---|---|---|
| 2018 – 2023 | Clash(오리지널) | Dreamacro | 유지보수 중단 |
| 2022 – 2024 | Clash Meta | MetaCubeX 팀 | 이름 변경됨 |
| 2024년~현재 | mihomo | MetaCubeX 팀 | 유지보수 중 |
한 줄로 정리하면: 오리지널 Clash는 공통 조상, Clash Meta는 계승자, mihomo는 Meta의 새 이름입니다. 지금 새로 설치하는 클라이언트는 거의 전부 mihomo 커널을 사용합니다.
오리지널 Clash: 규칙 기반 프록시의 창시자, 유지보수 중단
오리지널 Clash는 Dreamacro가 Go 언어로 작성해 2018년에 공개했습니다. 오늘날까지 이어지는 작동 방식을 이 시점에 확립했습니다: YAML 설정 파일로 노드, 정책 그룹, 분기 규칙을 정의하고, 인바운드 트래픽을 규칙에 따라 다이렉트/프록시/차단으로 분류합니다. 믹스드 포트, 외부 컨트롤러 API, 도메인·IP 기반 분기 같은 설계는 모두 오리지널 버전에서 시작됐습니다.
오리지널 버전은 두 갈래로 나뉩니다: 오픈소스 코어와 클로즈드소스 Clash Premium. Premium은 TUN 모드와 스크립트 기능을 독점 제공했고, Clash for Windows, ClashX 같은 초기 클라이언트가 바로 이 Premium을 내장했습니다.
2023년 11월, 개발자가 저장소를 아카이브하고 릴리스 페이지를 비우면서 오리지널 버전은 공식적으로 유지보수가 중단됐습니다. 이는 곧 새 프로토콜이 추가되지 않고, 기존 구현의 결함도 수정되지 않으며, 이를 기반으로 한 클라이언트들도 차례로 업데이트를 멈춘다는 뜻입니다. 지금도 오리지널 커널 클라이언트를 설치하면 대부분 상황에서 동작은 하지만, 프로토콜 지원 범위는 2023년 시점에 멈춰 있고 더 이상 변화가 없습니다.
Clash Meta: 뒤를 이은 강화 분기
오리지널 버전이 중단되기 전, MetaCubeX 팀은 이미 이를 포크해 Clash Meta 개발을 이어가고 있었습니다. 오리지널이 중단된 후 Meta는 자연스럽게 사실상의 메인 라인이 되었습니다. 오리지널과 비교했을 때 핵심 추가 사항은 크게 네 가지입니다:
- 프로토콜: VLESS(XTLS Vision, Reality 포함), Hysteria와 Hysteria2, TUIC, WireGuard, ShadowTLS, AnyTLS를 추가해 오리지널 이후 등장한 주요 프로토콜을 대부분 지원합니다.
- TUN 모드: 기본 내장되어 무료로 개방되며, 클로즈드소스 Premium에 의존하지 않고 시스템 전체 트래픽을 제어할 수 있습니다.
- 규칙:
rule-providers와proxy-providers를 모든 사용자에게 개방했고, 도메인 스니핑(sniffer)과 GEOSITE 규칙셋을 지원합니다. - 사용성:
unified-delay로 지연 측정 기준을 통일하고,tcp-concurrent로 동시 연결을 지원하며,find-process-mode로 프로세스 기반 분기가 가능합니다.
설정 파일 측면에서 Meta는 대체로 오리지널의 상위 집합입니다. 오리지널용으로 작성한 설정은 대부분 그대로 동작하지만, 반대로 Meta 전용 필드가 포함된 설정을 오리지널 코어에 넣으면 실행 시 바로 오류가 발생합니다.
mihomo: Clash Meta의 현재 이름
2024년, Clash Meta는 mihomo로 이름을 바꾸고 저장소를 MetaCubeX/mihomo로 이전했으며, 버전 번호는 기존 흐름 그대로 이어졌습니다. 이름만 바뀌었을 뿐 코드는 그대로입니다: 동일한 유지보수 팀, 동일한 설정 문법, 동일한 릴리스 주기이며, 문서 사이트 wiki.metacubex.one에서도 신구 이름을 함께 다룹니다.
실제 사용 시 이름이 혼용되는 경우가 있습니다. 구버전 로그에는 Clash Meta로, 신버전 로그에는 Mihomo로 출력되며, 클라이언트 화면에도 Meta 커널로 표기되는 곳과 mihomo 커널로 표기되는 곳이 섞여 있는데 모두 동일한 프로그램을 가리킵니다. mihomo v1.18, v1.19 같은 버전 번호를 발견하면 이 계보의 현재 버전임을 확인할 수 있습니다.
클라이언트별 내장 커널 대조표
클라이언트는 껍데기이고, 실제로 트래픽을 처리하는 프로세스는 커널입니다. 주요 클라이언트가 사용하는 커널은 다음과 같습니다:
| 클라이언트 | 내장 커널 | 유지보수 상태 |
|---|---|---|
| Clash Verge Rev | mihomo(구 Clash Meta) | 유지보수 중 |
| FlClash | mihomo | 유지보수 중 |
| mihomo party | mihomo | 유지보수 중 |
| Clash for Windows | Clash Premium(오리지널) | 유지보수 중단 |
| ClashX 계열 | 오리지널 또는 Meta | 유지보수 중단 |
| Clash Meta for Android | Clash Meta | 유지보수 중단 |
새로 설치할 클라이언트를 고를 때는 먼저 커널을 확인하세요: mihomo 기반 클라이언트는 프로토콜 발전을 계속 따라갑니다. 반면 오리지널 커널 기반 클라이언트는 기능이 중단 시점에 멈춰 있습니다. 클라이언트별 상세 비교는 본 사이트의 클라이언트 비교 페이지를 참고하세요.
현재 실행 중인 커널 버전 확인 방법
Clash Verge Rev를 예로 들면, 확인 방법은 세 가지입니다:
- 설정 페이지: 「설정」의 「Clash 커널」 항목에서 현재 커널 종류와 버전 번호를 확인할 수 있으며, 정식 버전과 Alpha 채널 간 전환도 가능합니다.
- 로그 페이지: 커널이 시작될 때 이름과 버전이 로그 첫 줄에 기록되며, 로그 레벨을 Info로 설정하면 확인할 수 있습니다.
- 외부 컨트롤러: 커널이 실행 중일 때 버전 확인 API를 직접 호출할 수 있습니다.
$ curl http://127.0.0.1:9097/version
{"premium":true,"version":"Mihomo Meta v1.18.7"}
9097은 Clash Verge Rev의 기본 외부 컨트롤러 포트입니다. 설정에서 포트를 변경했다면 실제 값을 사용하세요. 반환된 version 필드가 Mihomo로 시작한다면 mihomo 계보에서 실행 중이라는 뜻입니다.
커널 전환 전 설정 파일 호환성 점검
오래된 설정 파일을 가지고 오리지널 커널에서 mihomo로 마이그레이션하려면 다음 세 가지를 확인하세요:
- 오리지널 필드는 mihomo에서 거의 전부 호환됩니다:
port,mixed-port,proxies,proxy-groups,rules는 그대로 사용 가능합니다. - mihomo 전용 필드는 오리지널용 설정에 넣지 마세요:
unified-delay,tcp-concurrent,sniffer,tun설정 블록,geodata-mode등은 오리지널 버전이 알 수 없는 필드로 인식해 바로 종료됩니다. - 규칙셋 작성 방식은 mihomo 문서를 기준으로 하세요:
RULE-SET,GEOSITE는 rule-providers와 geodata에 의존하며, 오리지널 오픈소스 코어는 이를 지원하지 않습니다.
구독과 커널은 짝을 맞춰야 합니다
현재 대부분의 구독 서비스는 mihomo 문법 기준으로 설정을 제공합니다. 이를 오리지널 커널 클라이언트에 넣으면 실행 오류나 노드 전체 사용 불가 같은 문제가 흔히 발생합니다. 새로 설치할 때는 바로 mihomo 커널을 선택하는 것이 좋습니다. 세부 필드는 본 사이트의 설정 참고 페이지에서 항목별로 확인할 수 있습니다.
정리하면 이렇습니다: 오리지널 Clash는 역사, Clash Meta는 옛 이름, mihomo는 현재진행형입니다. 클라이언트를 고를 때는 mihomo 커널을 확인하세요. 설정 문법, 프로토콜 지원, 문서 예시가 모두 이를 중심으로 돌아갑니다.