Clash란 무엇이며 무엇을 하는 도구일까?

Clash는 네트워크 연결을 받아 프록시 서버로 전달하거나 직접 연결하고, 규칙에 따라 연결 경로를 선택하는 프록시 소프트웨어 계열의 이름으로 널리 쓰입니다. 실제로는 하나의 앱 이름만 가리키지 않습니다. 화면에서 설정을 관리하는 클라이언트, 연결과 규칙을 처리하는 코어, 서버 정보를 제공하는 구독 서비스가 함께 작동하는 경우가 많습니다. 따라서 앱을 설치했다고 해서 곧바로 사용할 수 있는 것은 아니며, 코어와 설정, 연결할 서버가 필요합니다.

예를 들어 브라우저가 웹사이트에 연결하면, 설정에 따라 요청이 운영체제의 시스템 프록시나 TUN 네트워크 경로를 거쳐 코어로 전달됩니다. 코어는 도메인이나 IP, 규칙 모드 등을 확인해 직접 연결할지, 프록시 노드를 이용할지 결정합니다. 여기서 DIRECT는 일반 네트워크로 직접 연결하는 정책이고, 프록시 정책은 설정된 노드나 정책 그룹을 통해 연결합니다. 그러므로 Clash를 켜는 것과 모든 앱의 트래픽이 자동으로 프록시를 통과하는 것은 같은 뜻이 아닙니다.

  • 클라이언트: 설정 가져오기, 연결 상태 표시, 시스템 프록시 전환 같은 작업을 제공하는 데스크톱·모바일 앱입니다.
  • 코어: 설정을 읽고 DNS, 규칙 매칭, 프록시 연결을 처리하는 실행 프로그램입니다. 같은 클라이언트라도 선택된 코어와 버전에 따라 지원 기능이 다를 수 있습니다.
  • 노드: 프록시 연결에 사용할 서버와 프로토콜 설정을 말합니다. 주소, 포트, 암호나 인증 정보 등이 포함될 수 있습니다.
  • 구독: 노드 또는 전체 설정을 전달하는 주소나 파일입니다. 노드 목록을 정기적으로 갱신하는 방식도 있지만, 모든 구독이 같은 형식이나 품질을 제공하지는 않습니다.

이 구성 요소를 분리해서 이해하면 문제를 찾기 쉬워집니다. 앱이 실행되지 않는 문제는 클라이언트나 권한과 관련될 수 있고, 설정을 불러오지 못하는 문제는 구독 형식이나 네트워크를 확인해야 합니다. 설정이 정상적으로 읽혔는데 연결이 실패한다면 노드 주소, 인증 정보, 지원 프로토콜, 규칙 결과를 차례로 확인하세요.

클라이언트·코어·노드·구독의 차이

초보자가 자주 혼동하는 부분은 “Clash 앱을 설치했으니 서버도 포함되어 있다”는 생각입니다. 클라이언트는 대개 관리 화면과 실행 기능을 제공할 뿐, 사용할 수 있는 노드까지 항상 포함하지는 않습니다. 구독 서비스를 별도로 이용한다면 해당 서비스가 제공하는 설정을 클라이언트로 가져와야 하고, 코어가 설정에 적힌 프로토콜을 실제로 지원하는지도 맞아야 합니다.

구독은 크게 노드 목록을 전달하는 형식과 코어가 바로 읽을 수 있는 전체 설정 형식으로 나눠 생각할 수 있습니다. 노드 목록만 있는 경우 클라이언트가 규칙과 DNS 설정을 추가하거나 별도의 기본 설정과 결합할 수 있습니다. 반대로 구독이 완성된 설정을 제공하더라도 클라이언트의 오버라이드나 설정 병합 기능이 값을 덮어쓸 수 있습니다. 화면에 보이는 구독 원문과 코어에 전달되는 최종 설정이 항상 같지는 않습니다.

  • 구독 갱신: 공급자가 노드 정보를 바꾸면 클라이언트에서 갱신할 수 있습니다. 갱신 전에 사용자 지정 규칙이나 오버라이드가 유지되는지 확인하세요.
  • 프로토콜 호환성: 설정에 적힌 프로토콜과 전송 옵션을 현재 코어가 지원해야 합니다. 구독 이름에 ‘Clash’가 들어 있어도 모든 코어에서 모든 항목이 동작한다는 보장은 없습니다.
  • 정책 그룹: 여러 노드 가운데 하나를 고르거나 자동 선택을 구성하는 설정입니다. 규칙이 정책 그룹을 가리켜도 그룹에서 사용할 노드를 선택하지 않았거나 연결할 수 없다면 요청은 실패할 수 있습니다.

다운로드 전에 클라이언트와 출처 확인하기

이름이 비슷한 앱이 여러 개 있을 수 있으므로 검색 광고나 파일 공유 게시물의 첫 번째 결과만 보고 설치하지 마세요. 공식 배포처나 신뢰할 수 있는 프로젝트 안내 페이지에서 현재 배포 상태, 운영체제 지원, 프로세서 종류를 확인하는 것이 좋습니다. Windows에서는 설치 파일과 압축형 파일을 구분하고, macOS에서는 Apple Silicon과 Intel 기기용 파일이 나뉘는지 확인하세요. Android에서는 기기 아키텍처와 설치 파일 형식을 함께 살펴야 합니다.

  • 프로젝트 이름과 배포처가 서로 일치하는지 확인하고, 광고성 다운로드 버튼이나 제3자 설치 도우미는 피합니다.
  • 운영체제와 CPU 아키텍처에 맞는 파일을 고릅니다. 파일 이름만 비슷하고 다른 플랫폼용인 설치 파일은 실행되지 않거나 오류를 낼 수 있습니다.
  • 운영체제의 게시자 확인, 서명 정보 또는 해시값이 제공된다면 배포처의 안내와 대조합니다. 확인할 자료가 없다면 임의의 해시값을 검색 결과와 비교해 진위를 단정하지 마세요.
  • 설치 과정에서 무관한 브라우저 확장, 최적화 도구, 추가 프로그램을 함께 설치하라고 요구하면 중단하고 배포 출처를 다시 확인합니다.
  • 설치 후 클라이언트의 코어 정보나 시작 로그에서 코어 이름과 버전을 확인합니다. 앱 버전만 기록해서는 설정 호환성을 판단하기 어려울 수 있습니다.

보안 프로그램이 파일을 경고했다고 해서 무조건 안전하거나 위험하다고 결론 내릴 수는 없습니다. 경고 문구와 파일 출처, 게시자 정보를 함께 확인하고, 출처를 검증할 수 없다면 실행을 보류하세요. 관리자 권한은 TUN 드라이버나 시스템 네트워크 설정 등 필요한 작업에만 허용하는 편이 안전합니다. 모든 앱이 요구한다는 이유만으로 지속적인 높은 권한을 허용하지 마세요.

플랫폼별 다운로드 항목은 다운로드 페이지에서 확인할 수 있습니다. 처음 설치하는 과정과 기본 설정 흐름은 시작 튜토리얼을 참고하되, 사용 중인 클라이언트와 코어의 메뉴 이름이 다르면 현재 화면의 안내를 우선하세요.

첫 설정을 안전하게 진행하는 순서

처음부터 규칙, DNS, TUN을 한꺼번에 바꾸기보다 한 단계씩 적용하세요. 아래 순서는 기존 네트워크 상태를 복구하기 쉽도록 최소 기능부터 확인하는 방법입니다. 메뉴 이름은 Clash Verge, Clash Verge Rev, Clash for Android 등 클라이언트와 버전에 따라 달라질 수 있지만, 확인할 상태는 비슷합니다.

  1. 기존 상태를 기록합니다. 현재 시스템 프록시가 켜져 있는지, 다른 VPN이나 프록시 앱이 실행 중인지 확인하세요. 기존 YAML 파일이나 클라이언트 설정을 백업하고, 충돌을 피하려면 사용하지 않는 네트워크 도구는 잠시 중지합니다.
  2. 클라이언트와 코어 정보를 확인합니다. 설정 또는 정보 화면에서 앱 버전과 실제 실행 코어를 기록하세요. 구독 안내에 요구되는 코어 기능이 있다면 그 코어가 선택되었는지도 확인합니다.
  3. 구독을 추가합니다. 공급자가 제공한 주소를 공식 클라이언트의 구독 가져오기 화면에 입력합니다. 주소를 메신저에 공개하거나 임의의 변환 사이트에 붙여 넣지 마세요. 가져오기가 실패하면 주소를 재입력하기 전에 네트워크 연결, 만료 여부, 공급자의 설정 형식을 확인합니다.
  4. 설정 검사 결과를 확인합니다. 클라이언트에 구성 검사나 코어 시작 로그가 있다면 오류를 살펴보세요. YAML 파싱 실패와 원격 노드 연결 실패는 서로 다른 문제입니다. 알 수 없는 필드가 있다는 경고도 코어 버전과 설정 작성자를 확인해야 합니다.
  5. 노드 하나를 선택해 연결을 시험합니다. 연결 테스트 결과만으로 모든 서비스가 정상이라고 단정하지 말고, 브라우저에서 확인할 사이트 한두 개를 정해 시험합니다. 연결 목록에서 대상 도메인, 매칭 규칙, 선택된 정책을 확인하면 문제가 어느 단계에 있는지 좁히기 쉽습니다.
  6. 필요한 경우에만 시스템 프록시를 켭니다. 브라우저처럼 시스템 프록시를 따르는 앱부터 확인하세요. 사용하지 않는 앱까지 처리해야 할 이유가 분명할 때 TUN을 검토하고, 권한 요청과 DNS 동작, 다른 VPN과의 충돌 가능성을 먼저 확인합니다.
클라이언트 확인 → 구독 가져오기 → 코어 설정 검사 → 노드 연결 시험 → 시스템 프록시 확인 → 필요 시 TUN 검토

테스트 중 웹사이트 하나가 열리지 않는다면 여러 설정을 동시에 바꾸지 마세요. 해당 요청이 연결 목록에 나타나는지, 규칙 결과가 DIRECT인지 프록시 정책인지, 선택된 노드가 연결 가능한지 순서대로 살펴봅니다. 설정을 수정했다면 한 번에 한 항목만 바꾸고 같은 요청으로 결과를 비교하세요. 이렇게 해야 어떤 변경이 효과가 있었는지 되돌아볼 수 있습니다.

시스템 프록시와 TUN은 다른 연결 경로

시스템 프록시는 운영체제의 프록시 설정을 이용하는 앱에 연결 정보를 전달합니다. 브라우저나 일부 데스크톱 앱은 이 설정을 따르지만, 모든 프로그램이 시스템 프록시를 따르는 것은 아닙니다. 시스템 프록시를 켠 상태에서 브라우저가 프록시를 사용하더라도 명령줄 도구, 게임, 일부 앱의 연결까지 같은 경로를 이용한다고 보장할 수 없습니다.

TUN은 가상 네트워크 인터페이스를 사용해 시스템의 IP 트래픽을 코어로 전달하는 방식입니다. 시스템 프록시를 따르지 않는 앱의 연결을 처리하는 데 도움이 될 수 있지만, 운영체제 권한이나 드라이버, 라우팅, DNS 설정이 필요할 수 있습니다. TUN을 켰다고 자동으로 모든 연결이 프록시를 통과하는 것은 아닙니다. 규칙에서 직접 연결로 분류될 수 있고, 기기나 운영체제의 예외 트래픽이 남을 수도 있습니다.

  • 브라우저만 우선 확인할 때: 시스템 프록시를 사용하고 연결 목록에서 요청이 코어에 들어오는지 확인합니다.
  • 프록시를 따르지 않는 앱도 처리해야 할 때: 현재 클라이언트의 TUN 지원과 권한 요구 사항을 확인한 뒤, 필요한 범위에서 시험합니다.
  • 연결이 꼬였을 때: 시스템 프록시를 끄고 TUN을 중지한 다음, 다른 VPN이나 프록시가 네트워크를 동시에 제어하는지 확인합니다. 한 가지 경로씩 다시 켜면 충돌 원인을 찾기 쉽습니다.

TUN이나 DNS를 설정한 뒤에는 원래 상태로 돌아가는 방법도 미리 알아 두세요. 클라이언트 종료 후 시스템 프록시가 자동으로 해제되는지 확인하고, 문제가 생기면 클라이언트의 연결을 중단한 뒤 운영체제의 프록시 설정을 직접 확인합니다. 네트워크 설정을 초기화하기 전에 현재 값과 변경 사항을 기록하면 복구할 때 도움이 됩니다.

일상적으로 사용할 때의 점검 기준

프록시 도구는 네트워크 경로를 관리하지만, 익명성이나 보안을 자동으로 보장하지는 않습니다. 실제 연결은 선택한 서버, 앱의 암호화 방식, 웹사이트의 HTTPS 사용 여부, 운영체제와 클라이언트의 상태에 영향을 받습니다. 프록시 연결이 성공했다는 표시만으로 계정 보안이나 전체 기기 트래픽이 보호된다고 판단하지 마세요.

  • 제공자를 확인합니다. 구독 제공자의 운영 정보, 갱신·환불 조건, 지원 정책을 읽고 과도한 권한이나 불필요한 개인정보를 요구하는지 살펴보세요. 알 수 없는 설정 파일에 실행 스크립트나 낯선 확장 옵션이 포함되어 있다면 내용을 확인하기 전 적용하지 않습니다.
  • 구독과 로그를 보호합니다. 구독 주소, 노드 비밀번호, 외부 제어 인터페이스의 비밀 키는 공개하지 마세요. 문제 해결을 위해 로그를 공유할 때도 토큰과 개인 식별 정보를 삭제합니다.
  • 설정을 백업하고 변경을 추적합니다. 구독을 갱신하거나 규칙을 편집하기 전에 현재 설정을 보관하세요. 원인을 찾기 어려워질 수 있으므로 규칙, DNS, TUN을 동시에 수정하지 않습니다.
  • 사용하지 않을 때 연결을 정리합니다. 앱을 닫았는데 인터넷 연결이 계속 실패하면 시스템 프록시나 TUN 상태가 남았는지 확인합니다. 공용 컴퓨터에서는 작업이 끝난 뒤 계정 정보와 구독 설정을 제거할지도 검토하세요.