Clash for Windows 지원 종료 후 Clash Verge Rev로 마이그레이션: 구독·규칙·단축 설정 이전 방법

지원이 종료된 클라이언트의 대안을 살펴보고 구독 내보내기, 설정 항목 확인, 오버라이드 스크립트 이전, 시스템 프록시 재설정 순으로 기존 환경을 Clash Verge Rev로 옮기는 방법을 안내합니다.

마이그레이션 범위: 클라이언트 설정과 코어 설정을 나눠서 처리

Clash for Windows(이하 CFW)는 더 이상 유지 관리되지 않습니다. Clash Verge Rev로 옮기는 일은 단순히 프로그램 창을 바꾸는 것만이 아닙니다. 인터페이스와 설정 관리 방식, 백그라운드 서비스가 달라지고, 구독을 파싱하고 규칙을 적용해 연결을 만드는 코어도 다시 확인해야 합니다. Clash Verge Rev는 mihomo를 사용하므로 CFW 사용자 디렉터리 전체를 덮어쓴 뒤 모든 설정이 그대로 적용되길 기대해서는 안 됩니다.

마이그레이션 전에 CFW의 「General」에 표시된 버전, 포트, 실행 모드와 「Profiles」에서 선택된 설정 이름을 기록해 두세요. 기존 환경이 CFW 0.20.39라면 이는 클라이언트 버전일 뿐, 구독에서 어떤 프로토콜을 사용하는지 또는 현재 mihomo의 모든 설정 항목과 호환되는지를 의미하지 않습니다. 새 클라이언트와 코어의 실제 버전은 각각 설치된 프로그램의 화면과 시작 로그에서 확인해야 합니다.

마이그레이션 항목권장 방법다시 확인할 사항
구독 주소 또는 YAML 파일새 클라이언트에서 다시 가져오기가져온 결과, 프로토콜, 정책 그룹 이름
사용자 지정 분기 규칙별도 오버라이드 또는 병합 설정으로 재구성규칙 순서, 대상 정책, 리소스 경로
CFW Parsers 및 스크립트기존 목적에 맞게 다시 구현스크립트 진입점, 실행 환경, 병합 방식
포트 및 시스템 프록시새 클라이언트에서 다시 설정포트 충돌, 프록시 우회, 앱 설정
TUN 및 백그라운드 서비스새 클라이언트에서 다시 설치하고 권한 부여권한, 라우팅, DNS, 가상 네트워크 어댑터
단축키 및 시작 프로그램항목별로 다시 설정기존 시작 작업이 여전히 실행 중인지 확인

1단계: 구독·규칙·로컬 설정 백업

현재 노드 목록만이 아니라 원본도 보관

CFW의 「Profiles」에서 사용 중인 원격 구독 주소를 기록하세요. 메뉴에서 URL 복사 또는 편집 기능을 제공한다면 해당 기능으로 주소를 확인하고, 로컬 파일을 사용한다면 해당 YAML 파일을 복사하세요. 구독 링크에는 액세스 토큰이 들어 있는 경우가 많으므로 접근이 제한된 로컬 폴더에 보관하고, 공개 저장소에 올리거나 토큰이 보이는 화면을 공개 게시판에 공유하지 마세요.

사용자 디렉터리는 보통 %USERPROFILE%\.config\clash에 있지만, 포터블 모드나 사용자 지정 경로에서는 다를 수 있습니다. CFW의 「General」에서 「Home Directory」를 열어 실제 디렉터리를 찾는 것이 가장 좋습니다. 클라이언트를 종료한 뒤 디렉터리 전체를 복사하고 원래 파일 이름을 유지하세요. 마이그레이션할 때는 복사본에서 필요한 자료만 가져오고, 이 디렉터리를 새 클라이언트의 데이터 디렉터리로 사용하지 마세요.

원본 구독과 실제 적용 설정을 구분하기

원본 구독에는 노드와 정책 그룹만 들어 있을 수 있지만, 실제 적용 설정에는 클라이언트가 추가한 포트, DNS, TUN 설정과 스크립트 결과가 포함될 수 있습니다. 원본 구독만 보관하면 사용자 지정 규칙이 사라질 수 있고, 실제 적용 설정만 보관하면 이전 PC의 경로와 포트가 새 환경에 그대로 따라올 수 있습니다. 두 가지를 모두 저장하고 파일 이름에 용도를 표시해 두는 편이 화면을 캡처해 두는 것보다 안전합니다.

실제 적용 설정에는 프록시 비밀번호나 컨트롤러 API 키 같은 민감한 정보가 포함될 수도 있습니다. 백업 접근을 제한하고, 문제 해결을 위해 공유할 때는 필요한 항목만 발췌하세요. 원격 구독을 확인한다는 이유로 신뢰할 수 없는 구독 변환 사이트에 링크를 입력하지 마세요.

2단계: 구독 가져오기 및 mihomo 설정 호환성 확인

  1. 클라이언트 다운로드 페이지에서 운영체제와 아키텍처에 맞는 Clash Verge Rev 설치 파일을 선택하세요. 설치를 마친 뒤에는 시스템 프록시와 TUN을 꺼 둡니다.
  2. 새 클라이언트의 「구독」 페이지에서 원본 구독 URL을 가져오거나, 로컬 파일 가져오기 기능으로 YAML을 추가하세요. 버전에 따라 버튼 이름이 조금 다를 수 있으니 화면에 표시된 안내를 따르세요.
  3. 새 설정을 선택한 뒤 설정 검사 결과와 코어 로그를 확인하세요. 먼저 파싱 오류를 해결하고 연결 문제를 살펴봅니다.
  4. 「프록시」 페이지에서 정책 그룹과 노드가 표시되는지 확인하고, 사용 가능한 것으로 알고 있는 노드를 선택한 다음 규칙 모드를 활성화하세요.

mihomo는 Clash 형식의 설정을 폭넓게 읽을 수 있지만, “파싱 가능”이 “동일하게 동작함”을 뜻하지는 않습니다. 기존 구독의 프로토콜 매개변수와 규칙 세트 형식, 클라이언트 전용 확장 항목을 확인해야 합니다. 특히 이전 설정의 script: 분기 규칙을 CFW Parsers의 JavaScript로 간주해서는 안 되며, mihomo에서 그대로 실행된다고 가정해서도 안 됩니다. 현재 코어 문서를 참고해 지원되는 규칙이나 논리 규칙으로 다시 작성하세요.

알 수 없는 항목을 일괄 삭제하지 말고 오류가 난 위치를 기준으로 수정

YAML을 직접 검사하려면 클라이언트와 같은 버전의 mihomo로 설정 검사를 실행할 수 있습니다. 다음은 Windows PowerShell 예시입니다. 명령을 실행하는 디렉터리에 해당 코어 파일과 테스트할 설정 파일이 있어야 합니다. 검사에 통과해도 설정을 불러올 수 있다는 뜻일 뿐, 원격 노드 연결까지 보장하지는 않습니다.

.\mihomo.exe -t -f .\migration-test.yaml

3단계: 구독 업데이트 후에도 유지되도록 규칙 오버라이드 재구성

오랫동안 유지할 사용자 지정 규칙을 원격 구독 캐시에 직접 넣지 마세요. 다음 업데이트 때 변경 사항이 덮어써질 수 있습니다. “원격 노드와 정책 그룹”과 “로컬에서 유지할 설정”을 분리하세요. 전자는 구독 업데이트로 관리하고, 후자는 Clash Verge Rev의 병합 설정이나 스크립트 기능으로 처리한 뒤 현재 설정에 연결되어 있는지 확인합니다.

정적 규칙을 먼저 옮기고 스크립트는 나중에 옮기기

CFW Parsers는 클라이언트 측 전처리 과정이지 범용 코어 설정이 아닙니다. 조건과 처리 단계가 담긴 Parsers 파일을 새 클라이언트의 병합 편집기에 그대로 붙여 넣어도 보통 같은 결과를 얻을 수 없습니다. 먼저 각 로직의 목적을 정리하세요. 예를 들어 “특정 도메인을 직접 연결로 지정”, “만료된 노드 삭제”, “정책 그룹에 필터 조건 추가”와 같이 분류한 뒤 정적 규칙, 병합 설정, 스크립트 가운데 적절한 방법으로 하나씩 다시 구성합니다.

아래 두 규칙은 로컬 오버라이드에 사용할 수 있는 예시이며 전체 구독은 아닙니다. example.com은 문서용 예시 도메인이므로 실제 서비스에 맞게 바꾸세요. 내장 정책인 DIRECT를 사용하므로 구독의 정책 그룹 이름에 의존하지 않습니다.

rules:
  - DOMAIN-SUFFIX,example.com,DIRECT
  - IP-CIDR,192.168.0.0/16,DIRECT,no-resolve

동적 처리가 필요하다면 스크립트 진입점을 확인

현재 버전의 스크립트 편집기에서 main(config) 진입점을 사용한다면 아래처럼 규칙을 앞에 추가할 수 있습니다. 편집기에 다른 템플릿이 표시된다면 현재 템플릿을 따르세요. 스크립트는 설정 객체를 반환해야 합니다. 이 코드는 스크립트 편집기에서만 사용할 수 있으며 YAML로 가져올 수 없습니다.

function main(config) {
  const localRule = "DOMAIN-SUFFIX,example.com,DIRECT";
  const existingRules = Array.isArray(config.rules) ? config.rules : [];
  config.rules = [
    localRule,
    ...existingRules.filter((rule) => rule !== localRule)
  ];
  return config;
}

스크립트는 기존 규칙의 상대적인 순서를 유지하고 예시 규칙이 중복으로 추가되지 않도록 합니다. 실제 환경에서는 더 넓은 범위의 규칙이 앞에 있는지, 규칙 제공자에 의존하는지, 뒤이은 병합 단계에서 결과를 다시 덮어쓰는지 확인해야 합니다. 마이그레이션 중에는 오버라이드를 한 번에 하나씩만 활성화하고, 실제 적용 설정을 확인한 뒤 다음 단계로 넘어가면 문제 원인을 좁히기 쉽습니다.

4단계: 시스템 프록시 전환 및 포트·단축 설정 재구성

기존 코어를 종료한 다음 새 클라이언트가 이어받도록 설정

  1. CFW의 「General」에서 「System Proxy」를 끄세요. TUN을 사용 중이라면 이 기능도 끈 다음 트레이 메뉴에서 CFW를 종료합니다.
  2. 작업 관리자를 열어 기존 코어 프로세스가 종료되었는지 확인하세요. 포트를 계속 사용 중이라면 먼저 해당 프로세스가 무엇인지 확인하고, 정체를 알 수 없는 시스템 프로세스를 바로 종료하지 마세요.
  3. Clash Verge Rev의 「설정」에서 포트와 시스템 프록시 옵션을 확인하세요. 관련 항목은 포트 설정, 시스템 설정, 고급 설정 등에 있을 수 있으며 버전에 따라 메뉴 구성이 달라집니다.
  4. 새 클라이언트의 시스템 프록시를 활성화하고 테스트할 앱을 다시 연 다음, 「연결」 페이지에 요청이 표시되는지 확인하세요.

예를 들어 기존 프로그램에서 프록시를 127.0.0.1:7890으로 수동 설정했지만 새 클라이언트가 7897 포트에서 수신 대기한다면, 시스템 프록시를 전환해도 해당 프로그램의 포트는 자동으로 바뀌지 않습니다. 새 클라이언트에서 기존 포트를 유지하거나 브라우저 확장 프로그램, 터미널 환경 변수, 개발 도구의 수동 프록시 설정을 각각 변경하세요. 여기의 7890과 7897은 문제 해결을 위한 예시이며 특정 버전의 기본값을 의미하지 않습니다.

netstat -ano | findstr ":7890"
netstat -ano | findstr ":7897"

출력에서 LISTENING 상태인 행을 찾으면 수신 대기 중인 프로세스를 확인할 수 있으며, 마지막 열에 PID가 표시됩니다. 그런 다음 작업 관리자의 「세부 정보」에서 해당 PID를 확인하세요. 컨트롤러 포트와 프록시 포트의 용도는 다릅니다. 예를 들어 설정의 external-controller 값을 브라우저 HTTP 프록시 주소로 사용해서는 안 됩니다.

단축키와 시작 프로그램은 직접 다시 설정

5단계: 마지막으로 TUN과 DNS를 옮기고 단계별로 연결 확인

먼저 시스템 프록시를 확인한 다음 TUN을 활성화하세요. 시스템 프록시는 앱이 프록시 설정을 따를 때만 적용되며, TUN은 가상 네트워크 어댑터와 라우팅을 통해 트래픽을 처리하므로 적용 범위가 다릅니다. 코어, 규칙, DNS, TUN을 한꺼번에 변경하면 문제가 발생했을 때 어느 단계에서 생겼는지 파악하기 어렵습니다.

새 클라이언트의 「설정」에서 필요한 서비스를 설치하거나 활성화하고 안내에 따라 관리자 권한을 승인한 뒤 「TUN 모드」를 켜세요. 기존 클라이언트의 서비스 디렉터리나 가상 네트워크 어댑터 파일을 복사하지 마세요. 마이그레이션 중에는 다른 VPN이나 기존 TUN 서비스가 기본 경로를 동시에 처리하지 않도록 합니다.

DNS 설정은 최종 적용 결과를 확인

기존 환경에서 fake-ip를 사용했다면 새로 적용되는 설정의 dns.enable, dns.enhanced-mode, 필터 목록을 먼저 확인하세요. 구독 파일에 해당 항목이 있다고 해서 클라이언트가 최종적으로 그대로 적용한다고 단정할 수 없습니다. 인터페이스 설정, 전역 오버라이드, 구독 설정이 함께 실제 적용 설정을 구성할 수 있습니다.

mihomo의 TUN에서는 dns-hijack으로 지정된 기존 DNS 트래픽을 가로챌 수 있지만, 브라우저 자체의 암호화 DNS까지 자동으로 처리한다는 뜻은 아닙니다. 브라우저의 “보안 DNS”, 시스템 암호화 DNS, 다른 VPN의 DNS 처리 방식도 따로 확인해야 합니다. 변경 후에도 이전 DNS 결과가 남아 있다면 관련 앱을 종료하고 다시 시도하세요. Windows의 ipconfig /flushdns는 시스템 DNS 캐시만 비우며 모든 앱이나 코어의 캐시를 지우지는 않습니다.

검증 단계확인할 내용판단 기준
설정 로드구독을 선택하고 코어 실행로그에 설정 파싱 오류가 없고 노드와 정책 그룹이 표시됨
시스템 프록시시스템 프록시를 따르는 앱으로 접속연결 페이지에 요청이 표시되고 적용 규칙과 연결 경로가 예상과 일치함
사용자 지정 규칙규칙 적용 대상에 접속다른 규칙보다 먼저 지정한 규칙에 매칭됨
구독 업데이트현재 구독을 한 번 직접 업데이트로컬 오버라이드가 유지되고 정책 그룹 참조가 정상 작동함
TUN 적용원래 시스템 프록시를 사용하지 않던 앱 확인라우팅과 연결 기록이 의도한 대로이며 사내 네트워크에 정상 접속됨
재시작 후 복원클라이언트를 종료하고 다시 시작포트, 서비스, 시작 프로그램, 정책 선택이 예상대로 복원됨

자주 발생하는 마이그레이션 문제와 롤백 순서

구독은 가져왔지만 브라우저에서 웹사이트가 열리지 않음

먼저 코어가 실행 중인지 확인한 다음 시스템 프록시의 주소와 포트를 살펴보세요. 「연결」 페이지에 요청이 전혀 없다면 노드를 바꾸기보다 앱이 시스템 프록시를 사용하는지, 수동 프록시가 여전히 이전 포트를 가리키는지부터 확인하세요. 연결 기록이 있다면 매칭된 규칙과 정책 그룹 선택, 오류 로그를 살펴 연결 경로 문제인지 판단합니다.

노드 지연 시간은 표시되지만 실제 접속은 실패

지연 시간 테스트는 지정된 테스트 대상이 해당 시점에 응답했다는 뜻일 뿐, 모든 웹사이트와 UDP, DNS가 정상이라는 의미는 아닙니다. 직접 연결되어야 하는 대상과 프록시를 거쳐야 하는 대상을 각각 테스트하고 두 요청의 규칙과 연결 경로를 확인하세요. 한 번 측정한 지연 시간만으로 마이그레이션 검증을 끝내지 마세요.

구독을 업데이트한 뒤 규칙이 사라짐

변경 사항을 원격 설정 캐시에 직접 저장했는지, 오버라이드가 다른 구독에만 연결되어 있는지 확인하세요. 병합 순서를 다시 살펴보고 사용자 지정 규칙이 뒤 단계의 배열 교체로 사라지지 않았는지, MATCH 뒤에 배치되지 않았는지 확인합니다. 규칙은 위에서 아래로 순서대로 매칭하므로 위치가 결과에 직접 영향을 줍니다.

CFW로 잠시 되돌리는 순서

  1. 새 클라이언트에서 시스템 프록시와 TUN을 끈 뒤 클라이언트를 종료합니다.
  2. 새 코어가 중지되었고 관련 포트가 더 이상 사용되지 않는지 확인하세요. 두 클라이언트가 시스템 프록시를 번갈아 차지하게 두지 마세요.
  3. 보관해 둔 기존 환경을 실행하고 원래 설정과 트래픽 처리 방식을 복원한 뒤, 새 환경에서 발생한 오류의 구체적인 로그를 기록하세요.
  4. 기록을 바탕으로 새 설정을 수정한 다음 같은 순서로 다시 전환을 진행합니다.

롤백은 단기적인 문제 해결 방법일 뿐, 기존 클라이언트의 지원이 종료된 사실을 바꾸지는 않습니다. 구독 업데이트, 규칙 매칭, DNS, 사내 네트워크 접속, 재시작 후 복원까지 확인한 뒤 기존 시작 프로그램과 백그라운드 서비스를 정리하세요. 시스템 프록시와 TUN의 기본 설정은 사용 안내를 참고하고, mihomo 설정 항목의 의미는 프로토콜 문서와 대조해 확인하세요. 화면에 표시된 이름만으로 코어 동작을 추측하지 마세요.

Clash 다운로드플랫폼 및 클라이언트 선택