1. 설치 전 확인: 클라이언트, 코어, 구독

Windows에서 Clash를 사용하려면 서로 다른 세 가지 구성 요소가 필요합니다. 클라이언트는 인터페이스와 트레이 아이콘, 시스템 설정 진입점을 제공하고, 코어는 설정을 읽어 연결을 처리합니다. 구독이나 로컬 YAML 파일에는 노드, 프록시 그룹, 규칙이 들어 있습니다. 설치가 끝나 프로그램이 실행된다고 해서 사용 가능한 노드가 있거나 브라우저 트래픽이 프록시를 통과하는 것은 아닙니다.

Clash Meta는 이후 mihomo라는 이름으로 개발을 이어가고 있습니다. mihomo 기반 클라이언트는 해당 코어가 지원하는 설정 항목을 사용할 수 있지만, 구형 Clash 코어가 같은 설정을 읽을 수 있는 것은 아닙니다. '지원하지 않는 프록시 유형'이나 '알 수 없는 필드' 오류가 발생하면 Windows를 반복해서 재설치하기보다 구독 형식과 코어 호환성을 먼저 확인하세요.

다운로드 전에 확인할 세 가지

  • 운영체제와 아키텍처: Windows에서 '설정' → '시스템' → '정보'를 열고 '시스템 종류'를 확인하세요. 일반적인 Intel·AMD 64비트 PC에는 x64 버전을 선택합니다. ARM 기기는 클라이언트가 ARM64 패키지를 제공하는지, 해당 버전의 지원 안내가 있는지 확인해야 합니다.
  • 클라이언트와 코어 버전: 설치 후 '정보' 또는 버전 정보 화면에서 각각 확인해 기록하세요. 문제를 문의할 때는 두 버전을 모두 알려야 합니다. '최신 버전'이라고만 적으면 정확한 확인이 어렵습니다.
  • 설정 파일 출처: 제공업체가 발급한 Clash 또는 mihomo 형식의 구독 URL이나 정상적인 YAML 파일을 준비하세요. 계정 관리 페이지 URL은 보통 구독으로 가져올 수 없습니다.

2. 다운로드 및 설치: 일반 프록시부터 실행하고 권한은 나중에 확인

사이트의 설치 파일 페이지에서 Windows용 클라이언트를 선택하고 시스템 요구 사항, 아키텍처, 유지 관리 상태를 확인하세요. 기존 클라이언트가 있다면 시스템 프록시를 끄고 트레이에서 완전히 종료해 새 프로그램과 같은 포트를 사용하지 않도록 합니다.

  1. 설치하거나 압축을 푸세요. 설치 파일은 안내에 따라 설치합니다. 포터블 압축 파일은 먼저 C:\Tools\ClashClient 같은 고정된 폴더에 완전히 압축을 푸세요. 압축 프로그램 창에서 주 프로그램을 바로 실행하지 마세요.
  2. 일반 모드로 실행하세요. 첫 실행에서는 시스템 프록시만 테스트하고 TUN은 아직 켜지 마세요. 일반적인 로컬 프록시를 사용할 때는 인터페이스를 항상 관리자 권한으로 실행할 필요가 없습니다.
  3. 트레이 아이콘과 코어를 확인하세요. 창을 닫아도 프로그램이 알림 영역에서 계속 실행될 수 있습니다. 로그에서 설정 불러오기 실패, 포트 바인딩 실패, 코어의 반복 종료 여부를 확인하세요.
  4. 자동 실행은 나중에 설정하세요. 구독, 규칙 모드, 웹사이트 접속을 모두 확인한 뒤 'Windows 시작 시 실행'이나 '시작할 때 시스템 프록시 켜기'를 활성화하세요. 문제를 찾을 때 확인해야 할 변수를 줄일 수 있습니다.

SmartScreen 및 보안 프로그램 차단

파일을 다운로드한 뒤 'Windows의 PC 보호' 메시지가 표시되더라도 이는 평판 또는 위험 경고일 뿐, 그 자체로 파일의 안전성을 판단할 수는 없습니다. 먼저 다운로드 출처, 파일 속성의 게시자 정보, 보안 프로그램이 표시한 구체적인 탐지명을 확인하세요. 출처를 확인할 수 없다면 실행을 중단하세요. 실시간 보호를 끄는 것을 설치 절차로 삼지 마세요.

프로그램을 실행한 뒤 파일이 사라졌다면 'Windows 보안' → '바이러스 및 위협 방지' → '보호 기록'에서 처리된 항목과 이유를 확인하세요. 회사 PC는 조직 정책으로 프로그램 실행이나 드라이버 설치가 제한될 수도 있으니 관리자에게 확인을 요청하세요. 파일 출처와 위험을 확인한 경우에만 해당 파일에 대한 조치를 고려하고, 다운로드 폴더 전체를 제외 항목으로 설정하지 마세요.

3. 구독 가져오기: 다운로드한 뒤 설정을 활성화해야 합니다

클라이언트의 '구독', '설정' 또는 'Profiles' 페이지에서 '추가', '가져오기' 또는 URL 입력란을 사용해 구독을 등록하세요. 메뉴 구성은 클라이언트마다 다르지만, '설정 가져오기'와 '현재 설정으로 선택'을 모두 완료해야 합니다. 목록에 이름이 표시되어도 코어가 해당 설정을 사용하고 있다는 뜻은 아닙니다.

  1. 구독 URL 전체를 붙여 넣고 앞뒤 공백이 없는지 확인하세요. 기존 쿼리 매개변수는 그대로 유지합니다.
  2. 다운로드 또는 업데이트를 실행하고 결과 상태를 확인하세요. 성공하면 노드와 프록시 그룹이 표시되는지 살펴봅니다.
  3. 가져온 설정을 활성화하고 로그에서 로딩이 완료됐는지 확인하세요.
  4. '프록시' 또는 '프록시 그룹' 페이지를 열어 규칙에서 사용하는 주요 프록시 그룹에 사용 가능한 노드가 선택됐는지, 또는 설정에 정의된 자동 선택 그룹이 선택됐는지 확인하세요.

구독 오류는 응답 내용에 따라 원인을 나눠 확인하세요

증상우선 확인할 항목
HTTP 401 또는 403토큰 유효성, 계정 권한, 제공업체의 접속 정책을 확인하세요. 응답 내용을 살펴보고, 재설치로 해결하려 하지 마세요.
HTTP 404URL이 완전한지, 제공업체가 구독 주소를 변경했는지 확인하세요.
시간 초과 또는 도메인 이름 확인 실패로컬 네트워크와 구독 도메인 접속 여부를 확인하고, 현재 다운로드 요청이 기존 프록시 설정의 영향을 받는지도 살펴보세요.
YAML 파싱 실패응답이 로그인 페이지나 오류 페이지인지, 또는 들여쓰기가 손상된 설정 파일인지 확인하세요.
지원하지 않는 프록시 유형구독 형식이 현재 코어에 맞는지, 클라이언트에 포함된 코어가 사용된 프로토콜을 지원하는지 확인하세요.

4. 규칙 모드와 시스템 프록시: 각각 설정하고 따로 확인

처음 사용할 때는 '규칙 / Rule' 모드를 권장합니다. 규칙은 코어에 전달된 요청을 직접 연결, 프록시 그룹, 차단 중 어디로 보낼지 결정합니다. '전역 / Global'은 일반적으로 요청을 전역 정책에 따라 처리하고, '직접 연결 / Direct'는 원격 프록시 노드를 거치지 않습니다. 모드를 바꾸면 코어의 처리 방식만 달라지며, 모든 앱이 코어로 요청을 보내도록 자동 설정되지는 않습니다.

클라이언트에서 '시스템 프록시 / System Proxy'를 켠 다음 Windows의 '설정' → '네트워크 및 인터넷' → '프록시'에서 수동 프록시 상태를 확인하세요. 클라이언트는 서버 주소로 127.0.0.1을, 포트에는 현재 HTTP 또는 mixed 수신 대기 포트를 설정하는 경우가 많습니다. 일부 클라이언트는 다른 방식으로 프록시에 연결하므로 클라이언트 안내를 확인하세요. 충돌하는 수동 설정을 추가로 적용하지 마세요.

전체 연결 경로에서 포트 번호를 일치시키세요

예를 들어 현재 설정이 mixed-port: 7890이라면 명시적 HTTP 테스트 주소는 http://127.0.0.1:7890입니다. mixed 포트는 HTTP와 SOCKS 프록시 연결을 모두 받을 수 있지만, SOCKS 전용 포트는 Windows 수동 HTTP 프록시 포트로 사용할 수 없습니다. 관리 인터페이스인 external-controller도 브라우저 프록시 진입점이 아닙니다.

  • 먼저 수신 대기 상태를 확인하세요: 코어가 대상 포트에서 실제로 실행 중인지, 시스템 프록시 주소가 해당 포트와 일치하는지 확인합니다.
  • 다음으로 트래픽을 확인하세요: Edge 또는 Chrome에서 새 페이지를 열고 클라이언트의 '연결' 목록에 해당 요청이 표시되는지 살펴봅니다.
  • 마지막으로 외부 연결을 확인하세요: 해당 연결에 적용된 규칙, 프록시 그룹, 최종 노드를 확인합니다. 규칙에 따라 직접 연결되는 사이트가 로컬 네트워크로 접속되는 것은 정상입니다.

브라우저 확장 프로그램, 조직 정책, 앱 내부의 프록시 설정이 시스템 설정을 덮어쓸 수 있습니다. Firefox에서는 '설정' → '일반' → '네트워크 설정'에서 '시스템 프록시 설정 사용'을 선택했는지도 확인하세요. 따라서 '시스템 프록시가 켜져 있음'이 '모든 프로그램이 프록시를 사용함'을 뜻하지는 않습니다.

5. 첫 설정 확인: 포트, 노드, 앱 문제 구분하기

먼저 PowerShell에서 로컬 포트를 확인한 뒤 명시적 프록시 요청을 테스트하세요. 아래 명령은 mixed 포트 7890을 예로 사용합니다. 접속 주소는 테스트 방법을 보여 주기 위한 것으로, 결과는 대상 사이트와 네트워크 접속 가능 여부에 따라 달라집니다. 예시 결과는 실측값이 아니며 특정 밀리초 수치를 보장하지 않습니다.

PowerShell · 로컬 포트 및 명시적 프록시 테스트
Test-NetConnection 127.0.0.1 -Port 7890
curl.exe -I --connect-timeout 10 --max-time 20 --proxy http://127.0.0.1:7890 https://example.com/

TcpTestSucceeded: True는 TCP 포트에 연결할 수 있다는 뜻일 뿐 원격 노드가 정상이라는 의미는 아닙니다. 두 번째 명령은 프록시를 명시해 '앱이 Windows 시스템 프록시를 사용하는지'라는 변수를 제외합니다. Windows PowerShell에서 curl 별칭으로 인해 매개변수 동작이 달라지는 일을 피하기 위해 curl.exe를 사용합니다.

  • 로컬 포트에 연결할 수 없음: 코어가 실행 중인지, 포트 번호를 잘못 입력하지 않았는지 확인하세요. 설정 불러오기 또는 수신 대기 오류부터 해결합니다.
  • 포트에는 연결되지만 프록시 요청은 실패함: 선택한 노드, 적용된 규칙, 인증 정보, DNS, 대상 주소를 확인하고 같은 시점의 로그를 살펴보세요.
  • 명시적 프록시는 성공하지만 브라우저는 실패함: Windows 프록시 설정, 브라우저 확장 프로그램, 브라우저 자체의 네트워크 설정을 집중적으로 확인하세요.
  • 웹페이지는 열리지만 연결 목록에 기록이 없음: 직접 연결, 브라우저 캐시 또는 다른 프록시를 사용했을 수 있습니다. 새 요청을 보내 다시 확인하세요.

HTTPS 요청에서 출력의 200 Connection established는 HTTP CONNECT 터널이 만들어졌다는 뜻일 뿐입니다. 이후 TLS 핸드셰이크와 대상 서버의 응답도 확인해야 합니다. 대상에서 403을 반환한다고 프록시 포트가 작동하지 않는 것은 아닙니다. 전체 출력을 살펴 원격 사이트의 거부인지 프록시 연결 실패인지 판단하세요.

6. 설치 중 자주 겪는 문제: 포트 충돌, 권한, 설정 덮어쓰기

7890 포트 사용 중: 프로세스를 확인하고 모르는 서비스를 종료하지 마세요

로그에 address already in use 또는 바인딩 실패가 표시되면 PowerShell에서 해당 포트를 사용하는 프로세스를 조회하세요. 아래 명령은 정보만 확인하며 프로그램을 종료하지 않습니다. 자세한 프로세스 정보를 확인하려면 관리자 권한이 필요할 수 있습니다.

PowerShell · 포트 사용 프로세스 확인
Get-NetTCPConnection -State Listen -LocalPort 7890 |
  Select-Object LocalAddress, LocalPort, OwningProcess

Get-Process -Id (Get-NetTCPConnection -State Listen -LocalPort 7890).OwningProcess

기존 프록시 프로그램이 원인임을 확인했다면 정상적으로 종료하세요. 해당 포트를 계속 사용해야 한다면 현재 클라이언트의 포트 설정이나 영구 재정의 설정에서 7891처럼 비어 있는 포트로 변경할 수 있습니다. Windows 시스템 프록시와 명시적 테스트 명령의 포트도 함께 바꾸세요. 구독 관리 클라이언트는 업데이트할 때 기존 YAML을 덮어쓸 수 있으므로 캐시 파일을 직접 수정해도 오래 유지되지 않는 경우가 많습니다.

권한 부족: 파일 쓰기와 TUN 서비스 권한을 구분하세요

'설정을 저장할 수 없음' 오류는 폴더 권한, 읽기 전용 파일, 보안 프로그램의 쓰기 차단 때문에 발생할 수 있습니다. 먼저 오류에 표시된 실제 경로를 확인하세요. TUN 서비스 설치, 가상 네트워크 어댑터 생성, 경로 변경에는 관리자 권한이 필요할 수 있습니다. 시스템 프록시가 작동한다면 일반적인 웹 접속을 위해 TUN을 무리하게 설치할 필요는 없습니다. 시스템 프록시를 따르지 않는 앱까지 처리해야 할 때 클라이언트 문서에 따라 서비스를 설치하고 권한을 확인하세요.

컨트롤 인터페이스 오류: 9090을 트래픽 포트로 사용하지 마세요

external-controller는 인터페이스에서 코어를 관리하는 용도이며, 흔히 127.0.0.1:9090으로 설정합니다. 이 포트가 충돌하면 인터페이스에서 노드나 연결 목록을 가져오지 못할 수 있지만, 포트를 바꿔도 mixed-port가 변경되는 것은 아닙니다. 로컬에서만 수신하도록 유지하고 접근 키를 설정하세요. 문제를 해결하려고 모든 네트워크 인터페이스에 공개하지 마세요.

7. 프록시 미작동과 종료 후 인터넷 끊김: 영향 범위에 따라 확인

브라우저는 정상인데 터미널, 게임 또는 다른 앱에서 문제가 생기면 먼저 해당 앱이 시스템 프록시를 지원하는지 확인하세요. 일부 앱은 자체 네트워크 스택을 사용하며, UDP 트래픽은 Windows HTTP 프록시 설정만으로 처리할 수 없습니다. 터미널 도구가 자체 매개변수나 프록시 환경 변수만 읽는 경우도 있습니다. netsh winhttp show proxy에 표시되는 WinHTTP 설정은 Windows 설정 화면의 사용자 프록시와 다릅니다.

TUN은 다음 단계에서 선택할 수 있는 트래픽 처리 방식이지 초기 설정의 필수 항목은 아닙니다. 가상 네트워크 어댑터와 라우팅을 통해 설정 범위에 해당하는 트래픽을 처리하며, 실제 동작은 라우팅, DNS, 제외 항목, 코어 지원 여부에 따라 달라집니다. 활성화 전에 이 문서의 명시적 프록시 테스트를 먼저 완료하세요. 기본 노드가 작동하지 않는다면 TUN으로 바꿔도 노드 문제가 자동으로 해결되지는 않습니다.

프로그램을 종료한 뒤 인터넷에 연결되지 않음

  1. 클라이언트를 다시 열고 '시스템 프록시'를 끈 다음 정상적으로 종료하세요. Windows 프록시 설정이 원래 상태로 돌아왔는지 확인합니다.
  2. 클라이언트가 실행되지 않는다면 Windows의 '설정' → '네트워크 및 인터넷' → '프록시'에서 이미 중지된 로컬 포트를 가리키고 있지 않은지 확인하세요.
  3. 개인 기기에서는 해당 클라이언트가 설정한 잔여 수동 프록시임을 확인한 뒤 제거할 수 있습니다. 회사 네트워크에서 공용 프록시나 설정 스크립트를 사용한다면 기존 값을 기록하고 관리자에게 문의하세요.
  4. 브라우저를 다시 열어 테스트하세요. 그래도 연결되지 않으면 다른 VPN, 네트워크 필터링 프로그램, DNS를 확인하세요. 처음부터 모든 네트워크 설정을 초기화하지 마세요.

추가 문의 시 Windows 버전, 클라이언트 버전, 코어 버전, 현재 모드, 수신 대기 포트, 오류가 발생한 시간대의 민감 정보를 가린 로그를 함께 제공하세요. 한 번에 변수 하나만 바꾸고 같은 테스트를 반복해야 구독, 노드, 시스템 설정, 특정 앱 중 어디에서 문제가 생겼는지 파악할 수 있습니다.