먼저 코어, GUI 클라이언트, 구독 설정을 구분하세요
‘Clash 안드로이드’를 검색하면 Clash Meta, mihomo, FlClash, Clash Verge Rev가 함께 검색되는 경우가 많습니다. 이 이름들은 같은 층위가 아닙니다. 연결을 처리하는 코어도 있고, 버튼과 설정 화면을 제공하는 클라이언트도 있으며, 과거에 사용된 포크 이름도 있습니다. 이들을 같은 프로그램의 스킨 정도로 여기면 설치 파일을 잘못 고르거나 설정 호환성을 오해하기 쉽습니다.
| 구분 | 역할 | 대표 이름 또는 항목 |
|---|---|---|
| 프록시 코어 | 설정 파일을 해석하고, 규칙을 실행하며, DNS를 처리하고, 아웃바운드 연결을 설정합니다 | Clash、Clash Meta、mihomo |
| GUI 클라이언트 | 설정을 설치·업데이트하고, 프록시 그룹을 표시하며, 시스템 네트워크 권한을 사용합니다 | FlClash、Clash Verge Rev、Clash Meta for Android |
| 설정 및 구독 | 노드 매개변수, 프록시 그룹, 규칙 및 기타 실행 설정을 제공합니다 | YAML 설정, 원격 설정 URL, 규칙 모음 |
휴대폰 사용자는 보통 코어 실행 파일을 직접 실행하는 대신 GUI 클라이언트를 설치합니다. 클라이언트에 코어가 포함되어 있을 수도 있고 코어를 따로 업데이트할 수도 있습니다. 따라서 앱 버전과 코어 버전은 별개의 정보입니다. 클라이언트 이름만으로 지원 프로토콜이나 최신 설정 필드를 알 수는 없습니다.
Clash에서 Meta, mihomo로 이어지는 발전 과정
Clash 원본: 규칙 기반 프록시와 설정 구조의 출발점
Dreamacro가 개발한 Clash는 Go로 작성된 규칙 기반 프록시 코어입니다. proxies, proxy-groups, rules 등의 설정 구조는 이후 여러 클라이언트와 구독 서비스가 이어받은 기반입니다. 코어 자체는 안드로이드 앱이 아니며, 휴대폰에서 구독을 관리하는 화면도 제공하지 않습니다.
오픈소스 Clash 원본과 과거의 Clash Premium도 구분해야 합니다. Premium은 별도의 바이너리로 배포되었으며 일부 추가 기능은 오픈소스 원본 코어에 포함되지 않았습니다. 오래된 가이드에 ‘Premium 필요’라고 적혀 있어도 이름에 Clash가 들어간 모든 클라이언트에 그대로 적용할 수는 없습니다. 해당 가이드가 어떤 코어와 시기를 가리키는지 확인해야 합니다.
Clash Meta: 호환성을 바탕으로 기능 확장
MetaCubeX 커뮤니티가 관리하는 Clash Meta는 Clash에서 파생되어 프로토콜 지원, DNS, 규칙, TUN 등의 기능을 계속 발전시켰습니다. 익숙한 설정 구조를 상당 부분 유지하면서 원본 코어가 인식하지 못하는 매개변수도 추가했습니다. 따라서 ‘Clash 형식’이라는 말은 전체적인 구조가 비슷하다는 뜻일 뿐, 과거의 모든 코어에서 불러올 수 있다는 보장은 아닙니다.
예를 들어 구독 제공자가 ‘Meta / mihomo’를 명시했다면 type: hysteria2 같은 최신 아웃바운드 유형을 사용할 수 있습니다. 이런 설정을 구형 코어에 넣으면 프록시 유형을 지원하지 않는다는 오류가 해석 단계에서 나타날 수 있습니다. 이 경우 노드 순서를 바꿔도 해결되지 않습니다. 먼저 대상 클라이언트에 실제로 포함된 코어와 버전을 확인하세요.
2023년 전후의 유지보수 변화와 이후의 명칭
2023년 11월 전후로 원본 Clash와 관련 클라이언트 여러 개의 공개 유지보수 상태가 달라졌습니다. 원본 저장소의 이용 가능 여부, 데스크톱 클라이언트의 보관 처리, 안드로이드 프로젝트의 유지보수 중단은 각각 별개의 사건입니다. ‘모든 Clash 프로그램이 동시에 중단됐다’고 묶어서 이해하면 안 됩니다. 이미 설치한 프로그램은 계속 작동할 수 있지만, 이후 운영체제 대응과 신규 프로토콜 지원은 따로 확인해야 합니다.
2024년 초 Meta 포크는 mihomo라는 이름을 사용하기 시작했고, 프로젝트 저장소는 MetaCubeX/mihomo입니다. 이는 같은 발전 흐름 안에서 이름을 바꾸고 계속 개발한 것이지, 서로 관계없는 두 코어가 아닙니다. 설정 안내, 구형 앱 제목, 로그에는 여전히 Meta라는 표현이 남아 있을 수 있어 두 이름이 같은 문제 해결 과정에서 함께 등장하기도 합니다.
- Clash라고 되어 있다면: 생태계 전체를 가리키는지 Dreamacro의 원본 코어를 뜻하는지 먼저 확인하세요.
- Meta라고 되어 있다면: 보통 Meta 포크나 이 이름을 계속 사용하는 클라이언트를 뜻합니다. 구체적인 프로젝트를 확인해야 합니다.
- mihomo라고 되어 있다면: 현재 이 이름으로 개발 중인 코어 프로젝트를 뜻하며, 특정 휴대폰 앱을 가리키는 것은 아닙니다.
주요 GUI 클라이언트의 기반 코어
아래 내용은 프로젝트에서 일반적으로 사용하는 기술 구성을 바탕으로 계보를 이해할 수 있도록 정리한 것입니다. 공식 배포 안내를 대체하지는 않습니다. 제3자 재패키징, 개발 버전, 구버전은 구성이 다를 수 있습니다. 설치 전에는 프로젝트 배포 페이지와 앱의 ‘정보’ 화면을 확인하세요.
| 프로젝트 | 코어와의 관계 | 주요 플랫폼 및 구분 기준 |
|---|---|---|
| FlClash | mihomo 기반 GUI 클라이언트 | Android, Windows, macOS, Linux 지원; Flutter로 인터페이스를 구성 |
| Clash Meta for Android | Clash for Android의 인터페이스 흐름을 이어받아 Meta / mihomo 코어를 연결 | Android; 구버전과 비슷한 인터페이스만으로 코어를 판단할 수 없음 |
| Clash Verge Rev | mihomo 기반 데스크톱 클라이언트 | Windows, macOS, Linux 지원; Clash Verge에서 이어진 후속 포크 프로젝트 |
| Clash Verge 원본 | 과거 배포판에서 Clash / Clash Meta 코어 선택을 제공 | 데스크톱 플랫폼; Rev와는 별개의 프로젝트이며 원본 프로젝트는 보관 처리됨 |
| Clash for Android 원본 | 과거 배포판은 Clash 계열 코어를 사용했으며, 구체적인 배포판별 확인이 필요 | Android; 원본 프로젝트는 유지보수가 중단되어 현재 mihomo 클라이언트로 볼 수 없음 |
FlClash와 Clash Verge Rev는 휴대폰용·컴퓨터용 버전 번호가 아닙니다
두 클라이언트 모두 mihomo를 사용할 수 있지만, 인터페이스와 설정 저장 방식, 시스템 프록시 설정, 업데이트 방식은 각 클라이언트가 구현합니다. 데스크톱의 ‘시스템 프록시’ 스위치 위치를 안드로이드에서 찾으려 해도 해당 메뉴가 없는 경우가 많습니다. 안드로이드는 보통 시스템 VPN 인터페이스로 트래픽을 처리하고, 데스크톱은 시스템 프록시와 TUN을 각각 제공할 수 있습니다.
이름이 비슷한 안드로이드 앱이라고 덮어쓸 수 있는 것은 아닙니다
Clash for Android와 Clash Meta for Android는 이름이 비슷하지만 패키지 이름, 서명, 데이터 디렉터리가 다를 수 있습니다. 기존 앱을 덮어 설치할 수 있는지는 아이콘이나 앱 제목이 아니라 패키지 이름과 서명 등의 조건에 따라 결정됩니다. 클라이언트를 바꾸기 전에 구독 URL, 로컬 오버라이드, 프록시 그룹 선택 기록을 저장하세요. 새 앱이 기존 앱의 데이터를 읽을 것이라고 가정하지 마세요.
iOS는 앱과 설정 형식을 별도로 확인해야 합니다
위 표에 있는 FlClash, Clash Meta for Android, Clash Verge Rev를 근거로 iOS용 버전도 설치할 수 있다고 판단하면 안 됩니다. iOS 클라이언트는 Network Extension 같은 시스템 기능에 맞춰야 하며 설치 경로도 안드로이드와 다릅니다. 어떤 iOS 앱이 일부 Clash 설정을 가져올 수 있다고 해서 mihomo를 실행하거나 mihomo YAML 필드를 모두 지원한다는 뜻은 아닙니다.
iPhone용 앱을 고를 때는 지원 프로토콜, 구독 형식, 규칙 형식, 설치 방법을 먼저 확인한 뒤 기존 구독을 재사용할 수 있는지 살펴보세요. Android APK는 iOS에 설치할 수 없고 데스크톱 코어 실행 파일도 iPhone용 설치 파일이 아닙니다. 운영체제별 비교는 클라이언트 선택 가이드에서 확인할 수 있습니다.
같은 구독인데 가져오기 결과가 다른 이유
전체 설정과 노드 목록은 다릅니다
전체 YAML 설정에는 노드, 프록시 그룹, DNS, 규칙, 수신 포트가 함께 들어갈 수 있습니다. 노드만 포함된 구독은 나머지 항목을 클라이언트 템플릿으로 보완해야 할 수 있습니다. 한 앱은 프록시 그룹을 자동 생성하고 다른 앱은 완성된 설정 파일을 요구한다면, 같은 코어를 사용해도 입력 형식이 완전히 같지 않을 수 있습니다.
구독 서비스는 내보내기 옵션이나 요청 특성에 따라 서로 다른 내용을 반환하기도 합니다. 비교할 때는 ‘Clash’, ‘Clash Meta / mihomo’, 클라이언트 전용 형식 중 무엇을 선택했는지 확인하고 가져온 뒤의 실제 설정도 살펴보세요. 구독 URL에는 접근 토큰이 포함되는 경우가 많으므로 문제 해결용 스크린샷을 공유할 때 토큰과 노드 인증 정보를 가려야 합니다.
설정이 해석된다고 모든 기능이 제대로 활성화된 것은 아닙니다
아래는 설정 구조를 살펴보기 위한 예시이며 구독을 그대로 대체할 수 있는 완성 설정은 아닙니다. 7890은 예시 혼합 프록시 포트, 9090은 예시 제어 인터페이스 포트입니다. 클라이언트가 이 설정을 덮어쓰거나 다른 포트를 사용할 수 있습니다.
mixed-port: 7890
allow-lan: false
mode: rule
external-controller: 127.0.0.1:9090
rules:
- DOMAIN-SUFFIX,example.com,DIRECT
- MATCH,DIRECT
mixed-port는 로컬 HTTP / SOCKS 프록시 요청을 받고, external-controller는 관리 인터페이스에 사용됩니다. 두 설정의 용도는 다릅니다. 휴대폰 앱이 VPN 인터페이스로 기기의 트래픽을 처리한다면 보통 각 앱에 7890을 직접 입력할 필요가 없습니다. 연결 문제를 해결하려고 제어 인터페이스를 아무렇게나 전체 로컬 네트워크에 노출해서도 안 됩니다.
모바일 클라이언트 선택: 유지보수·호환성·시스템 연동 확인
클라이언트를 고를 때는 휴대폰 운영체제, 구독 요구 사항, 사용 습관 순으로 살펴보세요. 앱 이름에 ‘Clash’가 있는지만으로는 충분하지 않습니다. 최신 프로토콜이 필요한 설정이라면 아이콘 유사도보다 코어 버전 정보가 더 중요합니다. 장시간 백그라운드에서 실행할 기기라면 운영체제 호환성과 로그 확인 기능도 살펴보세요.
- 플랫폼과 설치 경로를 확인하세요. 안드로이드는 APK의 기기 아키텍처를 먼저 확인하고, iOS는 현재 사용할 수 있는 설치 방법을 확인하세요. 데스크톱 클라이언트 다운로드 페이지를 모바일 설치 경로로 착각하지 마세요.
- 앱 버전과 코어 버전을 확인하세요. 앱의 ‘정보’, ‘코어’ 화면 또는 시작 로그에서 두 버전을 따로 기록하세요. 메뉴 이름은 클라이언트마다 다르므로 모든 앱에 공통으로 적용되는 경로는 없습니다.
- 구독 형식을 확인하세요. 제공자가 Meta / mihomo를 명시했다면 안내에서 해당 코어를 사용한다고 밝힌 클라이언트를 우선 선택하고 필요한 기능의 최소 버전도 확인하세요.
- 자주 쓰는 메뉴를 확인하세요. 구독 업데이트, 프록시 그룹 선택, 실행 로그, 로컬 오버라이드를 쉽게 찾을 수 있어야 합니다. 노드 전환만 할 줄 알아서는 이후 문제를 해결하기 어렵습니다.
- 시스템 연동을 확인하세요. 안드로이드는 VPN 권한을 확인하고 필요에 따라 배터리 최적화, 백그라운드 활동, 자동 시작 설정을 조정하세요. 설정 이름은 휴대폰 제조사에 따라 다릅니다.
업데이트가 잦다고 모든 버전으로 바로 바꿔야 하는 것은 아닙니다. 업그레이드 전에 릴리스 노트를 읽고 복구할 수 있도록 설정을 저장하세요. 특히 DNS, TUN, 규칙 문법, 설정 마이그레이션의 변경 사항에 유의해야 합니다. 유지보수가 오래 중단된 클라이언트가 당장은 작동하더라도 새 운영체제 대응과 보안 수정이 부족할 수 있습니다.
클라이언트 변경 전 마이그레이션 체크리스트
같은 mihomo 생태계라면 일부 설정의 이전이 쉬워질 수는 있지만 앱 데이터가 그대로 호환된다는 보장은 없습니다. 새 클라이언트에서 먼저 독립적으로 검증한 뒤 기존 클라이언트의 데이터를 삭제하는 편이 안전합니다. 시스템 VPN 인터페이스가 필요한 앱 두 개가 동시에 연결을 차지하게 하지 마세요.
- 입력 정보를 저장하세요. 구독 출처와 업데이트 방법, 로컬 규칙, 오버라이드 파일, 직접 지정한 DNS 설정을 기록하세요. 원격 구독만 복사하면 로컬에서 수정한 내용은 대개 옮겨지지 않습니다.
- 먼저 기본 설정을 유지하세요. 새 클라이언트에 설정을 가져온 뒤 알 수 없는 필드, 미지원 프록시 유형, 존재하지 않는 프록시 그룹 참조 등의 오류가 로그에 나타나는지 확인하세요.
- 트래픽 분기를 확인하세요. 규칙 모드로 전환하고 프록시 그룹이 예상한 아웃바운드를 가리키는지 확인하세요. 규칙은 위에서 아래 순서로 적용되므로 마지막
MATCH의 대상은 특히 주의해서 확인해야 합니다. - 네트워크 변경을 시험하세요. Wi-Fi와 모바일 데이터를 각각 테스트하고 네트워크 전환이나 화면 잠금 후 연결이 복구되는지 살펴보세요. 한 번 연결됐다는 사실은 그 시점의 연결 경로가 작동했다는 뜻일 뿐입니다.
- 그다음 오버라이드를 옮기세요. 로컬 변경 사항을 하나씩 복원하고 매번 설정 유형 하나만 바꾸세요. DNS, 규칙, TUN 매개변수를 한꺼번에 바꾸면 문제 원인을 찾기 어렵습니다.
‘구형 앱에서는 되는데 새 앱에서는 안 된다’면 mihomo와 Clash 설정이 완전히 호환되지 않는다고 단정하지 말고 설정 해석, 프록시 그룹 선택, DNS 로그, VPN 권한, 백그라운드 제한을 순서대로 확인하세요. DNS와 규칙 필드는 기술 문서의 DNS 안내에서 더 확인할 수 있습니다.
프로젝트 이름 관련 자주 묻는 질문
Clash Meta와 mihomo를 각각 설치해야 하나요?
보통은 그럴 필요가 없습니다. 두 이름은 같은 포크의 발전 흐름을 가리키며, 휴대폰 사용자는 해당 코어가 포함된 클라이언트를 설치합니다. 서로 다른 클라이언트를 비교할 때만 따로 설치하면 됩니다. 일반적인 사용에서는 VPN 클라이언트 여러 개를 동시에 실행하지 마세요.
Clash Verge Rev를 안드로이드 Clash로 사용할 수 있나요?
Clash Verge Rev는 Windows, macOS, Linux용 데스크톱 프로젝트입니다. 안드로이드에서는 FlClash나 해당 플랫폼용 배포판이 있는 프로젝트처럼 Android 버전을 명시적으로 제공하는 클라이언트를 선택하세요. 같은 코어를 쓴다고 설치 파일을 다른 운영체제에서 사용할 수 있는 것은 아닙니다.
구독에 Clash라고 쓰여 있으면 모든 클라이언트와 호환되나요?
꼭 그렇지는 않습니다. 전체 설정인지 노드 목록인지, Meta / mihomo 확장이 포함됐는지, 클라이언트 내장 코어가 어떤 버전인지도 확인해야 합니다. 가져오기 오류가 나면 같은 구독 URL을 계속 바꾸기보다 인증 정보를 제거한 오류 메시지를 보관하는 편이 문제 해결에 도움이 됩니다.
mihomo 클라이언트를 바꾸면 기존 규칙을 유지할 수 있나요?
코어가 지원하는 규칙은 보통 옮길 수 있지만 클라이언트의 오버라이드 형식과 병합 순서는 다를 수 있습니다. 마이그레이션 후 규칙이 실제 실행 설정에 반영됐는지, 참조하는 프록시 그룹 이름이 여전히 존재하는지 확인하세요.
이 계보를 이해하면 확인 순서가 명확해집니다. 먼저 운영체제와 클라이언트를 확인하고, 다음으로 코어와 버전을 확인한 뒤, 마지막으로 구독과 시스템 권한을 점검하세요. Clash, Meta, mihomo의 관계를 알면 설정이 비슷한 이유를 이해할 수 있습니다. 실제 모바일 설치와 업데이트, 백그라운드 실행 경험은 클라이언트마다 다르게 구현됩니다.