Clash 기초
Clash의 기본 개념, 포지셔닝 및 사용 시나리오 이해
Clash는 Go 언어로 작성되고 GPL-3.0 오픈 소스 라이선스를 따르는 규칙 기반 크로스 플랫폼 네트워크 프록시 도구입니다. YAML 구성 파일을 통해 프록시 노드, 라우팅 규칙 및 아웃바운드 정책 그룹을 정의하여 네트워크 트래픽을 세밀하게 제어할 수 있습니다.
현재 가장 활발한 핵심 버전은 Mihomo(이전 Clash.Meta)이며, 원본 버전을 기반으로 수많은 최신 프록시 프로토콜 지원 및 기능 향상이 추가되어 커뮤니티에서 가장 권장하는 선택입니다.
Clash 코어(Mihomo) 및 모든 주요 GUI 클라이언트는 완전 무료 오픈 소스이며 영구적으로 요금이 부과되지 않습니다.
- Clash Verge Rev — 무료 오픈 소스 (MIT 라이선스)
- FlClash — 무료 오픈 소스 (GPL-3.0 라이선스)
- ClashMeta for Android — 무료 오픈 소스 (GPL-3.0 라이선스)
- Mihomo 코어 — 무료 오픈 소스 (GPL-3.0 라이선스)
참고: 프록시 노드 서비스(VPN 서비스 제공자)는 독립적인 타사 서비스로 일반적으로 트래픽 또는 월별 요금을 청구하며 Clash 소프트웨어 자체와는 무관합니다.
- VPN: 모든 트래픽을 암호화된 터널을 통해 VPN 서버로 전달합니다. 국내외 트래픽이 모두 프록시를 통과하므로 국내 웹사이트 접속 속도가 느려지고 유연한 제어가 불가능합니다.
- Clash: 규칙에 따라 트래픽을 정밀하게 분배하여 국내 트래픽은 직접 연결(고속)하고 해외 트래픽은 프록시를 통과하도록 합니다. 20개 이상의 프로토콜을 지원하며 프로세스 수준까지 정밀하게 트래픽을 제어할 수 있습니다.
네트워크를 유연하게 제어해야 하는 사용자에게는 Clash의 규칙 기반 라우팅 기능이 기존 VPN보다 훨씬 뛰어나며 권장되는 옵션입니다.
Mihomo(이전 이름 Clash.Meta)는 Clash의 기능이 향상된 커뮤니티 분기(Fork) 버전으로, 현재 가장 활동적이고 기능이 완벽한 핵심 버전입니다. 주요 향상된 기능은 다음과 같습니다.
- Hysteria2, TUIC v5, VLESS, WireGuard 등 새로운 프로토콜 기본 지원
- Reality 전송 계층, ECH 등 최신 보안 기능
- 향상된 TUN 모드 및 Rule-Set(규칙 세트)
- Proxy Provider 구독 관리, MixedPort(혼합 포트)
현재 대부분의 GUI 클라이언트(Clash Verge Rev, FlClash)는 기본적으로 Mihomo 코어를 사용하므로 바로 사용하시면 됩니다.
- Windows 10/11: Clash Verge Rev, Clash Nyanpasu, FlClash
- macOS 11+: Clash Verge Rev, FlClash, ClashX Meta (Intel 및 Apple Silicon 모두 지원)
- Linux: Clash Verge Rev, FlClash (주요 배포판 지원)
- Android 7.0+: ClashMeta for Android
- iOS / iPadOS: Stash, Shadowrocket (App Store에서 구매 필요)
각 플랫폼의 최신 버전은 다운로드 센터에서 확인하세요.
설치 및 구성
처음부터 클라이언트를 설치하고, 구독을 가져오고, 기본 구성을 완료하는 방법
다운로드 센터로 이동하여 운영 체제에 맞는 클라이언트를 선택하세요. 플랫폼별 추천 클라이언트:
- Windows / macOS / Linux: Clash Verge Rev를 다운로드하고 설치 프로그램을 실행한 후 지침에 따라 완료하세요.
- Android: ClashMeta for Android APK를 다운로드하고 '알 수 없는 출처 설치 허용'을 활성화한 후 설치하세요.
- iOS: App Store에서 Stash를 검색하여 구매 및 설치하세요.
Clash Verge Rev를 예로 들겠습니다 (다른 클라이언트도 유사함):
- 소프트웨어를 열고 왼쪽 '프로필(Profiles)' 메뉴를 클릭합니다.
- 오른쪽 상단의 '+'를 클릭하고 '원격(Remote)'을 선택합니다.
- 'URL' 필드에 서비스 제공자가 제공한 Clash 구독 링크를 붙여넣고 비고 이름을 입력합니다.
- '다운로드'를 클릭하고 완료되면 확인 표시를 클릭하여 현재 구성으로 설정합니다.
자동 업데이트(권장 간격 24시간)를 켜두면 노드 목록이 자동으로 최신 상태로 유지되므로 켜두는 것이 좋습니다.
Clash 구성 파일은 YAML 형식(config.yaml)이며 다음과 같은 주요 부분으로 구성됩니다.
proxies: 노드 목록, 프록시 서버 정보 정의proxy-groups: 정책 그룹 (예: URL-Test 자동 속도 선택, Select 수동 선택)rules: 라우팅 규칙, 위에서 아래로 순차적으로 일치 확인dns: DNS 구성, 업스트림 DNS 및 확인 모드 지정 가능
임의의 텍스트 편집기로 수정할 수 있지만, VS Code(YAML 플러그인 설치)를 사용하여 들여쓰기 오류를 자동으로 감지하는 것이 좋습니다. 수정한 후 클라이언트에서 구성을 다시 로드하면 적용됩니다.
주요 클라이언트에는 부팅 시 자동 시작 스위치가 내장되어 있습니다.
- Clash Verge Rev: 설정 → 시스템 설정 → 부팅 시 자동 시작; 팝업 창을 피하기 위해 '백그라운드 시작'을 동시에 켤 수 있습니다.
- FlClash: 앱 설정 → 부팅 시 자동 시작
- ClashMeta for Android: 설정 → 부팅 시 시작; 시스템 권한에서 자동 시작을 허용해야 합니다.
시스템 프록시 자동 활성화도 동시에 켜두는 것이 좋습니다. 그러면 부팅할 때마다 Clash가 시스템 트래픽을 자동으로 처리하여 수동으로 조작할 필요가 없습니다.
구성 파일 저장 경로:
- Windows:
%APPDATA%\clash-verge - macOS:
~/Library/Application Support/clash-verge - Linux:
~/.config/clash-verge
전체 디렉터리를 새 장치의 해당 위치에 복사하고 클라이언트를 다시 설치하면 모든 구성이 복원됩니다. 구독 링크만 사용하는 경우 새 장치에서 링크를 다시 가져와서 업데이트하는 것이 가장 간단한 방법이며 파일을 수동으로 마이그레이션할 필요가 없습니다.
일상적인 사용
노드 관리, 모드 전환 및 고급 기능 사용 방법
- 규칙 모드(Rule): 구성 파일의 규칙에 따라 하나씩 일치 여부를 확인하여 각 연결이 프록시를 통과할지 직접 연결할지 자동으로 결정합니다. 일상적인 사용에 권장되며 국내 및 해외 접속 모두 빠릅니다.
- 글로벌 모드(Global): 모든 트래픽이 강제로 프록시 노드를 통과하도록 하며 규칙 일치 확인을 무시합니다. 임시로 노드를 테스트하는 데 적합하지만 국내 웹사이트 접속이 느려질 수 있습니다.
- 직접 연결 모드(Direct): 모든 트래픽이 직접 연결되며, 이는 프록시를 완전히 끄는 것과 같습니다. 네트워크 문제를 해결할 때 임시로 사용하는 데 적합합니다.
클라이언트 '프록시(Proxies)' 또는 '노드(Nodes)' 페이지에서 속도 테스트 버튼(번개 아이콘)을 클릭하여 모든 노드에 대한 지연 시간 테스트를 시작할 수 있으며 결과는 노드 옆에 실시간으로 표시됩니다. 정책 그룹 내의 노드 이름을 클릭하면 다시 시작할 필요 없이 즉시 전환됩니다.
URL-Test 정책 그룹을 사용하면 Clash가 자동으로 지연 시간이 가장 짧은 노드를 선택하므로 수동으로 조작할 필요가 없습니다. 지연 시간 참고 값: 100ms 이하는 매우 쾌적하며, 100–200ms는 정상적으로 사용 가능하고, 200ms 이상은 끊김 현상이 발생할 수 있습니다.
TUN 모드는 가상 네트워크 카드를 생성하려면 관리자 / root 권한이 필요합니다. Clash Verge Rev를 예로 들면:
- '설정' → '시스템 프록시' 섹션으로 들어갑니다.
- 'TUN 모드' 스위치를 켭니다.
- 시스템에서 관리자 권한을 요청하는 메시지가 표시되면 '예'를 클릭하여 허용합니다.
- 드라이버 설치가 완료될 때까지 기다립니다 (처음 사용할 때는 약 10-30초 소요).
켜면 게임 클라이언트, 명령줄 도구(curl, git) 등 시스템 프록시를 지원하지 않는 프로그램도 Clash를 거쳐 처리됩니다.
두 가지 방법이 있습니다:
- 규칙 방식 (권장): 구성 파일
rules상단에 PROCESS-NAME 규칙을 추가합니다. 예를 들어- PROCESS-NAME,Discord.exe,DIRECT와 같이 추가하면 해당 프로세스의 모든 트래픽이 직접 연결됩니다. - 클라이언트 UI: 일부 클라이언트(예: Clash Verge Rev)는 '설정'에 '우회 목록' 기능을 제공하여 인터페이스를 통해 직접 프로세스 이름이나 IP 대역을 추가할 수 있습니다.
일반적으로 우회가 필요한 앱: 국내 게임(Steam 중국 지역, Steam 등), 기업 인트라넷 도구, 일부 은행 앱.
- Clash Verge Rev: 왼쪽 '연결' 메뉴에서 각 연결의 대상 주소, 어떤 노드를 통과하는지, 업로드 및 다운로드 트래픽을 실시간으로 표시합니다.
- 로그 수준: 설정에서 로그 수준을
info또는debug로 조정하면 규칙 일치 세부 정보를 확인할 수 있어 라우팅 문제를 해결하는 데 유용합니다. - Web 패널: Yacd (
http://localhost:9090/ui) 또는 MetaCubeX 패널을 통해 시각적 모니터링을 얻을 수 있습니다.
로그는 '왜 이 웹사이트가 프록시를 통과하지 않는가'를 파악하는 가장 좋은 도구입니다. 문제가 발생하면 로그를 먼저 확인하십시오.
네트워크 및 DNS
DNS 모드 선택, 누출 방지 구성, IPv6 및 로컬 네트워크(LAN) 공유
- Fake-IP: 애플리케이션이 DNS 쿼리를 시작하면 Clash가 즉시 가짜 IP(
198.18.x.x)를 반환하고, 규칙은 원래 도메인 이름을 기준으로 일치 여부를 확인하며, 실제 DNS 쿼리는 프록시 측에서 발생합니다. DNS 오염을 완전히 방지하고 연결 설정이 더 빠릅니다. 대부분의 사용자에게 권장합니다. - Redir-Host: Clash가 먼저 국내외 DNS에 동시에 쿼리를 수행하고 해결 결과에 따라 라우팅을 결정합니다. 호환성은 더 좋지만 DNS 누출 위험이 있으며 초기 연결 지연 시간이 약간 높습니다.
실제 IP가 필요한 일부 앱(예: 특정 온라인 게임의 NAT 감지)은 Fake-IP 환경에서 이상이 발생할 수 있습니다. 해당 애플리케이션의 도메인 이름을 fake-ip-filter 허용 목록에 추가하여 해결할 수 있습니다.
DNS 누출 방지를 위한 권장 구성 조합:
- 시스템 DNS에 의존하지 않고 Clash에 내장된 DNS 모듈 활성화 (
dns: enable: true) - 해외 도메인 이름에 암호화된 DNS 사용 (DoH 예시:
https://1.1.1.1/dns-query) - 접속한 도메인 이름이 업스트림 DNS에 노출되지 않도록 Fake-IP 모드 활성화
- DNS 요청이 Clash를 우회하여 직접 전송되지 않도록 TUN 모드 활성화
구성이 완료되면 dnsleaktest.com을 통해 확인할 수 있습니다. 결과에는 프록시 노드가 위치한 곳의 DNS만 표시되어야 합니다.
Mihomo 코어는 완벽한 IPv6 지원을 제공하며 DNS AAAA 레코드 확인, IPv6 규칙 매칭(IP-CIDR6, GEOIP), TUN 장치의 IPv6 라우팅 포워딩 및 프록시 노드의 IPv6 아웃바운드 연결을 모두 지원합니다.
활성화 방법: 구성 파일 맨 위에 ipv6: true를 추가하고 DNS 구성에서 AAAA 쿼리가 허용되는지 확인합니다. IPv6 연결에 문제가 발생하면 임시로 ipv6: false로 설정하여 비활성화하고 문제를 파악할 수 있습니다.
구성 파일에서 allow-lan: true로 설정하면 Clash가 로컬 네트워크의 프록시 요청을 수락할 수 있습니다. 다른 기기에서 WiFi 설정의 HTTP 프록시를 구성하고 서버에 Clash를 실행 중인 기기의 LAN IP(예: 192.168.1.100)를 입력하고 포트에 혼합 포트(기본값 7890)를 입력하면 됩니다. 스마트폰, 태블릿, 스마트 TV 모두 이 방법을 지원합니다.
문제 해결
문제가 발생했을 때의 해결 방법 및 일반적인 솔루션
다음 단계에 따라 차근차근 확인하십시오:
- 1단계: Clash를 종료하고 프록시를 통하지 않을 때 네트워크가 정상인지 확인합니다.
- 2단계: 구독을 수동으로 새로 고침하여 최신 노드 목록으로 업데이트합니다.
- 3단계: 다른 노드로 전환합니다. 일부 노드가 차단되었을 수 있습니다.
- 4단계: 방화벽이 Clash의 아웃바운드 연결을 차단하고 있는지 확인합니다.
- 5단계: 로그 수준을
debug로 조정하여 구체적인 연결 오류 메시지를 확인합니다.
모든 노드에서 시간 초과가 발생하면 서비스 제공자(VPN)의 서버 문제일 가능성이 높습니다. 고객 서비스에 문의하여 노드 상태를 확인하는 것이 좋습니다.
- 지연 시간이 짧은 노드 선택: 속도 테스트 후 지연 시간이 100ms 이내인 노드를 선택하거나 URL-Test를 사용하여 가장 빠른 노드를 자동으로 선택합니다.
- 프록시 모드 확인: 국내 트래픽이 우회하지 않도록 '글로벌 모드'가 아닌 '규칙 모드'인지 확인합니다.
- 더 빠른 프로토콜로 변경: Hysteria2 또는 TUIC는 QUIC/UDP를 기반으로 하므로 패킷 손실률이 높거나 지연 시간이 긴 네트워크에서 TCP 프로토콜보다 성능이 훨씬 좋습니다.
- DNS 최적화: DoH / DoT를 활성화하여 DNS 확인 지연 시간을 줄입니다.
- 서비스 제공자에 문의: 모든 노드가 느리다면 서버 대역폭이 혼잡한 것일 수 있습니다. 피크 시간이 아닐 때 사용하거나 요금제를 변경해 보십시오.
일반적으로 규칙이 해당 웹사이트를 직접 연결로 설정하지 않아 트래픽이 해외 노드로 프록시되었기 때문입니다. 해결책:
- 글로벌 모드가 아닌 '규칙 모드'인지 확인합니다.
- 규칙 상단에 수동으로 직접 연결 규칙을 추가합니다:
- DOMAIN-SUFFIX,example.local,DIRECT - GeoSite / GeoIP 데이터베이스를 최신 버전으로 업데이트합니다 (일반적으로 클라이언트 설정에 업데이트 버튼이 있음).
- Loyalsoldier Clash Rules와 같이 더 포괄적인 커뮤니티 규칙 세트로 대체합니다.
- 권한 부족: 클라이언트를 관리자 권한으로 다시 실행합니다 (우클릭 → 관리자 권한으로 실행).
- 드라이버 충돌: 다른 VPN 소프트웨어(WireGuard, OpenVPN, Cisco AnyConnect 등)를 닫은 후 다시 시도하십시오.
- Windows 드라이버 문제: 설정 → 서비스 모드 → Service Mode 드라이버를 다시 설치합니다.
- 임시 복구: TUN 모드를 끄고 시스템 프록시 모드로 전환합니다.
문제가 지속되면 GitHub Issues에 로그 파일을 첨부하여 커뮤니티의 도움을 받을 수 있습니다.
이 오류는 Clash가 사용하려는 포트(기본값 7890)가 이미 다른 프로그램에서 사용 중임을 의미합니다.
- 방법 1 (권장): 구성 파일에서
mixed-port값을 변경합니다 (예:7891로 변경). - 방법 2: 포트를 사용하는 프로그램을 찾아 닫습니다. Windows:
netstat -ano | findstr 7890에서 PID를 찾은 후 작업 관리자에서 종료; macOS / Linux:lsof -i :7890 - 방법 3: 여러 Clash 클라이언트가 동시에 설치된 경우 하나만 실행되고 있는지 확인하십시오.
관련 문제를 찾을 수 없습니다. 다른 키워드를 입력하거나 카테고리를 탐색해 보십시오.