사용 목적에 맞춰 선택한 뒤 커널 버전을 확인하세요
Windows에서 Clash 클라이언트를 고를 때는 두 가지 역할을 구분해야 합니다. 클라이언트는 인터페이스, 구독 관리, 시스템 프록시, 백그라운드 서비스를 담당하고, mihomo 커널은 연결 프로토콜, 규칙 매칭, DNS, TUN 트래픽 처리를 담당합니다. 인터페이스가 업데이트되더라도 커널이 함께 업데이트된다는 보장은 없습니다. 두 클라이언트가 모두 mihomo를 사용하더라도 실제 실행 설정이 완전히 같지는 않을 수 있습니다.
이 글에서는 Clash Plus, Clash Verge Rev, FlClash를 비교합니다. Clash Verge Rev는 Tauri 기술 스택을, FlClash는 Flutter 기술 스택을 사용하며, 둘 다 mihomo를 그래픽 인터페이스로 관리할 수 있도록 합니다. Clash Plus의 실제 커널, 서비스 구현, 설정 덮어쓰기 기능은 다운로드 페이지의 해당 배포판 안내와 실행 정보를 확인해야 합니다. 이름만으로 기능을 추정해서는 안 됩니다. 확인되지 않은 기능을 지원된다고 단정하거나, 버전과 무관하게 적용되는 성능 순위를 제시하지 않습니다.
- 브라우저 프록시만 필요한 경우: 구독 가져오기, 프록시 그룹 전환, 시스템 프록시 켜기·끄기, 종료 후 설정 복원 여부를 확인하세요.
- 더 많은 앱의 트래픽을 처리하려는 경우: TUN 권한, DNS, 라우팅, 회사 VPN과의 공존 여부를 중점적으로 확인하세요.
- 규칙을 자주 수정하는 경우: 구독을 업데이트해도 로컬 변경 사항이 유지되도록 영구 덮어쓰기, 설정 미리보기, 오류 확인 기능을 먼저 살펴보세요.
- 기존 클라이언트에서 이전하려는 경우: 같은 구독을 먼저 테스트한 다음 규칙을 하나씩 옮기세요. 설정 디렉터리 전체를 그대로 복사하지 마세요.
세 클라이언트의 차이와 확인할 사항
아래 표를 참고해 후보를 먼저 좁혀 보세요. 표의 ‘확인’은 설치 전후에 점검해야 한다는 뜻이지, 해당 기능이 없다는 뜻은 아닙니다. 메뉴 이름은 버전에 따라 바뀔 수 있으므로 구체적인 메뉴 위치는 현재 인터페이스와 해당 버전의 문서를 확인하세요.
| 비교 항목 | Clash Plus | Clash Verge Rev | FlClash |
|---|---|---|---|
| 커널 확인 | 릴리스 노트와 시작 로그에서 커널 이름과 버전 확인 | mihomo를 사용하더라도 현재 배포판의 실제 커널 버전을 기록해야 합니다 | mihomo를 사용하더라도 현재 배포판의 실제 커널 버전을 기록해야 합니다 |
| 인터페이스와 실행 환경 | 현재 배포판의 시스템 요구 사항과 설치 방식 확인 | Tauri 데스크톱 인터페이스로, Windows에서 WebView2를 확인해야 합니다 | Flutter 인터페이스로, WebView2를 같은 방식으로 사용하지 않습니다 |
| 구독 관리 | 가져오기, 업데이트, 로컬 규칙 유지 방식 확인 | 구독 설정을 관리하고 병합·스크립트 등 설정 처리 기능을 사용할 수 있습니다 | 구독 설정을 관리할 수 있으며, 덮어쓰기 범위와 사용 방법은 버전별로 확인해야 합니다 |
| TUN 사용 | 배포판에서 TUN 기능과 권한 설정을 제공하는지 먼저 확인 | TUN 및 서비스 모드 관련 기능을 제공하며, 서비스 상태를 확인해야 합니다 | TUN 기능을 제공하며, 현재 버전의 권한 상승 및 백그라운드 실행 방식을 확인해야 합니다 |
| 우선 고려할 사용자 | 다운로드 페이지의 추천 항목을 후보로 삼고 기본 테스트를 마친 뒤 결정하려는 사용자 | Windows 설정 관리, 병합, 스크립트 처리를 중요하게 여기는 사용자 | Flutter 클라이언트를 사용해 왔으며 비슷한 조작 방식을 이어가고 싶은 사용자 |
Clash Plus: 실제 배포판으로 확인
Clash Plus를 선택한다면 먼저 클라이언트 다운로드 페이지에서 플랫폼과 배포 정보를 확인하고 설치 후 버전을 기록하세요. 최소한 ‘구독 가져오기 성공’, ‘규칙 모드 사용 가능’, ‘시스템 프록시 복원’의 세 가지를 테스트해야 합니다. TUN, 규칙 세트, 스크립트 덮어쓰기가 필요하다면 해당 기능도 각각 확인하세요. 다른 Clash 클라이언트의 안내를 이름만 보고 그대로 적용해서는 안 됩니다.
Clash Verge Rev: 설정 처리와 Windows 서비스 확인
Clash Verge Rev는 설정을 세밀하게 조정하려는 사용자에게 후보가 될 수 있습니다. 구독 원문이 병합, 스크립트, 인터페이스 설정을 거친 뒤 커널에 전달되는 최종 설정을 확인하세요. TUN 권한 문제가 발생하면 ‘인터페이스에서 활성화할 수 있는지’와 ‘백그라운드 서비스가 설치되어 실행 중인지’를 구분해야 합니다. 화면이 하얗게 나오거나 인터페이스가 표시되지 않는 문제는 별도로 점검해야 합니다. DNS를 먼저 바꾸기보다 WebView2 등 실행 환경을 확인하세요.
FlClash: 사용 흐름과 설정 이전 가능성 확인
FlClash의 Flutter 인터페이스는 Clash Verge Rev의 데스크톱 구현과 다릅니다. 다른 플랫폼에서 FlClash를 사용해 온 경우 설정 선택, 노드 전환, 로그 확인이 익숙하고 편한지 먼저 테스트해 보세요. 인터페이스가 비슷하더라도 설정 디렉터리, 플랫폼 권한, 로컬 덮어쓰기 설정을 그대로 복사할 수 있다는 뜻은 아닙니다. Windows에서는 TUN, 시작 프로그램 등록, 종료 후 시스템 프록시 상태를 별도로 확인해야 합니다.
커널과 프로토콜: 실행 정보를 바탕으로 호환성 확인
같은 구독이 한 클라이언트에서는 작동하지만 다른 클라이언트에서는 오류가 난다면 두 클라이언트의 버전, 실제 커널 버전, 오류가 발생한 줄을 먼저 기록하세요. 설치 파일의 출시일만 비교해서는 안 됩니다. 새로운 프로토콜 매개변수, 규칙 동작, DNS 필드는 특정 mihomo 버전에 의존할 수 있으므로 구형 커널이 새 설정을 해석하지 못할 수 있습니다.
- 클라이언트의 정보, 커널 정보 또는 시작 로그를 열어 전체 버전 문자열을 기록하세요. ‘최신 버전’이라고만 적어 두지 마세요.
- 구독 응답이 Clash/mihomo에서 사용할 수 있는 YAML인지 확인하세요. 웹페이지, 로그인 안내 또는 다른 클라이언트 전용 형식이어서는 안 됩니다.
- 오류가 설정 구문 분석 단계에서 발생하는지, 노드 연결 단계에서 발생하는지 확인하세요. 전자는 필드와 자료형을 먼저 살펴보고, 후자는 회선, 인증 정보, 프로토콜 매개변수를 확인하세요.
- 최종 실행 설정을 열어 구독의 노드, 프록시 그룹,
rule-providers,rules가 클라이언트의 덮어쓰기 설정으로 인해 의도치 않게 바뀌지 않았는지 확인하세요.
예를 들어 mixed-port는 HTTP와 SOCKS가 함께 사용하는 수신 포트이고, external-controller는 커널 제어 인터페이스이지 브라우저 프록시 포트가 아닙니다. 브라우저에서 제어 인터페이스 포트를 사용하면 클라이언트가 실행 중으로 표시되더라도 정상적인 프록시 서비스를 이용할 수 없습니다. 필드 설명은 규칙 구문 안내서를, DNS 문제는 DNS 설정 안내를 참고하세요.
시스템 프록시와 TUN: 두 단계로 점검
시스템 프록시는 Windows 프록시 설정을 따르는 앱에서 사용합니다. TUN은 가상 네트워크 어댑터와 라우팅을 통해 트래픽을 처리하므로 일반적으로 더 많은 트래픽을 다루지만, 모든 트래픽이 반드시 프록시 노드를 통과한다는 뜻은 아닙니다. 실제 경로는 라우팅, 제외 항목, 규칙, DNS 처리 방식에 따라 달라집니다. 게임, 회사 VPN, 로컬 네트워크 기기 접속은 스위치가 있는지만 보지 말고 실제 환경에서 테스트하세요.
1단계: 시스템 프록시만 확인
- 기존 클라이언트의 시스템 프록시와 TUN을 끈 다음 완전히 종료하세요. 후보 클라이언트는 한 번에 하나씩만 실행하세요.
- 구독을 가져오고 노드를 하나 선택한 뒤 규칙 모드를 사용하세요. TUN은 끈 상태로 두고 시스템 프록시를 켜세요.
- Windows 11에서 ‘설정’ → ‘네트워크 및 인터넷’ → ‘프록시’를 열고 수동 프록시 주소와 포트가 현재 클라이언트에 해당하는지 확인하세요.
- 테스트 사이트에 접속하면서 클라이언트 연결 기록도 확인하세요. 페이지가 열리는지만 보고 판단하지 말고 요청에 예상한 정책이 적용됐는지 확인해야 합니다.
- 클라이언트를 종료한 뒤 Windows 프록시 설정이 복원되는지 확인하세요. 남은 프록시 설정 때문에 일반적인 인터넷 접속이 차단되지 않는지도 점검하세요.
2단계: TUN과 네트워크 복구 확인
기본 프록시 테스트를 마친 뒤 클라이언트 안내에 따라 서비스를 설치하거나 필요한 권한을 부여하고 TUN을 활성화하세요. 가상 네트워크 어댑터, 기본 경로 변경, 로그의 DNS 오류를 기록하세요. 브라우저, 시스템 프록시를 따르지 않는 앱 하나, 로컬 네트워크 주소, 절전 모드에서 깨어난 뒤의 연결을 차례로 테스트하세요. 회사 기기에서는 관리자의 정책을 먼저 따르세요. 권한을 반복해서 높이거나 보안 소프트웨어를 끄는 방식으로 제한을 우회하지 마세요.
도메인은 열리지 않지만 IP 주소로 연결할 수 있다면 DNS 경로를 먼저 확인하세요. 모든 연결이 실패한다면 서비스, 라우팅, 포트를 점검하세요. fake-ip를 활성화하는 것만으로 DNS 유출을 완전히 방지할 수는 없습니다. 앱 자체의 암호화 DNS와 브라우저 설정, 실제 네트워크 출구도 확인해야 합니다.
구독과 덮어쓰기: 업데이트 후 동작 확인
한 번 가져오기에 성공했다고 해서 계속 정상 작동하는 것은 아닙니다. 장기적으로는 구독 업데이트 후 로컬 규칙이 유지되는지, 프록시 그룹 선택이 예상대로 적용되는지, 덮어쓰기 오류의 원인을 찾을 수 있는지가 중요합니다. Clash Verge Rev의 병합 및 스크립트 처리, FlClash 현재 버전의 덮어쓰기 기능, Clash Plus 해당 배포판의 설정 처리 방식은 각 제품 문서에 따라 따로 설정해야 합니다.
- 원격 구독: 원본 링크와 업데이트 주기를 보관하고 업데이트 시간과 오류 정보를 확인하세요. 인증 정보가 포함된 구독 주소를 공개 스크린샷이나 온라인 변환 사이트에 올리지 마세요.
- 로컬 규칙: 클라이언트가 지원하는 영구 덮어쓰기 기능에 추가하세요. 다음 업데이트 때 교체될 구독 캐시를 직접 수정하지 마세요.
- 규칙 순서: 먼저 적용해야 하는 규칙은 기본 규칙보다 앞에 둬야 합니다. 편집기에서 보이는 위치만 믿지 말고 최종 설정을 확인하세요.
- 스크립트 이전: 기존 클라이언트의 Parsers와 새 클라이언트의 스크립트 인터페이스는 다를 수 있습니다. 함수 진입점, 전달 객체, 실행 시점을 모두 확인하세요.
아래 YAML은 규칙 순서만 보여 주는 예시이며, 구독 전체를 대체할 수 있는 설정이 아닙니다. 로컬 네트워크 도메인과 사설 IP 주소는 직접 연결하고, 마지막에 ‘프록시 선택’이라는 프록시 그룹으로 보냅니다. 해당 그룹은 미리 만들어져 있어야 합니다. 배열을 삽입하는 방식은 클라이언트 구현에 따라 다릅니다. 특히 기존 MATCH가 먼저 실행되어 규칙 매칭이 끝나지 않도록 주의하세요.
rules:
- DOMAIN-SUFFIX,lan,DIRECT
- IP-CIDR,192.168.0.0/16,DIRECT,no-resolve
- MATCH,프록시 선택
설정을 마친 뒤 구독을 직접 한 번 업데이트하고 최종 규칙, 프록시 그룹, 로그를 확인하세요. 규칙이 사라진다면 영구 저장 방식을 수정해야 합니다. 업데이트할 때마다 다시 붙여 넣는 것을 정상적인 작업 방식으로 삼지 마세요. 처음 가져오는 방법은 구독 설정 안내를 참고하세요.
리소스 사용량과 업데이트 현황: 같은 조건에서 비교
Tauri나 Flutter라는 이름만으로 특정 클라이언트가 메모리를 덜 사용한다고 단정할 수 없습니다. 그래픽 인터페이스, 커널, 백그라운드 서비스, WebView2 하위 프로세스는 통계 집계 방식이 다릅니다. 규칙 세트의 크기, 연결 수, 로그 수준도 결과에 영향을 줍니다. 테스트 조건을 동일하게 맞춘 뒤 각각 기록하는 것이 가장 믿을 만한 방법입니다.
권장하는 로컬 비교 절차
- 세 후보에서 같은 구독과 노드, 같은 프록시 모드를 사용하고 자동 노드 속도 측정은 끄세요. 추가 탐색이 결과에 영향을 주지 않도록 합니다.
- 실행 후 5분간 그대로 둔 다음 작업 관리자에서 클라이언트, 커널, 관련 프로세스의 메모리 사용량을 기록하세요. 인터페이스 프로세스의 수치만 적지 마세요.
- 같은 브라우저 페이지와 파일 전송 작업을 10분간 실행하고 CPU 사용량, 최대 메모리, 연결 끊김 횟수, 오류 로그를 기록하세요.
- 종료, 재시작, 절전 모드에서 깨어난 뒤를 각각 테스트해 프록시와 네트워크가 복구되는지 기록하세요. 테스트 시간은 권장 조건일 뿐 성능 측정 결과가 아닙니다.
포트 충돌이 의심되면 PowerShell에서 조회할 수 있습니다. 여기의 7890은 예시이므로 클라이언트가 실제로 수신하는 포트로 바꾸세요. 조회 결과가 없으면 일치하는 TCP 수신 항목이 없다는 뜻일 뿐, UDP나 다른 포트도 사용 중이 아니라는 의미는 아닙니다.
Get-NetTCPConnection -State Listen -LocalPort 7890 -ErrorAction SilentlyContinue |
Select-Object LocalAddress, LocalPort, OwningProcess
업데이트 현황은 릴리스 횟수만 보고 판단하지 마세요. 최근 90일간의 정식 릴리스, 커널 업데이트 안내, 알려진 문제, 롤백 방법을 확인하는 것이 좋습니다. ‘클라이언트 버전’과 ‘커널 버전’을 따로 기록하고, 실제로 겪는 문제가 수정되었다는 안내가 있는지도 확인하세요. 금방 오래된 정보가 될 ‘현재 최신 버전’을 이 글에 고정해서 표시하지 않습니다. 다운로드하기 전에 당시 릴리스 기록을 확인하세요.
필요에 맞게 선택하고 주 클라이언트 하나만 유지
웹과 일반 데스크톱 앱의 프록시만 필요하다면 세 후보 모두 구독, 규칙 모드, 시스템 프록시 복원 테스트를 먼저 완료해야 합니다. 사용 절차가 명확하고 로그를 확인하기 쉬우며 업데이트 후에도 설정이 유지되는 클라이언트를 선택하세요. Clash Plus는 해당 배포판부터 평가할 수 있지만, TUN이나 고급 덮어쓰기가 필요하다면 실제 기능 테스트를 추가해야 합니다.
사용자 지정 규칙과 설정 스크립트를 장기간 관리한다면 Clash Verge Rev를 먼저 사용해 보고 현재 버전의 병합 순서와 서비스 모드를 확인하세요. FlClash 조작 방식에 익숙하다면 Windows 버전을 먼저 사용해 본 뒤 플랫폼 권한과 덮어쓰기 방식의 차이를 확인하세요. 더 많은 항목은 클라이언트 비교 페이지에서 확인할 수 있습니다. 인터페이스가 다르다는 이유만으로 여러 클라이언트를 동시에 시작 프로그램에 등록할 필요는 없습니다.
이전 완료 전 확인할 다섯 가지
- 기존 설정을 백업하되 두 클라이언트가 수신 포트를 동시에 사용하거나 시스템 프록시를 함께 변경하지 않도록 하세요.
- 구독이 업데이트되고 로컬 덮어쓰기 설정이 유지되는지, 로그에 지속적인 구문 분석 또는 다운로드 오류가 없는지 확인하세요.
- 직접 연결 사이트, 프록시 사이트, 로컬 네트워크 기기 연결을 확인하고 실제로 어떤 규칙이 적용되는지 살펴보세요.
- TUN을 끄거나 클라이언트를 종료하거나 PC를 재부팅한 뒤에도 네트워크가 예상대로 동작하는지 확인하세요.
- 연결 확인을 마친 다음 기존 클라이언트의 시작 프로그램 등록을 해제하세요. 되돌릴 수 있는 설정을 너무 일찍 삭제하지 마세요.
최종 선택을 내리기 전에 세 가지를 확인하세요. 실제 실행 중인 커널 버전은 무엇인지, 설정 업데이트 후 어떤 변경 사항이 유지되는지, 종료 후 시스템 프록시와 라우팅이 어떻게 복원되는지입니다. 이 세 가지를 확인하는 편이 인터페이스 스크린샷이나 제품 이름만 보고 결정하는 것보다 믿을 만합니다.