커널을 먼저 정하고, 클라이언트를 고른다

Clash 생태계에서 클라이언트와 커널은 서로 다른 계층입니다. 클라이언트는 인터페이스, 구독 관리, 트레이 메뉴, 부팅 시 자동 실행을 담당하고, 설정 파일을 파싱하고 연결을 맺고 분기 규칙을 실행하는 것은 커널 프로세스입니다. 둘은 따로 교체할 수 있습니다. 같은 mihomo 커널을 Clash Verge Rev로도, FlClash로도 띄울 수 있고 설정 파일은 서로 호환됩니다.

커널 현황이 선택의 하한선을 결정합니다. 원본 Clash와 Clash Premium은 Dreamacro가 유지했고 2023년 11월에 아카이브되어 저장소가 내려갔습니다. 지금도 업데이트가 이어지는 것은 mihomo(구 Clash.Meta, MetaCubeX 유지)입니다. 판별법은 간단합니다. 클라이언트의 '설정' 페이지에서 커널 버전을 확인했을 때 mihomo는 1.19.x 이상 형태이고, 원본 커널은 1.18.0에서 멈춰 있습니다.

프로토콜 지원 차이가 가장 흔한 함정입니다. VLESS, Hysteria2, TUIC, WireGuard, SSH 같은 아웃바운드 타입은 mihomo 계열 커널만 파싱할 수 있습니다. 설정 파일에 type: hysteria2가 있는데 클라이언트가 로딩 단계에서 unsupported proxy type을 띄운다면 커널 버전이 오래된 것으로 보면 됩니다.

구독에 Hysteria2 또는 VLESS 노드가 포함된 경우

가져오기 전에 클라이언트 커널이 mihomo 계열인지 먼저 확인하세요. 그렇지 않으면 구독은 다운로드되고 인터페이스에는 업데이트 성공으로 표시되지만 노드 목록이 비어 있는 상황이 생깁니다. 오류는 구독 다운로드 단계가 아니라 커널이 설정을 로드하는 단계에서 발생합니다.

네 가지 비교 기준: 커널, 플랫폼, 설정 방식, 업데이트 주기

후보 클라이언트를 한 표에 모으면 차이가 한눈에 드러납니다.

주요 Clash 클라이언트 비교(2026년 8월 기준)
클라이언트플랫폼커널인터페이스 셸유지 상태
Clash Verge RevWindows / macOS / LinuxmihomoTauri활발
Mihomo PartyWindows / macOS / LinuxmihomoElectron활발
FlClashWindows / macOS / Linux / AndroidmihomoFlutter활발
ClashMetaForAndroidAndroidmihomo네이티브활발
ClashX MetamacOSmihomo네이티브 메뉴 막대저빈도 유지보수
StashmacOS / iOS자체 개발, Clash 설정 호환네이티브활발, 클로즈드 소스
Clash for WindowsWindows / macOS / LinuxClash PremiumElectron2023-11 업데이트 중단
Clash for AndroidAndroidClash Premium네이티브2023-11 업데이트 중단

커널 버전

mihomo는 rule-providers의 세 가지 behavior(domain, ipcidr, classical)와 GEOSITE 분류 규칙 라이브러리를 지원합니다. 원본 Premium은 앞의 두 가지만 지원하고 규칙 세트 파일 형식도 더 오래되었습니다. 구독에서 GEOSITE 분류나 classical behavior 규칙 세트를 쓴다면 커널은 반드시 mihomo여야 합니다.

플랫폼 지원

데스크톱, Android, iOS는 서로 다른 세 가지 기술 스택입니다. 데스크톱은 커널을 자유롭게 교체할 수 있고, Android는 VPN 서비스 방식으로 트래픽을 가로채며, iOS는 서드파티 앱이 자체 TUN 서비스를 만들 수 없어 App Store의 완성형 클라이언트 중에서 골라야 하고 커널 교체가 불가능합니다.

설정 방식

세 단계로 나뉩니다. 구독 URL 가져오기만 지원하는 단계, 구독에 로컬 YAML을 더한 단계, 구독에 Merge 오버라이드와 JavaScript 스크립트까지 지원하는 단계입니다. Clash Verge Rev와 Mihomo Party는 세 번째 단계로, 원본 구독 파일을 건드리지 않고 포트를 바꾸거나 규칙을 추가하거나 DNS 설정을 교체할 수 있습니다.

업데이트 주기

GitHub Releases의 릴리스 간격을 보면 됩니다. Clash Verge Rev, Mihomo Party, FlClash, ClashMetaForAndroid는 월 단위로 반복되고, ClashX Meta는 릴리스 간격이 깁니다. 업데이트가 멈춘 프로젝트도 당장 못 쓰는 것은 아니지만 새 프로토콜과 새 규칙 형식을 따라가지 못해 장기적으로 구독에 발목이 잡힙니다.

플랫폼별 결론

Windows 10 / 11:Clash Verge Rev

Tauri 셸이라 설치 패키지가 10 MB 수준이고, Windows 11에서 유휴 상태 상주 메모리는 약 110 MB입니다(규칙 세트는 일반적인 구독 규모 기준). 기본 혼합 포트는 7897, 외부 제어 포트는 127.0.0.1:9097입니다. 자주 쓰는 토글 경로:

  • 시스템 프록시: '설정' → '시스템 설정' → '시스템 프록시'
  • TUN 모드: '설정' → 'Clash 설정' → 'Tun 모드', 처음 켜면 관리자 권한을 요청하고 wintun 드라이버를 설치합니다
  • 구독 가져오기: '구독' → 새로 만들기 → 링크 붙여넣기 → '가져오기'

시스템 프록시와 TUN의 차이는 짚어 둘 만합니다. 시스템 프록시는 시스템 프록시 설정을 읽는 프로그램에만 영향을 주므로 브라우저와 대부분의 Electron 앱은 적용되지만 명령줄 도구, 일부 게임, UWP 앱은 이 설정을 읽지 않습니다. TUN은 가상 네트워크 어댑터 계층에서 모든 TCP와 UDP 트래픽을 가로채 커버 범위가 더 넓고, 대신 관리자 권한이 필요합니다.

대안은 Mihomo Party입니다. Electron 셸이라 같은 환경에서 상주 메모리가 약 320 MB이지만, 그 대신 더 완전한 오버라이드 패널과 구독 변환 통합을 제공합니다. 저사양 기기라면 Tauri 방식을 우선하세요. Clash for Windows를 새로 설치하는 것은 권하지 않습니다. 2023년 11월에 원본 커널과 함께 업데이트가 멈춰서 설정에 있는 hysteria2, vless 노드를 파싱할 수 없습니다.

macOS 12 이상: Clash Verge Rev 또는 Stash

Clash Verge Rev는 Apple Silicon 네이티브 arm64 패키지를 제공하고 메뉴 막대에 상주하며 창을 닫아도 프로세스가 종료되지 않습니다. 처음 TUN을 켤 때는 시스템 승인이 필요합니다. ClashX Meta는 메뉴 막대 메뉴만 있는 가벼운 인터랙션이라 노드 전환과 프록시 온오프만 필요한 경우에 맞지만 업데이트 빈도가 낮습니다.

Stash는 클로즈드 소스 상용 클라이언트로 설정 문법은 Clash와 호환되지만 커널은 mihomo가 아니라 자체 개발입니다. 선택의 전제는 구독에 있는 프로토콜을 모두 지원하는지이며, 그렇지 않다면 mihomo 계열로 돌아가는 편이 안정적입니다.

Android 8 이상: ClashMetaForAndroid

VPN 서비스 방식으로 트래픽을 가로채며 '설정' → '네트워크'에서 라우팅 모드(규칙 / 글로벌 / 다이렉트)를 전환할 수 있습니다. 흔한 충돌 하나: 시스템 '프라이빗 DNS'를 고정 DoT 주소로 설정하면 Clash의 DNS 처리가 우회되어 일부 도메인 해석이 이상해지거나 분기가 작동하지 않습니다. '자동'으로 되돌리면 해결됩니다. 데스크톱과 스마트폰에서 같은 인터페이스를 쓰려면 FlClash를 선택하세요. 같은 설정 파일을 두 플랫폼에서 함께 쓸 수 있습니다.

iOS: App Store 클라이언트 중에서만 선택

iOS는 서드파티 앱이 자체 TUN 서비스를 만들 수 없어 'mihomo 커널 + 커스텀 셸' 조합이 존재하지 않습니다. 선택지는 App Store의 완성형 클라이언트이며 각자 커널을 내장하고 있어 Clash 스타일 규칙 설정만 가져올 수 있고 커널은 교체할 수 없습니다. 고를 때 구독의 프로토콜을 대상 클라이언트가 지원하는지 먼저 확인하세요. Hysteria2와 VLESS Reality는 일부 iOS 클라이언트에서 지원이 늦었습니다.

Linux와 라우터

데스크톱 배포판은 Clash Verge Rev의 AppImage나 deb 패키지를 쓰고, 데스크톱 환경을 설치하지 않는다면 mihomo 커널에 systemd 서비스를 붙여 /etc/mihomo/config.yaml에 설정을 두면 됩니다. OpenWrt에서는 OpenClash 플러그인을 쓰고 커널을 mihomo 브랜치로 전환하면 LAN 기기마다 따로 설정할 필요가 없습니다. 라우터 메모리가 128 MB 미만이면 전체 GEOSITE 규칙 세트 활성화는 신중하세요. 데이터베이스 하나를 풀면 수십 MB를 차지할 수 있습니다.

플랫폼별 우선 선택과 대안
플랫폼우선 선택대안핵심 제약
Windows 10 / 11Clash Verge RevMihomo PartyTUN은 관리자 권한과 wintun 드라이버 필요
macOS 12+Clash Verge RevStash、ClashX MetaTUN 최초 실행 시 시스템 승인 필요
Android 8+ClashMetaForAndroidFlClash프라이빗 DNS를 '자동'으로 설정
iOS 15+App Store 완성형 클라이언트없음커널 교체 불가
Linux 데스크톱Clash Verge RevFlClashAppImage는 실행 권한 수동 부여 필요
OpenWrtOpenClashmihomo 커널 직접 설치메모리 128 MB 미만이면 규칙 세트 축소

설정 방식과 이전 비용

클라이언트를 바꿀 때 실제로 챙겨야 할 것은 세 가지뿐입니다. 구독 URL, 로컬 사용자 지정 규칙, 오버라이드 스크립트. 포트 번호, TUN 토글, 부팅 시 자동 실행 같은 항목은 클라이언트 설정이므로 새 클라이언트에서 다시 지정하면 됩니다.

Clash Verge Rev의 오버라이드 방식은 따로 설명할 만합니다. 구독 카드의 'Merge'는 YAML 필드를 병합하는 데 쓰고, 'Script'는 JavaScript로 설정을 수정하는 데 씁니다. 예를 들어 구독에 딸린 포트를 일괄 변경할 수 있습니다:

# Clash Verge Rev의 Merge 오버라이드 예시
mixed-port: 7897
allow-lan: false
external-controller: 127.0.0.1:9097
tun:
  enable: true
  stack: mixed
  auto-route: true

이 오버라이드는 구독이 업데이트될 때마다 자동으로 적용되며, 구독 파일을 직접 고칠 필요도 없고 구독을 다시 받으면서 사라지지도 않습니다.

한 번에 하나의 클라이언트만 실행

두 클라이언트에서 동시에 TUN을 켜면 라우팅 테이블이 서로를 덮어씁니다. 전형적인 증상은 커널 로그는 정상으로 보이는데 모든 사이트가 열리지 않는 것입니다. 전환하기 전에 이전 클라이언트에서 TUN과 시스템 프록시를 끄고 프로세스를 종료하세요.

포트 충돌도 흔합니다. 기본 혼합 포트 7897을 이전 프로세스가 점유하고 있으면 새 클라이언트 시작 로그에 bind: address already in use가 나타납니다. Windows에서는 netstat -ano | findstr 7897로 점유 프로세스를 찾아 종료하고, macOS와 Linux에서는 lsof -i :7897을 씁니다.

설치 전 확인할 다섯 가지

  1. 구독에 hysteria2, vless, tuic 노드가 있는지. 있다면 커널은 반드시 mihomo 계열이어야 합니다.
  2. 대상 플랫폼이 iOS인지. 그렇다면 App Store 클라이언트 중에서만 골라야 하고 커널은 교체할 수 없습니다.
  3. TUN이 필요한지. 필요하다면 관리자 또는 root 권한이 있는지 확인하고, Windows에서는 wintun 드라이버 설치를 허용해야 합니다.
  4. 남겨야 할 로컬 규칙이나 오버라이드 스크립트가 있는지. 있다면 Merge와 Script 오버라이드를 지원하는 클라이언트를 고르세요.
  5. 기기 메모리 여유. 라우터나 저사양 기기는 Tauri 또는 네이티브 셸을 우선하고 Electron은 피하세요.

이 다섯 가지만 짚어 보면 설치한 뒤에야 맞지 않는다는 걸 알게 되는 상황은 거의 생기지 않습니다. 커널은 mihomo, 셸은 플랫폼에 맞게 고르는 것이 현재 가장 수월한 조합입니다.