설치 전에 클라이언트·시스템·설정을 확인하세요
“Clash”는 보통 규칙 기반 프록시 코어, 설정 형식, 그리고 여러 GUI 클라이언트를 함께 가리킵니다. 원본 Clash 코어는 이미 유지 관리가 중단되었으며, 현재 데스크톱 클라이언트에서 흔히 호환되는 코어는 Clash Meta, 즉 mihomo입니다. 클라이언트마다 메뉴 이름은 다를 수 있지만 초기 설정은 설정 파일, 프록시 모드, 시스템 프록시, TUN이라는 네 가지 항목을 중심으로 진행됩니다.
다운로드하기 전에 운영체제 아키텍처를 확인하세요. Windows 10 22H2와 Windows 11의 일반적인 장치는 보통 x64를 선택합니다. Snapdragon 같은 ARM 프로세서를 사용하는 Windows 장치는 arm64를 선택합니다. Intel Mac은 x64 또는 amd64를, Apple M1·M2·M3·M4 시리즈는 arm64를 선택합니다. Linux에서는 amd64와 arm64뿐 아니라 deb, rpm, AppImage 등 패키지 형식도 구분해야 합니다.
첫 실행 전에 준비할 항목
- 현재 시스템과 프로세서 아키텍처에 맞는 클라이언트 설치 패키지
- 사용 가능한 Clash 설정 파일. 보통 구독 주소나 YAML 파일입니다.
- 앱 설치, 시스템 프록시 설정 또는 TUN 가상 네트워크 인터페이스 생성에 필요한 관리자 권한
- 최초 구독 다운로드와 노드 테스트를 진행할 수 있는 인터넷 연결
5개 플랫폼의 설치 방식 차이
| 플랫폼 | 일반적인 설치 형식 | 첫 실행 시 확인할 사항 |
|---|---|---|
| Windows | EXE, MSI 또는 포터블 압축 파일 | 방화벽 액세스를 허용하고 시스템 프록시 설정 권한을 확인합니다 |
| macOS | DMG、PKG | “응용 프로그램”으로 드래그한 뒤 안내에 따라 네트워크 확장을 승인합니다 |
| Linux | deb、rpm、AppImage | 데스크톱 세션, 트레이 지원 및 관리자 권한을 확인합니다 |
| Android | APK | 현재 출처의 앱 설치를 허용하고 VPN 연결 요청을 승인합니다 |
| iOS / iPadOS | App Store 클라이언트 | VPN 설정 추가를 승인하고 설정 출처를 신뢰할 수 있는지 확인합니다 |
순서대로 구독 가져오기와 설정 업데이트를 완료하세요
설치가 끝났다고 바로 TUN을 켜거나 DNS와 포트를 동시에 변경하지 마세요. 먼저 설정을 가져온 뒤 클라이언트가 프록시 노드, 프록시 그룹, 규칙을 정상적으로 파싱하는지 확인해야 합니다. 그래야 문제가 발생했을 때 원인이 구독인지, 노드인지, 시스템 연결 가로채기인지 구분할 수 있습니다.
방법 1: 구독 주소로 가져오기
- 전체 구독 주소를 복사하고 시작 부분이
https://인지 확인하세요. 끝의 매개변수도 빠뜨리지 마세요. - 클라이언트에서 “설정” 또는 “Profiles” 페이지로 이동합니다.
- “새 구독 만들기”, “URL에서 가져오기” 또는 유사한 메뉴를 선택합니다.
- 주소를 붙여넣고 알아보기 쉬운 이름을 지정한 다음 다운로드 또는 저장을 실행합니다.
- 설정 목록에 업데이트 시간, 노드 수 또는 파일 크기가 표시될 때까지 기다립니다.
- 방금 가져온 설정을 선택해 현재 활성 설정으로 지정합니다.
GUI 클라이언트마다 경로가 조금씩 다릅니다. 일반적인 데스크톱 경로는 「설정」→「새로 만들기」→「URL」이며, Android에서는 보통 「설정」→오른쪽 상단 “+”→「URL에서 가져오기」로 이동합니다. “프록시 그룹”과 “구독 설정”이 함께 표시된다면 처음에는 전체 구독 설정을 선택하세요. 프록시 그룹만으로는 규칙, DNS, 프록시 그룹 정의가 포함되지 않는 경우가 많습니다.
방법 2: 로컬 YAML 파일 가져오기
.yaml 또는 .yml 파일이 있다면 「설정」→「로컬 파일 가져오기」에서 선택할 수 있습니다. 문서 편집기로 YAML을 다시 저장하지 마세요. 들여쓰기, 콜론 뒤의 공백, UTF-8 인코딩이 모두 파싱에 영향을 줍니다. 최상위 설정에는 일반적으로 프록시, 프록시 그룹, 규칙이 포함되며, mihomo 확장 기능을 사용할 때는 rule-providers, tun, dns도 포함될 수 있습니다.
mixed-port: 7890
mode: rule
allow-lan: false
log-level: info
proxies:
- name: Example
type: socks5
server: 127.0.0.1
port: 1080
proxy-groups:
- name: Proxy
type: select
proxies:
- Example
- DIRECT
rules:
- MATCH,Proxy
위 조각은 구조 설명용일 뿐 실제 구독을 대신하지 않습니다. mixed-port: 7890은 HTTP와 SOCKS 인바운드가 7890 포트를 함께 사용한다는 뜻이며, 실제 포트는 클라이언트의 현재 설정을 따릅니다. 일부 클라이언트는 7890과 7891을 분리해 사용하거나 사용 중이지 않은 포트를 무작위로 선택할 수도 있습니다.
가져온 직후 확인할 세 가지 항목
- 설정 상태가 404, 시간 초과, 파싱 실패 또는 빈 내용이 아닌 성공으로 표시되어야 합니다.
- “프록시” 페이지에 프록시 그룹이 표시되고, 그룹 안에 최소한 DIRECT와 선택 가능한 노드 하나가 있어야 합니다.
- 지연 시간 테스트를 한 번 수동으로 실행하세요. 수십 밀리초에서 수백 밀리초가 나온다는 것은 테스트 연결이 도달 가능하다는 뜻일 뿐, 모든 웹사이트에 접속할 수 있다는 의미는 아닙니다.
규칙 모드·전체 모드·직접 연결 모드 선택하기
설정을 사용할 수 있게 되면 “프록시” 또는 “Proxies” 페이지에서 모드를 선택합니다. 일반적인 Rule, Global, Direct는 각각 규칙 기반 분기, 모든 연결을 하나의 프록시 정책으로 전달, 전체 직접 연결을 뜻합니다. 처음에는 규칙 모드를 선택한 다음 프록시 그룹에서 지연 시간이 정상인 노드를 하나 고르는 것이 좋습니다.
규칙 모드는 일상적인 사용에 적합합니다
규칙 모드는 도메인, IP, 프로세스 또는 규칙 세트에 따라 연결 경로를 결정합니다. 예를 들어 로컬 네트워크 주소는 직접 연결하고, 지정한 도메인은 프록시 그룹으로 보내며, 나머지 트래픽은 마지막 MATCH 규칙으로 처리할 수 있습니다. 규칙은 위에서 아래로 매칭되고 일치하면 검색을 중단하므로, 구체적인 규칙을 포괄적인 규칙보다 앞에 배치해야 합니다.
- Rule: 설정에 정의된 규칙에 따라 트래픽을 분기하며 장기간 활성화하기 좋습니다.
- Global: 클라이언트가 가로챈 모든 연결을 전역 프록시 그룹으로 보내며, 규칙 누락을 짧게 점검할 때 유용합니다.
- Direct: 가로챈 연결도 프록시 노드를 거치지 않고 직접 접속하며, 문제가 노드 때문에 발생했는지 확인할 때 적합합니다.
“전체 모드”라고 해서 클라이언트가 시스템의 모든 트래픽을 자동으로 가로채는 것은 아닙니다. 앱이 Clash를 거치는지는 시스템 프록시, 앱 자체의 프록시 설정 또는 TUN 모드에 따라 달라집니다. 브라우저가 시스템 프록시를 따르는 경우에는 보통 바로 가로챌 수 있지만, 일부 게임·명령줄 프로그램·독립 네트워크 스택을 사용하는 소프트웨어는 시스템 프록시를 우회할 수 있습니다.
먼저 프록시 그룹을 고르고, 그다음 노드를 선택하세요
구독 설정에서는 “노드 선택”, “자동 선택”, “장애 조치” 같은 프록시 그룹을 서로 중첩하는 경우가 많습니다. 수동 그룹은 사용자가 노드를 선택해야 합니다. URL-Test 그룹은 테스트 주소와 간격에 따라 자동으로 선택하고, Fallback 그룹은 일반적으로 목록에서 처음으로 사용 가능한 노드를 우선 사용합니다. 노드 지연 시간은 정상인데 웹페이지가 열리지 않는다면 최종 적용된 프록시 그룹이 여전히 DIRECT로 설정되어 있지 않은지 확인하세요.
연결 기록으로 매칭 결과 확인하기
대부분의 클라이언트는 「연결」 또는 「Connections」 페이지에서 대상 도메인, 업로드·다운로드량, 매칭된 규칙, 아웃바운드 경로를 보여 줍니다. 테스트 웹페이지를 연 뒤 새 연결을 확인하세요. DIRECT로 표시되면 직접 연결 규칙이 적용된 것이고, “프록시 그룹 → 노드”로 표시되면 프록시 경로가 작동하는 것입니다. 이 결과가 노드를 계속 바꿔 보는 것보다 트래픽 분기 문제를 찾는 데 더 유용합니다.
시스템 프록시를 켜고 포트 확인하기
규칙과 노드를 선택한 뒤 시스템 프록시를 켜세요. 데스크톱 클라이언트에는 보통 “시스템 프록시” 또는 “System Proxy” 스위치가 있습니다. 활성화하면 클라이언트가 운영체제의 HTTP 및 HTTPS 프록시 주소를 127.0.0.1:7890 같은 로컬 루프백 주소로 설정합니다. 클라이언트를 종료하기 전에는 정상적으로 종료해 프로그램이 시스템 프록시 설정을 되돌리도록 하세요.
Windows와 macOS
Windows에서는 「설정」→「네트워크 및 인터넷」→「프록시」에서 현재 프록시 상태를 확인할 수 있습니다. 클라이언트가 연결을 가로채면 수동 프록시는 보통 127.0.0.1과 현재 혼합 포트를 가리킵니다. 클라이언트를 종료한 뒤 모든 웹페이지가 열리지 않는다면 먼저 이 페이지에서 남아 있는 수동 프록시를 끈 다음 클라이언트를 다시 시작하세요.
macOS에서는 「시스템 설정」→「네트워크」→현재 네트워크→「세부사항」→「프록시」에서 웹 프록시와 보안 웹 프록시를 확인할 수 있습니다. 처음 변경할 때는 관리자 암호가 필요할 수 있습니다. 두 프록시 클라이언트가 동시에 이 항목을 수정하지 않도록 하세요. 나중에 실행된 앱이 앞선 앱의 주소와 포트를 덮어쓸 수 있습니다.
Linux 데스크톱과 환경 변수
GNOME, KDE 같은 데스크톱 환경에서는 시스템 프록시를 사용할 수 있지만 터미널 프로그램이 데스크톱 설정을 읽는 것은 아닙니다. 명령줄 요청을 일시적으로 로컬 혼합 포트로 보내려면 현재 터미널에서 다음 환경 변수를 설정하세요:
export HTTP_PROXY=http://127.0.0.1:7890
export HTTPS_PROXY=http://127.0.0.1:7890
export ALL_PROXY=socks5://127.0.0.1:7890
이 변수는 현재 터미널과 그 하위 프로세스에만 적용됩니다. 포트는 클라이언트의 “일반 설정” 또는 “외부 컨트롤” 페이지에 표시된 인바운드 포트와 일치해야 합니다. 컨트롤러 포트는 보통 9090이며, 클라이언트 인터페이스가 코어에 연결할 때 사용합니다. 브라우저에 입력하는 프록시 포트가 아닙니다.
Android와 iOS의 VPN 트래픽 가로채기
모바일 운영체제는 일반적으로 데스크톱 방식의 시스템 프록시를 수정하는 대신 로컬 VPN 인터페이스를 통해 트래픽을 가로챕니다. Android에서 처음 연결하면 “연결 요청”이 표시되며, 승인 후 상태 표시줄에 열쇠 또는 VPN 아이콘이 나타납니다. iOS와 iPadOS는 VPN 설정 추가와 시스템 인증을 요구합니다. 권한을 거부하면 설정과 노드가 정상이어도 다른 앱은 프록시 경로를 이용하지 못합니다.
두 단계로 확인하기
- 규칙 모드를 유지하고 연결 기록을 연 다음 일반 웹페이지에 접속해 새 연결이 생성되고 매칭 규칙이 표시되는지 확인합니다.
- 시스템 프록시를 끄거나 모바일 VPN 연결을 해제한 뒤 다시 접속해 연결 기록에 새 항목이 더 이상 추가되지 않는지 비교합니다.
브라우저 홈 화면이 열리는지만으로 판단하지 마세요. 브라우저 캐시, DNS 캐시, 기존 장기 연결 때문에 결과가 늦게 바뀔 수 있습니다. 테스트할 때는 새 시크릿 창을 열거나 기존 연결이 종료될 때까지 기다린 뒤 이전에 열지 않았던 도메인에 접속하세요.
TUN 모드는 언제 켜야 할까요?
TUN 모드는 가상 네트워크 인터페이스를 만들어 더 많은 TCP, UDP 및 DNS 트래픽을 mihomo 코어로 보냅니다. 시스템 프록시를 따르지 않는 소프트웨어, 일부 게임 런처와 명령줄 도구, 트래픽을 통합적으로 가로채야 하는 환경에 적합합니다. 브라우저가 시스템 프록시를 통해 이미 정상 작동한다면 최초 설치 단계에서 TUN을 반드시 사용할 필요는 없습니다.
활성화 전 올바른 순서
- 먼저 구독이 업데이트되고 프록시 그룹에 사용 가능한 노드가 있는지 확인합니다.
- 시스템 프록시만 켜고 브라우저 트래픽이 규칙에 따라 전달되는지 확인합니다.
- 다른 VPN, 네트워크 가속기 및 유사 프록시 프로그램을 종료합니다.
- 「설정」→「서비스 모드」 또는 「Service Mode」에서 백그라운드 서비스를 설치합니다.
- 안내에 따라 관리자 권한, 네트워크 확장 또는 VPN 권한을 허용합니다.
- TUN을 켠 뒤 DNS, 연결 기록, 로컬 네트워크 접속을 다시 확인합니다.
Windows 클라이언트는 서비스 모드를 통해 관리자 권한으로 가상 네트워크 인터페이스를 만드는 경우가 많습니다. macOS에서는 네트워크 확장을 승인해야 하며, Linux에서는 일반적으로 CAP_NET_ADMIN, root 권한 또는 systemd 서비스로 코어를 관리해야 합니다. Android와 iOS는 이미 VPN 인터페이스를 통해 트래픽을 가로채므로 데스크톱과 동일한 “TUN 스위치”를 별도로 제공하지 않는 경우가 많습니다.
TUN을 켠 뒤 인터넷이 끊겼을 때
- 먼저 TUN을 끄되 규칙 모드와 설정은 유지하세요. 모든 설정을 한 번에 초기화하지 마세요.
- 다른 VPN 가상 네트워크 인터페이스가 연결된 상태인지 확인합니다.
- 클라이언트 코어가 실행 중이고 연결 페이지에 권한 오류가 계속 표시되지 않는지 확인합니다.
- DNS 수신 포트가 다른 프로그램에 의해 사용 중인지 확인합니다. 53번 포트 충돌이 흔합니다.
- 클라이언트를 다시 시작해도 문제가 계속되면 시스템을 재부팅해 남은 라우팅과 가상 인터페이스 상태를 정리합니다.
5개 플랫폼의 권한 및 설치 차단
Windows: 방화벽, 서비스 모드, 포트 사용 여부
처음 실행할 때 Windows Defender 방화벽 안내가 표시되면 사용 범위에 따라 허용 여부를 결정하세요. 로컬에서만 사용하고 allow-lan이 false라면 로컬 네트워크 장치에 프록시를 제공할 필요가 없습니다. 클라이언트가 코어를 시작하지 못한다면 작업 관리자에 이전 인스턴스가 남아 있는지 확인한 뒤 netstat -ano | findstr :7890으로 7890 포트 사용 여부를 확인하세요.
서비스 모드를 설치한 뒤에도 TUN을 켤 수 없다면 「설정」→「앱」→「설치된 앱」에서 클라이언트 버전을 확인한 다음 클라이언트의 「설정」→「서비스 모드」로 돌아가 제거 후 다시 설치하세요. 실행 중인 프로그램 디렉터리를 바로 삭제하지 마세요. 백그라운드 서비스에 잘못된 경로가 남을 수 있습니다.
macOS: 앱 확인과 네트워크 확장
DMG에서 앱을 “응용 프로그램”으로 드래그한 뒤 실행하고, 디스크 이미지 안에서 장기간 실행하지 마세요. 시스템이 실행을 차단하면 「시스템 설정」→「개인정보 보호 및 보안」에서 관련 안내를 확인하고 앱 출처와 다운로드 파일을 점검하세요. 네트워크 확장을 승인하면 메뉴 막대나 시스템 네트워크 설정에 관련 상태가 표시됩니다.
Linux: 그래픽 세션, 트레이, 권한
deb 패키지는 sudo apt install ./package.deb로 설치할 수 있고, rpm 패키지는 배포판에 맞는 패키지 관리자를 사용하면 됩니다. AppImage는 보통 chmod +x package.AppImage처럼 실행 권한을 추가해야 합니다. 일부 경량 데스크톱에는 트레이 확장이 없어 창을 닫은 뒤 다시 열기 어려울 수 있습니다. 이때는 코어 인스턴스를 여러 개 실행하지 말고 프로세스가 계속 실행 중인지 먼저 확인하세요.
Android: 배터리 최적화와 백그라운드 실행
Android 시스템은 화면이 잠긴 뒤 VPN 클라이언트를 제한할 수 있습니다. 「설정」→「앱」→해당 클라이언트→「배터리」에서 기기 시스템에 따라 백그라운드 활동 허용 또는 제한 없음으로 설정하세요. 메뉴 이름은 제조사마다 다릅니다. 몇 분 후 연결이 자동으로 끊기고 최근 앱 목록에서 클라이언트 프로세스가 사라진다면 구독을 계속 바꾸기보다 배터리 정책을 먼저 확인하세요.
iOS 및 iPadOS: VPN 설정과 주문형 연결
처음 연결할 때 시스템 VPN 설정을 승인해야 합니다. 상단 상태 표시줄에 VPN이 잠시 나타났다가 바로 사라지면 클라이언트에서 설정 파싱, 노드 핸드셰이크, DNS 로그를 확인하세요. 일부 호환 클라이언트는 Wi-Fi, 셀룰러 네트워크 또는 도메인 조건에 따라 자동으로 활성화되는 “주문형 연결”을 제공합니다. 처음 설치할 때는 먼저 수동으로 연결해 기본 경로를 확인한 후 자동화 조건을 추가하는 것이 좋습니다.
초보자가 자주 겪는 문제의 단계별 확인 순서
설정 가져오기는 성공했지만 목록에 노드가 없습니다
먼저 가져온 내용이 실제 Clash YAML인지 확인하세요. 일부 주소는 웹페이지, 로그인 안내 또는 다른 클라이언트 형식을 반환할 수 있어 다운로드는 완료되어도 프록시 그룹이 생성되지 않습니다. 설정 업데이트 시간, 파일 크기, 파싱 오류를 확인하세요. 구독 변환 서비스를 사용한다면 출력 형식이 단일 URI만 포함된 일반 목록이 아니라 Clash 또는 Clash Meta로 선택되어 있는지도 확인해야 합니다.
지연 시간 테스트는 정상인데 브라우저에서 웹페이지가 열리지 않습니다
- 시스템 프록시 또는 모바일 VPN이 켜져 있는지 확인합니다.
- 현재 모드가 Direct가 아닌 Rule인지 확인합니다.
- 주요 프록시 그룹에서 사용 가능한 노드가 선택되어 있는지 확인합니다.
- “연결” 페이지에서 요청이 실제로 어떤 규칙에 매칭되었는지 확인합니다.
- 일시적으로 Global로 전환해 테스트하세요. 전체 모드에서 작동한다면 문제는 대개 규칙 매칭에 있습니다.
- 전체 모드에서도 실패한다면 노드, DNS, 시스템 시간, 로컬 방화벽을 다시 확인합니다.
일부 앱만 프록시를 사용하지 않습니다
앱이 시스템 프록시를 무시하거나 UDP를 사용하거나 자체적으로 DNS를 지정할 수 있습니다. 먼저 브라우저로 시스템 프록시 경로를 확인하세요. 브라우저는 정상인데 대상 앱의 연결 기록이 없다면 TUN을 테스트합니다. TUN을 켠 뒤 대상 앱의 기록은 생겼지만 여전히 실패한다면 프로토콜, 대상 포트, 매칭 규칙을 확인하세요. “가로채지 못함”과 “노드를 사용할 수 없음”을 같은 문제로 보지 마세요.
로컬 네트워크 장치가 이 컴퓨터의 프록시를 사용할 수 없습니다
로컬 컴퓨터에서 127.0.0.1을 사용하면 자신만 접속할 수 있습니다. 같은 로컬 네트워크의 장치에 프록시를 제공해야 한다면 접근 범위를 충분히 이해한 후 “로컬 네트워크 연결 허용”을 켜고, 다른 장치에서 Clash가 실행 중인 컴퓨터의 로컬 네트워크 주소(예: 192.168.1.20:7890)를 입력하세요. 시스템 방화벽의 인바운드 규칙도 확인하고 사용이 끝나면 해당 기능을 끄세요.
클라이언트를 종료해도 시스템에서 인터넷에 연결할 수 없습니다
대개 시스템 프록시 상태가 복원되지 않은 경우입니다. Windows에서는 「설정」→「네트워크 및 인터넷」→「프록시」에서 수동 프록시를 끄세요. macOS에서는 현재 네트워크의 「세부사항」→「프록시」에서 관련 항목을 해제하세요. Linux에서는 현재 터미널의 HTTP_PROXY, HTTPS_PROXY, ALL_PROXY를 제거하세요. 이전에 TUN을 켰다면 가상 인터페이스와 백그라운드 서비스도 중지되었는지 확인해야 합니다.
Clash 최초 설치 후 권장 점검 목록
아래 항목을 모두 완료해야 초기 설정이 완전히 끝난 것입니다. 이후 업데이트 실패, 규칙 이상 또는 특정 앱 연결 문제가 발생하면 클라이언트를 다시 설치하지 말고 최근에 변경한 단계부터 확인하세요.
- 클라이언트 설치 패키지와 운영체제 아키텍처가 일치합니다.
- 구독을 수동으로 업데이트할 수 있고 업데이트 시간과 내용이 정상입니다.
- 현재 설정이 활성화되어 있으며 프록시 페이지에 프록시 그룹과 노드가 있습니다.
- 모드가 Rule로 설정되어 있고 주요 프록시 그룹에서 노드 또는 자동 테스트 그룹이 선택되어 있습니다.
- 시스템 프록시 또는 모바일 VPN에 필요한 권한이 부여되어 있습니다.
- 테스트 페이지에 접속했을 때 연결 기록에 매칭 규칙과 아웃바운드 노드가 표시됩니다.
- 구독 자동 업데이트 간격이 1440분처럼 적절한 값으로 설정되어 있습니다.
- 앱이 시스템 프록시를 따르지 않을 때만 TUN을 활성화하고 DNS와 라우팅을 별도로 확인합니다.
- 클라이언트를 정상적으로 종료하는 방법을 기억해 시스템 프록시 주소가 남지 않도록 합니다.
처음 설정할 때 가장 중요한 원칙은 한 번에 한 단계씩 진행하는 것입니다. 먼저 구독을 가져오고, 규칙과 노드를 선택한 다음, 시스템 트래픽 가로채기를 활성화하고, 마지막으로 필요할 때만 TUN을 설정하세요. 각 단계가 끝날 때마다 상태와 연결 기록을 확인하면 문제가 발생해도 원인을 특정 단계로 좁힐 수 있습니다.