Clash 오픈소스 생태계 한눈에 보기: mihomo 코어와 FlClash·Clash Verge Rev 등 클라이언트 비교
원조 Clash부터 Clash Meta의 mihomo 개명까지 살펴보고, 코어와 GUI 클라이언트의 차이 및 FlClash·Clash Verge Rev의 지원 플랫폼과 적합한 사용자를 비교합니다.
먼저 코어·클라이언트·설정·서비스를 구분하세요
Clash 다운로드를 검색하면 mihomo, FlClash, Clash Verge Rev, Clash for Windows가 함께 검색될 때가 많습니다. 하지만 이 이름들은 같은 역할을 가리키지 않습니다. 선택하기 전에 프록시를 실행하는 코어가 필요한지, 구독 관리와 시스템 설정을 지원하는 클라이언트가 필요한지부터 확인하면 잘못 다운로드하거나 마이그레이션 과정에서 혼동하는 일을 줄일 수 있습니다.
| 구분 | 예시 | 주요 역할 |
|---|---|---|
| 프록시 코어 | mihomo | 프록시 포트를 열고 DNS를 처리하며, 규칙에 따라 트래픽을 분류하고 외부 연결을 수립합니다. |
| GUI 클라이언트 | FlClash、Clash Verge Rev | 설정을 가져오고 코어 프로세스를 관리하며, 로그를 표시하고 시스템 프록시와 TUN을 설정합니다. |
| 설정 및 규칙 | YAML 설정, rule-providers | 프록시 서버, 정책 그룹, DNS 동작 및 트래픽 라우팅 방식을 정의합니다. |
| 연결 서비스 | 구독 제공업체의 프록시 서버 | 원격 연결 주소와 인증 정보, 사용할 수 있는 출구를 제공합니다. |
FlClash 설치가 완료됐다고 해서 바로 원격 연결을 사용할 수 있는 것은 아닙니다. 보통 클라이언트에 유효한 설정을 가져오고 정책 그룹에서 출구를 선택해야 합니다. 반대로 구독이 유효하더라도 오랫동안 업데이트하지 않은 구형 코어가 모든 프로토콜과 필드를 지원한다고 보장할 수는 없습니다.
원조 Clash, Clash Meta, mihomo의 관계
원조 Clash는 생태계의 출발점이지, 모든 클라이언트를 통칭하는 이름이 아닙니다
원조 Clash는 Go로 만든 규칙 기반 프록시 프로젝트로, 널리 쓰이는 YAML 설정과 규칙 표현 방식을 정립했습니다. 역사적으로 Clash Premium도 존재했으며, 오픈소스 버전과 기능 범위가 완전히 같지는 않았습니다. 오래된 튜토리얼의 TUN, 규칙 세트, 스크립트 관련 설명은 당시 사용한 코어를 확인해야 합니다. 이를 모든 Clash 프로젝트의 공통 기능으로 보면 안 됩니다.
2023년 11월 전후로 원조 Clash와 일부 관련 클라이언트의 공개 프로젝트가 유지보수를 중단하거나 저장소가 삭제되는 등의 변화가 있었습니다. 지금도 구형 설치 파일과 미러를 찾을 수 있지만, ‘실행 가능’하다는 것과 ‘새 프로토콜 및 운영체제에 맞춰 계속 업데이트된다’는 것은 별개의 문제입니다. 새 설정을 적용할 때는 먼저 해당 프로젝트와 유지보수 상태를 확인하세요.
Clash Meta는 이후 mihomo라는 이름을 사용하게 됐습니다
Clash Meta는 Clash 생태계에서 발전한 포크이며, 이후 프로젝트 이름이 mihomo로 바뀌었습니다. 이전 문서나 구형 설정 안내, 일부 화면에는 여전히 Meta라는 이름이 남아 있을 수 있습니다. 따라서 ‘Meta 코어’라는 표현을 보면 실제로 mihomo의 어떤 버전을 가리키는지 확인하는 것이 좋습니다.
mihomo는 프로토콜 지원과 DNS, 규칙, TUN 기능 등을 계속 확장하고 있지만, 원조 프로젝트에서 파일 이름만 바꾼 동일한 프로그램은 아닙니다. 특정 필드의 지원 여부는 실제로 실행 중인 mihomo 버전과 해당 버전의 문서를 기준으로 확인해야 합니다. 클라이언트가 YAML을 지원한다는 이유만으로 mihomo의 모든 확장 문법을 처리할 수 있다고 단정해서도 안 됩니다.
- 오래된 튜토리얼에 Clash라고 적혀 있다면: 설정 생태계를 통칭하는지, 원조 코어를 가리키는지 먼저 확인하세요.
- 구독에 Meta라고 표시되어 있다면: 실제 설정에서 사용하는 프로토콜과 규칙, DNS 필드를 확인하세요.
- 설치 파일에 FlClash라고 적혀 있다면: 그래픽 클라이언트의 이름입니다. 코어 버전은 별도로 확인해야 합니다.
FlClash와 Clash Verge Rev: 지원 플랫폼과 사용 환경 비교
FlClash와 Clash Verge Rev는 모두 그래픽 클라이언트이며 구독 서비스는 아닙니다. 먼저 운영체제에 맞는 프로젝트를 추린 뒤, 설정 관리와 시스템 연동 기능을 비교하세요. 아래 표는 프로젝트가 지원하는 플랫폼을 기준으로 정리했으며, 실제 다운로드 가능한 아키텍처와 설치 파일 형식은 각 릴리스에서 확인해야 합니다.
| 프로젝트 | 기술 및 코어 | 플랫폼 및 적합한 사용자 |
|---|---|---|
| FlClash | Flutter 기반 GUI, mihomo 코어 사용. | Windows, macOS, Linux, Android 지원. 데스크톱과 Android에서 비슷한 방식으로 사용하려는 경우 적합합니다. |
| Clash Verge Rev | Tauri 기반 데스크톱 클라이언트, mihomo 코어 사용. | Windows, macOS, Linux 지원. 데스크톱에서 설정을 관리하고 시스템과 연동하는 기능을 중시하는 사용자에게 적합합니다. |
| Clash for Android | 과거 Android 클라이언트로, 현재의 mihomo 클라이언트와 같은 것으로 볼 수 없습니다. | Android 지원. 원 프로젝트의 유지보수가 중단됐으며, 기존 설정을 옮길 때 프로토콜 호환성을 확인해야 합니다. |
| Clash for Windows | 과거의 그래픽 클라이언트로, 이름이 코어 이름을 뜻하지는 않습니다. | 과거 Windows, macOS, Linux 버전을 제공했으며 원 프로젝트의 유지보수가 중단됐습니다. |
Android와 iOS는 이름만 보고 같은 클라이언트로 보면 안 됩니다
FlClash는 Android 버전을 제공하지만, 그렇다고 iOS용 공식 설치 파일도 있다고 볼 수는 없습니다. Clash Verge Rev 역시 Android 클라이언트가 아닙니다. iOS 사용자는 해당 운영체제에 맞는 다른 클라이언트를 선택하고 구독 형식과 규칙 문법, 네트워크 확장 기능을 확인해야 합니다. Android APK나 데스크톱 설치 파일을 iOS에서 사용할 수는 없습니다.
같은 플랫폼이어도 프로세서 아키텍처를 확인하세요
macOS에서는 Apple Silicon과 Intel 기기에 맞춰 arm64 또는 x64 설치 파일을 각각 확인해야 합니다. Android는 보통 arm64-v8a와 armeabi-v7a를 구분합니다. Linux에서는 배포판에 맞는 패키지 형식도 확인하세요. 다운로드 전에 시스템의 기기 정보에서 아키텍처를 확인한 다음 다운로드 페이지에서 맞는 클라이언트를 선택할 수 있습니다.
인터페이스 기술만으로 연결 속도나 안정성을 판단할 수는 없습니다. 원격 서비스 품질과 네트워크 경로, 사용 프로토콜, DNS, 규칙 매칭이 결과에 더 직접적인 영향을 주는 경우가 많습니다. 클라이언트를 비교할 때는 서로 다른 구독의 결과를 비교하지 말고 같은 설정과 네트워크 환경을 사용하세요.
같은 mihomo 코어를 쓰는데 가져온 결과가 다른 이유
구독 주소가 프록시 목록만 반환하는 것은 아닙니다. 완전한 YAML을 반환할 수도 있고, 클라이언트가 해석해야 하는 노드 정보를 반환하거나 요청 매개변수에 따라 서로 다른 형식을 제공할 수도 있습니다. 먼저 ‘구독 다운로드’, ‘설정 파싱’, ‘연결 수립’을 각각 구분한 뒤 어느 단계에서 차이가 생기는지 확인하세요.
- 코어 버전이 다름: 클라이언트마다 포함된 mihomo 버전이 다를 수 있습니다. 새 필드가 구형 코어에서 오류를 일으키거나 예상대로 작동하지 않을 수 있습니다.
- 설정 처리 방식이 다름: 클라이언트가 오버라이드, 병합, 구독 처리 기능을 통해 DNS와 포트, 규칙, 정책 그룹을 수정할 수 있습니다. 원본 구독이 같아도 최종 설정은 다를 수 있습니다.
- 정책 그룹 선택이 다름: 규칙이 같은 이름의 정책 그룹을 가리켜도 클라이언트에 저장된 실제 선택은 다를 수 있습니다. 현재 출구를 확인하려면 정책 그룹을 펼쳐 보세요.
- 실행 환경이 다름: 시스템 프록시와 TUN 권한, 방화벽, 실행 중인 VPN, DNS 캐시가 모두 트래픽 경로에 영향을 줄 수 있습니다.
간단한 규칙으로 설정 간 의존성 이해하기
아래는 규칙 예시일 뿐, 단독으로 실행할 수 있는 완전한 구독 설정이 아닙니다. 사용하려면 PROXY라는 정책 그룹이 미리 정의되어 있고, 해당 그룹에 사용 가능한 출구가 설정되어 있어야 합니다. 규칙은 위에서 아래 순서로 확인하며, 일치하는 규칙을 찾으면 이후 규칙은 더 이상 검사하지 않습니다.
rules:
- DOMAIN-SUFFIX,example.org,DIRECT
- IP-CIDR,192.168.0.0/16,DIRECT,no-resolve
- MATCH,PROXY
여기서 example.org는 도메인 접미사 규칙을 보여 주기 위한 예시입니다. no-resolve는 이 IP 규칙을 위해 도메인 조회를 별도로 수행하지 않는다는 뜻이지, 클라이언트 전체의 DNS를 끈다는 뜻은 아닙니다. 가져온 뒤 PROXY를 찾을 수 없다는 오류가 표시되면 클라이언트를 반복해서 재설치하지 말고 정책 그룹 정의를 확인하세요.
시스템 프록시·혼합 포트·TUN의 역할
클라이언트는 시스템 설정을 조정하고, 코어는 들어오는 연결을 실제로 처리합니다. 예를 들어 혼합 포트 7890을 사용하면 mihomo가 같은 포트에서 HTTP와 SOCKS5 프록시 요청을 받을 수 있습니다. 클라이언트에서 시스템 프록시를 켜면 운영체제의 프록시 설정이 해당 진입점을 가리키도록 변경됩니다. 포트 번호는 예시이며 실제 값은 현재 설정에 따라 다릅니다.
mixed-port: 7890
allow-lan: false
mode: rule
이 예시의 allow-lan: false는 같은 로컬 네트워크의 다른 기기가 해당 진입점을 통해 프록시에 접속하지 못하게 합니다. 기기 한 대에서만 사용한다면 연결 문제를 확인한다는 이유로 LAN 접근을 바로 허용할 필요는 없습니다. 또한 시스템 프록시를 켜도 모든 앱이 자동으로 프록시를 사용하는 것은 아닙니다. 시스템 프록시 설정을 읽지 않는 프로그램은 직접 인터넷에 연결할 수 있습니다.
TUN은 네트워크 트래픽을 처리하는 방식이지, 새로운 원격 노드가 아닙니다
TUN은 가상 네트워크 인터페이스를 통해 트래픽을 코어로 전달하며, 시스템 프록시를 따르지 않는 일부 프로그램에 사용할 수 있습니다. 데스크톱에서는 보통 관리자 권한이나 서비스 구성 요소, 운영체제의 승인이 필요합니다. Android에서는 대개 시스템 VPN 인터페이스를 통해 트래픽을 처리합니다. 두 환경의 권한 절차와 시스템 제한은 서로 다릅니다.
TUN을 켜도 만료된 구독이 복구되거나 올바른 DNS 및 라우팅 설정을 대신해 주지는 않습니다. 같은 기기의 다른 VPN이나 가상 네트워크 어댑터, 보안 소프트웨어와 충돌할 수도 있습니다. 활성화 후 로컬 프린터나 LAN 서비스, 도메인 접속에 문제가 생기면 모든 노드를 바로 바꾸지 말고 라우팅 예외와 DNS 처리를 확인하세요.
- 브라우저는 정상인데 특정 앱에서 문제가 생긴다면: 먼저 해당 앱이 시스템 프록시를 사용하는지 확인한 뒤 TUN 사용을 고려하세요.
- 두 클라이언트를 번갈아 테스트한다면:
7890포트를 동시에 사용하거나 시스템 프록시 설정을 반복해서 바꾸지 않도록 앞서 실행한 클라이언트를 종료하세요. - TUN을 켠 뒤에만 문제가 생긴다면: TUN을 끈 상태와 비교해 권한과 라우팅, 다른 VPN을 확인하세요. 구독과 규칙을 동시에 변경하지 마세요.
구형 클라이언트에서 마이그레이션하기: 확인 가능한 결과를 남기는 4단계
마이그레이션의 핵심은 구형 프로그램 폴더 전체를 복사하는 것이 아니라 재사용할 설정과 클라이언트 자체 상태를 분리하는 것입니다. 구형 클라이언트의 데이터베이스와 캐시, 설정 파일은 새 클라이언트에서 인식되지 않을 수 있으며, 그대로 덮어쓰면 문제가 더 생길 수 있습니다.
- 필요한 정보를 저장하세요. 구독 주소와 직접 작성한 설정, 사용자 지정 규칙을 백업하고 기존 포트와 정책 그룹 선택, DNS 설정을 기록하세요. 구독 주소에 접근 토큰이 포함될 수 있으므로 공개 스크린샷에 올리지 마세요.
- 기본 설정부터 실행하세요. 구형 클라이언트를 종료하고 FlClash에서 구독을 가져온 다음 현재 설정을 선택하세요. 먼저 파싱 오류를 확인하고 시스템 프록시로 자주 사용하는 웹사이트에 접속해 보세요. 바로 TUN이나 사용자 지정 오버라이드를 활성화하지 마세요.
- 설정을 하나씩 복원하세요. 규칙, DNS, LAN 접근, TUN 순서로 필요한 설정을 복원하고 한 번에 하나씩만 변경하세요. 문제가 생기면 해당 항목의 설정과 로그를 다시 확인하세요.
- 실행 정보를 기록하세요. 클라이언트 버전과 mihomo 버전, 운영체제, 오류 문구, 재현 절차를 남기세요. 클라이언트 버전과 코어 버전은 서로 다른 번호 체계를 사용하므로 바꿔 쓸 수 없습니다.
기존에 완전한 YAML을 사용했다면 구조를 먼저 유지하고 클라이언트 오버라이드 항목을 조정하세요. 노드 목록만 가져왔다면 새 클라이언트가 정책 그룹과 규칙을 어떻게 생성하는지 확인해야 합니다. 화면만 바꾸면 구형 클라이언트의 로컬 규칙도 구독과 함께 자동으로 옮겨진다고 가정하지 마세요.
이름의 신구가 아니라 필요한 기능으로 선택하세요
- Windows와 Android에서 모두 사용한다면: FlClash를 먼저 검토하고 두 플랫폼에서 필요한 프로토콜과 설정 처리 방식, 권한 조건을 확인하세요.
- 주로 데스크톱에서 여러 설정을 관리한다면: FlClash와 Clash Verge Rev의 설정 전환, 오버라이드, 시스템 연동 방식을 비교해 사용 습관에 더 잘 맞는 쪽을 선택하세요.
- 라우터·서버·자동화 환경에서 사용한다면: mihomo를 직접 실행하는 방법을 검토할 수 있습니다. 설정과 프로세스, 로그, 접근 권한을 직접 관리해야 하며 GUI 클라이언트가 필요하지 않을 수도 있습니다.
- 유지보수가 중단된 구형 클라이언트를 계속 사용한다면: 새 구독을 파싱할 수 있는지와 현재 운영체제와 호환되는지 먼저 확인한 다음 마이그레이션 계획을 세우세요.
가장 실용적인 확인 순서는 운영체제 지원, 코어 기능, 구독 호환성, 시스템 트래픽 처리 방식, 마지막으로 인터페이스 선호도입니다. 플랫폼 지원을 나란히 비교하려면 클라이언트 비교를 확인하세요. 설정을 가져왔는데 인터넷에 연결되지 않는다면 문제 해결 안내에 따라 설정 오류와 시스템 프록시, DNS 문제를 구분해 보세요. 이렇게 하면 ‘클라이언트 선택이 잘못된 경우’와 ‘현재 설정에 문제가 있는 경우’를 나눠 해결할 수 있습니다.