MANUAL

Clash 완전정복 매뉴얼

총 9장 · 순차 진행 · 목차 앵커로 바로 찾기

이 페이지는 사이트 내에서 정보량이 가장 많은 장문 문서로, "핵심 개념 → 클라이언트 선택 → 설치 → 구독 → 프록시 모드 → 규칙 기반 분기 → TUN → 일상 유지보수 → 심화 학습" 순서로 각 장을 전개하며, 매 장마다 한 단계의 문제를 해결합니다. 10분 안에 프록시를 바로 실행하고 싶다면 먼저 빠른 시작을 읽으세요. 그쪽이 가장 짧은 실행 경로입니다. 이 페이지는 그 과정에서 생략된 원리, 매개변수, 플랫폼별 차이를 보완하는 역할을 하므로, 설정이 불확실할 때 언제든 돌아와 대조해 보시기 바랍니다. 설치 파일은 모두 다운로드 페이지에서 받을 수 있고, 개별적인 의문은 자주 묻는 질문에서 확인할 수 있습니다.

01핵심 개념: 코어, 클라이언트, 설정 파일

Clash는 규칙 기반 네트워크 프록시 솔루션으로, 정확히 말하면 두 개의 층으로 구성됩니다. 실제 트래픽 전달을 담당하는 코어(내부 엔진)와, 그래픽 인터페이스를 제공하는 클라이언트입니다. 원래의 코어 프로젝트는 개발이 중단되었고, 현재 생태계에서 이어서 관리되는 코어는 mihomo(커뮤니티에서는 여전히 Clash Meta 코어라고도 부릅니다)로, 기존 설정 형식과 호환되면서 더 많은 전송 프로토콜을 지원합니다. 흔히 말하는 "Clash 설치"는 실제로는 mihomo 코어를 내장한 그래픽 클라이언트를 설치하는 것을 의미합니다 — Clash Plus, Clash Verge Rev, FlClash가 모두 이 범주에 속하며, 인터페이스는 각기 다르지만 내부에서 읽는 설정 형식은 동일합니다.

설정 파일은 어떤 모습인가

코어의 모든 동작은 하나의 YAML 설정 파일로 결정되며, 이 구조를 이해하는 것이 이후 모든 장의 기초가 됩니다. 최소한으로 동작하는 설정은 대략 다음과 같은 부분들로 구성됩니다.

mixed-port: 7890        # HTTP와 SOCKS를 함께 처리하는 로컬 리스닝 포트
allow-lan: false        # 같은 네트워크의 다른 기기 접속 허용 여부
mode: rule              # 동작 모드: rule / global / direct
log-level: info

proxies: []             # 노드 목록, 보통 구독으로 생성됨
proxy-groups: []        # 정책 그룹, "어떤 트래픽이 어떤 노드로 갈지" 결정
rules:
  - MATCH,DIRECT        # 규칙 목록, 위에서 아래로 순서대로 매칭

이 중 proxies는 사용 가능한 노드를 정의하고, proxy-groups는 노드를 전환 가능한 정책 그룹으로 묶으며, rules는 각 연결이 어떤 그룹에 해당하는지 결정합니다. 이 세 부분을 직접 관리하는 것은 번거로우므로 대다수 사용자는 구독을 사용합니다. 서비스 제공업체가 URL을 제공하면 클라이언트가 주기적으로 이를 가져와 완성된 설정을 얻는 방식입니다. 구독은 본질적으로 "원격에서 관리되는 설정 파일"이며, 이는 4장에서 자세히 다룹니다.

로컬 포트와 시스템 프록시

코어가 실행되면 로컬 포트(기본적으로 흔히 7890)를 리스닝하며, 애플리케이션이 트래픽을 127.0.0.1:7890으로 보내면 코어가 규칙에 따라 직접 연결할지 전달할지 결정합니다. 클라이언트의 "시스템 프록시" 스위치가 하는 일은 운영체제의 프록시 설정을 이 포트로 지정하는 것입니다. "리스닝 포트 + 시스템 프록시"의 관계를 이해하면, 이후 "Clash를 켰는데 적용되지 않는다" 같은 문제를 훨씬 쉽게 진단할 수 있습니다.

정책 그룹 유형, GEOIP, DNS 분기 등 더 많은 용어는 본문 각 장에서 처음 등장할 때 자세히 설명합니다. 미리 외울 필요 없이 장 순서대로 읽으면 됩니다.

02클라이언트 선택: 플랫폼별 비교와 추천 순서

플랫폼별로 사용 가능한 클라이언트가 다르고, 기능의 초점도 다릅니다. 아래 표는 본 사이트 다운로드 페이지에 수록된 클라이언트를 플랫폼별로 정리한 것으로, 다운로드 페이지의 정렬 순서와 동일합니다.

플랫폼클라이언트(추천 순서)비고
WindowsClash Plus, Clash Verge Rev, FlClash, Clash NyanpasuClash for Windows는 유지보수가 중단되어 보관용으로만 남아 있음
macOSClash Plus, Clash Verge Rev, FlClashClashX Meta는 유지보수가 중단되었으며, 기존 사용자는 보관된 버전을 계속 사용 가능
AndroidClash Plus, Clash Meta for Android, FlClash, SurfboardCPU 아키텍처에 맞는 APK 선택 필요, 3장 참고
iOSClash Plus(App Store 출시)공식 사이트 clashplus.io, 스토어 페이지 정보를 기준으로 확인
LinuxClash Verge Rev, FlClashdeb / rpm 패키지 제공, 서버 환경에서는 코어만 직접 실행 가능

어떻게 선택할까

Clash Plus는 전체 플랫폼에서 첫 번째로 추천됩니다. 다섯 개 주요 플랫폼에 모두 대응 버전이 있고 인터페이스가 통일되어 있으며, 구독 가져오기, 정책 그룹 전환, TUN 스위치 등 자주 쓰는 기능이 눈에 잘 보이는 위치에 있어 신규 사용자의 학습 부담이 가장 적습니다. Clash Verge Rev는 데스크톱에서 기능이 더 풍부하며, 설정 오버라이드, Merge 스크립트, 외부 제어 패널 등 심화 기능을 지원해 세밀한 커스터마이징이 필요한 사용자에게 적합하고, 본 사이트에도 관련 Clash Verge Rev 가이드 글이 있습니다. FlClash는 Flutter 기반으로 만들어져 데스크톱과 모바일 경험이 일관되며, 단순한 인터페이스를 선호한다면 선택할 만합니다. Clash Nyanpasu는 Windows 버전만 제공하며 포지션은 Verge Rev와 비슷합니다.

Clash for Windows와 ClashX Meta는 모두 유지보수가 중단되어 새로운 프로토콜이나 시스템 호환성 수정을 더 이상 반영하지 않습니다. 새로 설치할 때는 선택하지 않는 것이 좋으며, 여전히 사용 중인 기존 사용자가 프로토콜 미지원이나 시스템 업그레이드 후 오류를 겪는다면, 위 표에서 여전히 관리되고 있는 클라이언트로 이전하는 것이 유일하게 확실한 해법입니다.

클라이언트를 정한 뒤 진행할 작업들은 클라이언트마다 표현(예: "구독", "설정", "Profiles")이 약간 다를 수 있지만 절차는 동일합니다. 이 매뉴얼은 범용 표현을 사용하며, 필요한 부분에서는 클라이언트 간 차이를 별도로 표시합니다.

03설치: 플랫폼별 요점과 흔한 차단 상황

설치 자체는 복잡하지 않지만, 각 시스템의 보안 메커니즘에서 막히기 쉽습니다. 이번 장에서는 플랫폼별 설치 절차와 그에 대응하는 허용 방법을 정리합니다.

Windows

다운로드 페이지에서 exe 설치 파일을 받아 더블클릭으로 실행합니다. 처음 실행할 때 SmartScreen이 "Windows에서 PC를 보호했습니다" 창을 띄울 수 있는데, 이는 서명이 없거나 다운로드 수가 적은 프로그램에 대한 일반적인 차단이므로 "추가 정보 → 실행"을 클릭하면 계속 진행할 수 있습니다. 설치 경로는 기본값을 유지하는 것이 좋습니다. 백신 프로그램이 코어 파일을 의심스러운 것으로 판단할 경우, 백신 설정에서 설치 디렉터리를 신뢰 항목으로 추가해야 합니다 — 코어는 가상 네트워크 어댑터와 로컬 프록시 포트를 만드는데, 이런 동작이 휴리스틱 오탐을 유발하기 쉽습니다. 설치 완료 후 클라이언트 설정에서 "시작 시 자동 실행"을 켜고 한 번 관리자 권한으로 실행해 두면, 이후 TUN 모드를 켜기 편합니다.

macOS

dmg 또는 zip 파일을 다운로드한 뒤 "응용 프로그램" 폴더로 끌어다 놓습니다. 칩 버전을 구분해야 하는데, Apple Silicon 기종은 arm 버전을, Intel 기종은 x64 버전을 선택해야 합니다. 잘못 설치하면 실행되지 않거나 변환 레이어를 통해 실행되어 성능이 떨어질 수 있습니다. 처음 열 때 "개발자를 확인할 수 없음" 메시지가 뜨면 "시스템 설정 → 개인정보 보호 및 보안" 페이지 하단에서 "그래도 열기"를 클릭하세요. "파일이 손상됨" 메시지가 뜬다면 보통 다운로드된 파일에 시스템이 격리 속성을 붙인 경우이니, 터미널에서 다음 명령을 실행한 뒤 다시 열어 보세요.

xattr -dr com.apple.quarantine /Applications/클라이언트이름.app

클라이언트에서 처음 시스템 프록시나 TUN을 켤 때 시스템이 보조 프로그램 설치나 네트워크 확장 허용을 요청하는데, 안내에 따라 비밀번호를 입력해 허용하면 됩니다. 이 과정은 한 번만 필요합니다.

Android

APK를 다운로드할 때는 CPU 아키텍처에 맞춰 선택해야 합니다. 최근 몇 년 사이 나온 주력 기기는 arm64 버전을 선택하고, 구형 기기이거나 아키텍처가 불확실하면 universal 통합 패키지(용량은 크지만 모든 아키텍처와 호환)를 선택합니다. 설치할 때 시스템이 "알 수 없는 소스 앱 설치 허용"을 요구하는데, 브라우저나 파일 관리자에서 한 번 권한을 부여하면 됩니다. 프록시를 처음 시작할 때 VPN 연결 요청 창이 뜨는데, 반드시 허용해야 합니다 — Android 클라이언트는 시스템 VPN 인터페이스를 통해 트래픽을 처리하므로 이 요청을 거부하면 프록시가 동작하지 않습니다. 일부 제조사 시스템은 백그라운드 앱을 적극적으로 정리하므로, 배터리 관리에서 클라이언트를 "제한 없음"으로 설정하고 백그라운드에서 잠금 처리해 두는 것이 좋습니다.

iOS

iOS에서는 App Store에서 Clash Plus를 설치합니다. 스토어에서 검색하거나 다운로드 페이지의 스토어 링크로 바로 이동할 수 있으며, 앱 상세 정보는 공식 사이트 clashplus.io를 참고하세요. 설치 후 처음 프록시를 시작할 때도 VPN 설정 추가 허용이 필요하니, 시스템 팝업에서 확인하면 됩니다.

Linux

Debian/Ubuntu 계열은 deb 패키지를 사용합니다: sudo apt install ./패키지명.deb. Fedora 계열은 rpm 패키지를 사용합니다: sudo dnf install ./패키지명.rpm. 그래픽 클라이언트는 데스크톱 환경이 필요하며, 데스크톱이 없는 서버 환경에서는 mihomo 코어를 직접 배포하는 것이 더 적합합니다. 방법은 9장에서 다룹니다. TUN을 켜려면 프로그램에 네트워크 관리 권한을 부여하거나 root 권한으로 실행해야 하는데, 클라이언트 설정에서 대개 원클릭 권한 부여 항목을 제공합니다.

설치 완료 여부는 클라이언트가 정상적으로 실행되어 메인 화면에 머물러 있고, 시스템 트레이나 상태 바에 아이콘이 나타나는 것으로 판단합니다. 이 단계에서는 아직 노드가 없으므로, 다음 장에서 구독을 가져온 뒤에야 실제로 인터넷을 사용할 수 있습니다.

04구독 가져오기: 획득, 가져오기, 갱신 전략

구독 링크는 프록시 서비스 제공업체가 사용자 패널에서 제공하며, 보통 "Clash 구독" 또는 "Clash 설정"으로 표시됩니다. 복사할 때는 패널 웹사이트 주소가 아니라 완전한 URL을 가져와야 합니다. 일부 서비스 제공업체는 여러 형식을 동시에 제공하는데, 이때는 Clash / mihomo 형식을 선택하면 됩니다.

가져오기 절차

  1. 서비스 제공업체 패널에서 구독 링크를 복사합니다. 이 링크에는 계정 인증 토큰이 포함되어 있어 계정 정보와 마찬가지이므로, 다른 사람에게 전달하거나 공개된 곳에 붙여넣지 마세요.
  2. 클라이언트의 "구독" 또는 "설정" 페이지를 열고 추가/가져오기를 클릭한 뒤 링크를 붙여넣고 확인합니다. 클라이언트가 즉시 다운로드하고 해석하며, 성공하면 목록에 트래픽과 만료 정보가 표시된 설정 항목이 나타납니다.
  3. 해당 설정을 선택해 현재 사용할 설정 파일로 지정합니다(일부 클라이언트는 가져온 뒤 자동으로 선택됩니다). "프록시" 페이지로 전환하면 정책 그룹과 노드 목록이 보여야 하며, 이는 해석이 성공했다는 뜻입니다.

갱신 설정

구독 내용은 서비스 제공업체가 노드를 조정하면서 바뀌므로, 오랫동안 갱신하지 않으면 노드가 모두 타임아웃되는 상황이 생길 수 있습니다. 클라이언트에서 갱신과 관련된 설정은 세 가지입니다. 갱신 간격(12~24시간마다 자동으로 가져오도록 설정하는 것을 추천), 시작 시 갱신(클라이언트를 열 때마다 구독을 먼저 새로 고침), 프록시를 경유해 갱신(구독 도메인 자체가 차단된 경우, 현재 사용 가능한 노드를 거쳐 가져오기). 세 설정의 조합 방법과 대표적인 오류 상황은 블로그의 구독 갱신 실패 해결법 글에서 항목별로 설명합니다.

가져오기 실패 원인 찾기

가져오기 오류는 대부분 여섯 가지 원인 중 하나입니다: 링크 만료나 트래픽 소진, 복사한 것이 Clash 형식이 아님, 서비스 제공업체가 요청 UA를 제한, YAML 내용에 문법 오류, 로컬 네트워크가 구독 도메인을 차단, 클라이언트 버전이 너무 오래되어 새 필드를 인식하지 못함. 항목별 점검 방법은 구독 실패 및 해석 오류 점검 체크리스트에서 확인할 수 있습니다. 오류 메시지에 "yaml", "parse" 같은 단어가 포함되어 있다면 형식 문제를 먼저 의심해 보세요. 다른 클라이언트로 교차 검증하면 링크 문제인지 로컬 문제인지 빠르게 파악할 수 있습니다.

같은 구독을 여러 클라이언트에 동시에 가져와 사용해도 서로 영향을 주지 않습니다. 다만 대부분의 서비스 제공업체는 계정별 동시 접속 기기 수나 IP 수를 제한하므로, 초과하면 일시적으로 연결이 제한될 수 있습니다.

05프록시 모드: 규칙, 전역, 직접 연결

설정 파일의 mode 필드는 세 가지 값을 가지며, 클라이언트 화면의 세 가지 모드에 대응합니다. 이는 코어가 각 연결을 어떻게 처리할지 결정합니다.

모드동작적용 상황
rule(규칙)각 연결이 rules 목록을 위에서 아래로 매칭하며, 걸린 규칙의 정책을 따름일상적인 기본 상태. 국내(현지) 사이트는 직접 연결, 해외 사이트는 프록시를 경유해 속도와 사용성을 모두 확보
global(전역)규칙을 무시하고 모든 트래픽을 GLOBAL 그룹에서 선택된 노드로 보냄"규칙이 매칭되지 않은 것인지" 일시적으로 확인할 때, 또는 짧은 시간 동안 모든 트래픽에 프록시가 필요할 때
direct(직접 연결)규칙을 무시하고 모든 트래픽을 어떤 노드도 거치지 않고 바로 내보냄클라이언트를 종료하지 않고 프록시만 잠시 끄고 싶을 때, 또는 로컬 네트워크 자체가 정상인지 테스트할 때

흔한 오해는 전역 모드를 계속 켜 두는 것입니다. 이렇게 하면 현지(국내) 트래픽도 해외 노드를 거치게 되어 현지 서비스 접속이 오히려 느려지고, 구독 트래픽도 불필요하게 소모됩니다. 전역 모드의 올바른 용도는 진단 도구입니다 — 규칙 모드에서 특정 사이트가 열리지 않는데 전역으로 바꾸면 열린다면, 문제는 규칙이 매칭되지 않은 것이므로 상시 전역 모드로 두는 대신 6장을 참고해 규칙을 보완해야 합니다.

시스템 프록시와 적용 범위

모드를 정한 다음에는 트래픽이 실제로 들어오게 해야 합니다. 데스크톱에서 가장 많이 쓰는 방법은 "시스템 프록시" 스위치입니다. 켜면 시스템 차원의 프록시 설정이 코어의 mixed-port로 지정되어, 브라우저와 시스템 프록시 설정을 따르는 대부분의 앱이 자동으로 프록시를 경유합니다. 다만 시스템 프록시는 "신사협정"과 같아서, 일부 명령줄 프로그램이나 시스템 설정을 읽지 않는 소프트웨어는 이를 우회할 수 있습니다 — 이런 트래픽은 7장의 TUN 모드로 처리해야 합니다. 터미널에서는 환경 변수로 직접 지정할 수도 있습니다.

export https_proxy=http://127.0.0.1:7890
export http_proxy=http://127.0.0.1:7890
export all_proxy=socks5://127.0.0.1:7890

프록시가 정상 작동하는지 확인

세 단계로 확인합니다. 먼저 클라이언트 노드 목록에서 지연 시간 테스트를 해서 선택한 노드가 타임아웃되지 않았는지 확인하고, 다음으로 IP 조회 사이트에 접속해 표시되는 출구 IP가 해당 노드의 지역과 일치하는지 확인하며, 마지막으로 목표 사이트를 열어 정상 접속되는지 확인합니다. 이 세 단계는 각각 "노드 사용 가능 여부", "트래픽이 실제로 노드를 경유하는지", "규칙이 정확히 매칭되는지"를 검증하는 것으로, 어느 단계든 실패하면 문제 범위를 좁힐 수 있습니다.

06규칙 기반 분기: 정책 그룹과 규칙의 조합

규칙 기반 분기는 Clash를 단순한 프록시 도구와 구분짓는 핵심 기능으로, proxy-groupsrules 두 부분이 함께 작동합니다. 정책 그룹은 "어떤 출구를 사용할 수 있는지"를, 규칙은 "어떤 트래픽이 어떤 그룹으로 갈지"를 결정합니다. 구독으로 생성된 설정에는 이미 분기 로직이 내장되어 있는데, 이번 장에서는 그 동작 원리를 명확히 설명해 기존 설정을 이해하고 필요에 따라 수정할 수 있도록 돕습니다.

자주 쓰는 정책 그룹 네 가지 유형

  • select: 수동 선택 그룹으로, 클라이언트 화면에서 클릭해 적용하며 가장 흔한 "노드 선택"이 바로 이 유형입니다.
  • url-test: 자동 속도 측정 그룹으로, 설정된 간격마다 테스트 URL에 요청을 보내 항상 지연이 가장 낮은 노드를 선택합니다.
  • fallback: 장애 조치 그룹으로, 목록 순서대로 첫 번째로 사용 가능한 노드를 쓰다가 실패하면 자동으로 다음 노드로 전환합니다.
  • load-balance: 로드 밸런싱 그룹으로, 연결을 여러 노드에 분산시킵니다.

규칙 문법과 우선순위

각 규칙의 형식은 "유형,매칭값,대상 정책"이며, 자주 쓰는 유형에는 DOMAIN-SUFFIX(도메인 접미사), DOMAIN-KEYWORD(도메인 키워드), GEOIP(IP 소속 지역), IP-CIDR(IP 대역)이 있고, 마지막 줄에 반드시 두어야 하는 기본 규칙 MATCH도 있습니다. 규칙은 위에서 아래로 매칭되며, 걸리면 즉시 멈춥니다. 따라서 순서가 곧 우선순위이며, 정확한 도메인 규칙은 앞에, IP를 해석해야 판단할 수 있는 GEOIP 같은 규칙은 뒤에, MATCH는 마지막에 둡니다. 전형적인 구조를 보여주는 예시는 다음과 같습니다.

proxy-groups:
  - name: 노드선택
    type: select
    proxies:
      - 자동속도측정
      - DIRECT
  - name: 자동속도측정
    type: url-test
    url: https://www.gstatic.com/generate_204
    interval: 300
    proxies:
      - 홍콩노드
      - 일본노드
  - name: 스트리밍
    type: select
    proxies:
      - 노드선택
      - 일본노드

rules:
  - DOMAIN-SUFFIX,netflix.com,스트리밍
  - DOMAIN-KEYWORD,youtube,노드선택
  - DOMAIN-SUFFIX,cn,DIRECT
  - GEOIP,CN,DIRECT
  - MATCH,노드선택

이 예시는 세 가지 의도를 구현합니다. 스트리밍 도메인은 전용 "스트리밍" 그룹으로 보내(특정 지역 노드를 고정 선택해 언락을 안정적으로 유지할 수 있음), cn 접미사 도메인과 특정 지역 IP로 해석되는 연결은 직접 연결하며, 나머지 트래픽은 기본적으로 "노드선택"으로 보냅니다. 그룹은 다른 그룹을 참조할 수 있어("스트리밍" 안에 "노드선택"을 넣는 것처럼), 이를 통해 설정에 계층 구조가 생기고, 상위 그룹 하나만 바꾸면 그것을 참조하는 모든 곳에 영향을 줄 수 있습니다.

서로 다른 스트리밍 서비스마다 별도 그룹을 만드는 방법과 규칙 순서에서 흔히 빠지는 함정을 포함한 지역별 분기 실전 사례는 블로그의 규칙 기반 분기 실전: 국내 직접 연결과 해외 프록시 분리 그룹 작성법에서 확인할 수 있습니다.

구독으로 생성된 설정 파일을 직접 수정하면 다음 구독 갱신 시 전체가 덮어씌워집니다. 오래 유지해야 하는 사용자 정의 규칙은 클라이언트의 "오버라이드" 또는 "Merge" 기능(Clash Verge Rev의 지원이 가장 완전함)을 사용해, 수정 내용을 구독과 별도의 파일로 선언하면 갱신할 때마다 자동으로 덧붙여집니다. 자세한 내용은 9장에서 다룹니다.

07TUN 모드: 모든 트래픽 처리하기

5장에서 언급했듯이 시스템 프록시는 모든 프로그램을 제어할 수 없습니다. 시스템 프록시 설정을 읽지 않는 소프트웨어, 일부 게임 클라이언트, 명령줄 도구의 트래픽은 코어를 그대로 우회할 수 있습니다. TUN 모드의 해결책은 시스템에 가상 네트워크 어댑터를 만들어 기기의 모든 아웃바운드 트래픽을 네트워크 계층에서 가로채 코어로 넘기는 것입니다 — 애플리케이션 입장에서는 완전히 투명하며, 어떤 프로그램도 개별적으로 프록시를 설정할 필요가 없습니다. Android와 iOS 클라이언트의 VPN 인터페이스도 본질적으로 같은 방식이므로, 모바일에서는 "TUN 켜기"라는 별도 단계가 없습니다. 이번 장은 주로 데스크톱을 대상으로 합니다.

활성화 절차

  1. 권한을 부여합니다. 가상 네트워크 어댑터를 만들려면 상승된 권한이 필요합니다. Windows는 클라이언트를 관리자 권한으로 실행하거나(또는 설정에서 시스템 서비스를 설치해 권한 상승을 피할 수 있음), macOS는 처음 켤 때 팝업에서 네트워크 확장을 설치하고, Linux는 클라이언트 설정에서 코어에 원클릭 권한 부여를 실행합니다.
  2. 클라이언트 설정에서 TUN 스위치를 켭니다. 켜면 시스템 네트워크 연결 목록에 utun 또는 Clash라는 이름이 포함된 네트워크 어댑터가 새로 나타나는데, 이것이 정상 적용의 표시입니다.
  3. 시스템 프록시 스위치를 끕니다. TUN이 이미 더 하위 계층에서 트래픽을 처리하므로, 시스템 프록시를 함께 켜 두면 얻는 이점이 없고 오히려 루프백 문제를 일으킬 수 있습니다.

DNS 설정

TUN 모드에서는 DNS 해석도 코어가 처리하므로, 설정 파일에 사용 가능한 dns 항목이 있어야 합니다. 구독으로 생성된 설정에는 보통 이미 포함되어 있으며, 전형적인 형태는 다음과 같습니다.

dns:
  enable: true
  enhanced-mode: fake-ip
  fake-ip-range: 198.18.0.1/16
  nameserver:
    - https://223.5.5.5/dns-query
    - https://120.53.53.53/dns-query

fake-ip는 TUN 환경에서 추천되는 강화 모드입니다. 코어가 먼저 예약된 대역의 가상 IP를 반환하고, 실제로 연결이 이루어질 때 도메인을 기준으로 규칙을 매칭하므로 실제 해석 한 번을 줄이고 규칙 매칭도 더 정확해집니다. 실제 IP에 의존하는 일부 상황(예: 특정 로컬 네트워크 서비스 검색)에서 문제가 생기면, 해당 도메인에 대해 fake-ip-filter 제외 항목을 설정할 수 있습니다.

TUN을 켜야 하는지 판단하는 간단한 기준: 브라우저는 정상인데 특정 데스크톱 프로그램, 게임, 터미널 명령이 프록시를 거치지 않는다면 TUN을 켜야 합니다. 브라우저와 일반적인 앱만 사용한다면 시스템 프록시로 충분하니 복잡도를 더할 필요가 없습니다.

08일상 유지보수: 갱신, 백업, 장애 빠른 점검

설정이 한 번 정상 작동하면 일상적으로 할 일은 많지 않지만, 몇 가지 습관이 갑작스러운 장애를 크게 줄여 줍니다.

세 가지를 항상 최신으로 유지

구독: 4장에서 다룬 대로 자동 갱신 간격을 설정하고, 노드가 대량으로 타임아웃될 때는 먼저 구독을 수동으로 한 번 갱신한 뒤 다른 원인을 살펴보세요. 클라이언트: 계속 관리되고 있는 클라이언트는 코어와 시스템 호환성을 꾸준히 반영하므로, 다운로드 페이지에서 새 버전을 받아 덮어 설치하면 되고 설정과 구독은 그대로 유지됩니다. 지리 데이터베이스: GEOIP 규칙은 GeoIP/GeoSite 데이터 파일에 의존하는데, 대부분의 클라이언트는 설정에서 원클릭 갱신 항목을 제공하니 몇 달에 한 번 갱신하면 충분합니다.

무엇을, 어떻게 백업할까

백업할 가치가 있는 것은 "구독 링크 + 사용자 정의 오버라이드 내용" 두 가지입니다. 이 둘만 있으면 새 기기에서도 몇 분 안에 환경을 복원할 수 있습니다. 구독으로 생성된 설정 파일 자체는 백업할 필요가 없습니다 — 언제든 다시 가져올 수 있습니다. 데스크톱 클라이언트의 설정 디렉터리(오버라이드 파일과 클라이언트 설정 포함)는 통째로 복사해 보관할 수 있으며, 각 클라이언트의 설정 페이지에는 보통 해당 디렉터리 위치가 표시되어 있습니다.

로그로 문제 찾기

클라이언트의 로그 페이지는 각 연결의 매칭 결과를 실시간으로 출력하며, 형식은 대략 "도메인/IP → 매칭된 규칙 → 최종 출구"입니다. 특정 사이트의 동작이 예상과 다를 때 로그에서 해당 도메인을 검색하면 어떤 규칙에 걸렸고 어떤 노드를 경유했는지 즉시 확인할 수 있어, 무작정 노드를 바꿔보는 것보다 훨씬 효율적입니다. 로그 레벨은 설정의 log-level로 제어하며, 점검 중에는 잠시 debug로 바꾸고 평소에는 info를 유지하면 됩니다.

장애 빠른 점검표

현상우선 점검 방향
모든 노드 지연 테스트가 타임아웃구독 만료/트래픽 소진 여부, 로컬 네트워크의 직접 연결 가능 여부, 구독 갱신 후 재테스트
노드 지연은 정상인데 웹페이지가 열리지 않음전역 모드로 전환해 규칙 미매칭 여부 확인, 시스템 프록시나 TUN이 켜져 있는지 확인
현지(국내) 사이트가 느려짐전역 모드가 잘못 켜져 있지 않은지, GEOIP,CN,DIRECT 규칙이 존재하고 앞선 규칙에 가로채이지 않는지 확인
구독 갱신 오류4장의 세 가지 갱신 옵션을 순서대로 확인하거나, "프록시를 경유해 갱신"을 먼저 켜고 다시 시도
부팅 후 프록시가 적용되지 않음클라이언트에 시작 시 자동 실행이 설정되어 있는지, 시스템 프록시/TUN이 시작과 함께 켜지도록 설정되어 있는지 확인

표에 없는 문제는 자주 묻는 질문 페이지에 분류되어 있으니 먼저 그곳에서 검색해 보세요.

09심화 학습: 잘 쓰는 단계로 넘어가기

앞의 여덟 장을 마치면 일상적인 사용에는 더 이상 어려움이 없습니다. 아래 방향들은 실용성 순으로 정리했으니 필요에 따라 계속 심화 학습해 보세요.

로컬 네트워크 공유

설정의 allow-lantrue로 바꾸면(클라이언트 화면에 대개 대응 스위치가 있음), 같은 네트워크에 있는 휴대폰, TV, 게임 콘솔이 이 컴퓨터의 내부 IP와 mixed-port 포트를 프록시 주소로 입력해 같은 프록시와 규칙을 함께 사용할 수 있습니다. 기기마다 따로 클라이언트를 설치할 필요가 없습니다. 방화벽 허용 방법과 기기별 입력 방법은 블로그의 Mixed Port와 로컬 네트워크 공유 설정에서 확인할 수 있습니다.

오버라이드와 Merge

6장에서 언급했듯이 구독 설정을 직접 수정하면 갱신 시 덮어씌워집니다. 오버라이드 기능은 여러분의 수정 내용(규칙 추가, DNS 항목 교체, 포트 조정)을 별도 파일로 저장해, 클라이언트가 구독을 불러올 때마다 자동으로 덧붙이도록 해 "구독은 평소처럼 갱신되고, 사용자 정의는 계속 유지되도록" 만듭니다. Clash Verge Rev의 구현이 가장 완전하며, YAML 병합과 스크립트 두 가지 방식을 지원합니다. 가장 간단한 상황부터 연습해 보길 추천합니다 — 구독에 없는 도메인에 대해 DOMAIN-SUFFIX 규칙을 하나 추가해 보세요.

외부 제어 인터페이스

코어에는 RESTful 제어 인터페이스가 내장되어 있어, 설정에 external-controller: 127.0.0.1:9090을 선언하면 HTTP 요청으로 코어를 조회하고 제어할 수 있으며, 웹 제어 패널도 이를 기반으로 만들어집니다. 예를 들어 현재 모든 정책 그룹을 조회하려면 다음과 같이 합니다.

curl http://127.0.0.1:9090/proxies

스크립트와 결합하면 노드 자동 전환, 속도 측정 통계 자동화 같은 작업을 할 수 있어, 개발 경험이 있는 사용자에게 적합합니다.

인터페이스 없이 코어 배포하기

공유기 펌웨어나 서버 환경에서는 그래픽 클라이언트가 필요 없으며, mihomo 코어를 직접 실행하면 됩니다. 다운로드 페이지의 코어 섹션에서 해당 아키텍처의 바이너리 파일을 받아 완전한 YAML을 구성하고, systemd로 프로세스를 관리하면 전체 네트워크에 투명 프록시를 제공할 수 있습니다. 이 방식은 라우팅과 iptables/nftables 지식이 필요하므로, 데스크톱에서 규칙 체계를 충분히 익힌 뒤 시도하는 것을 추천합니다.

다음으로 읽을 내용

직접 실행이 필요하면 빠른 시작으로 돌아가 순서대로 진행하세요. 개념을 보완하려면 자주 묻는 질문을 활용하고, 블로그의 초보자를 위한 10가지 질문 답변은 이 매뉴얼의 요약판으로 이제 막 입문한 친구에게 전달하기 좋습니다. 클라이언트와 코어는 계속 발전하고 있으며, 이 페이지도 생태계 변화에 맞춰 업데이트될 예정이니 즐겨찾기에 추가해 두고 필요할 때 찾아보시기 바랍니다.

클라이언트 다운로드