clash / 오픈소스Clash 오픈소스 허브 · 전체 플랫폼 클라이언트 다운로드
Public규칙 기반 트래픽 분기를 지원하는 오픈소스 프록시 클라이언트 다운로드 및 문서 사이트입니다. Windows, macOS, Android, iOS, Linux 5개 플랫폼의 설치 파일과 구독 가져오기, TUN 모드 설정법을 한국어 튜토리얼과 문제 해결 가이드로 정리했습니다.
핵심 기능
다음 다섯 개 문서는 Clash의 핵심 기능 다섯 가지에 대응합니다. 왼쪽 파일명을 클릭하면 오른쪽에서 설명과 실제 설정 예시를 볼 수 있습니다.
rules.md
Clash는 설정 파일의 rules 항목 순서대로 새 연결마다 규칙을 하나씩 매칭합니다: DOMAIN-SUFFIX는 도메인 접미사를 확인하고, DOMAIN-KEYWORD는 키워드 포함 여부를 확인하며, GEOIP는 대상 IP의 소속 국가로 판단하고, MATCH는 마지막 기본 규칙으로 사용됩니다. 먼저 일치하는 규칙이 우선 적용되고 그 즉시 매칭이 멈춥니다. 전체 트래픽을 한 번에 프록시로 넘기는 방식과 달리, 규칙 기반 분기는 로컬 네트워크와 자주 쓰는 직접 연결 사이트는 우회하지 않고, 프록시가 필요한 도메인만 정확히 프록시로 보낼 수 있습니다. 규칙은 구독에 내장된 것, 로컬에서 추가한 것, rule-providers 원격 규칙 목록 세 가지 방식으로 지정할 수 있으며, 저장하면 즉시 반영되어 클라이언트를 재시작할 필요가 없습니다.
rules:
- DOMAIN-SUFFIX,github.com,PROXY
- DOMAIN-KEYWORD,google,PROXY
- GEOIP,CN,DIRECT
- MATCH,PROXY
tun-mode.md
시스템 프록시는 애플리케이션이 프록시 설정을 스스로 읽어들이는 방식에 의존하기 때문에, 커맨드라인 도구나 게임 클라이언트, 일부 데스크톱 소프트웨어는 이를 그대로 무시합니다. TUN 모드는 시스템에 가상 네트워크 카드를 만들어 네트워크 계층에서 모든 아웃바운드 트래픽을 가로챈 뒤 Clash 커널이 규칙에 따라 처리하도록 넘겨줍니다. 시스템 프록시를 따르지 않는 프로그램까지 모두 포함해서 처리할 수 있습니다. 클라이언트 설정 페이지의 TUN / 가상 네트워크 카드 스위치에서 켤 수 있으며, Windows는 처음 켤 때 관리자 권한으로 서비스를 설치해야 하고 macOS와 Linux는 시스템 권한을 한 번 요청합니다. DNS 하이재킹과 fake-ip를 함께 사용하면 DNS 유출을 막을 수 있어, 전체 트래픽을 처리하는 상황에서 기본으로 쓰이는 조합입니다.
tun:
enable: true
stack: system
auto-route: true
dns-hijack:
- any:53
subscription.md
구독은 완전한 YAML 설정을 반환하는 URL이며, 노드, 정책 그룹, 규칙이 모두 이 URL을 통해 내려옵니다. 클라이언트에 링크를 붙여넣으면 바로 가져올 수 있고, 자동 업데이트 간격을 설정할 수도 있습니다. 서비스 제공자가 노드를 조정하면 기한이 지날 때 새 설정을 자동으로 받아오므로 파일을 직접 교체할 필요가 없습니다. 여러 구독을 동시에 등록해 두고 서로 독립적으로 전환할 수 있습니다. 업데이트가 실패하면, 먼저 브라우저에서 구독 링크를 직접 열어 HTML 오류 페이지가 아니라 YAML 텍스트가 반환되는지 확인하고, 링크가 만료되었는지, 구독 변환 서비스로 형식을 맞춰야 하는지 확인하세요. 본 사이트의 문제 해결 안내서에는 오류별 대응 항목이 정리되어 있습니다.
# 구독 반환 내용 직접 확인하기
curl -A "clash" -sL "https://example.com/sub?token=xxxx" | head -n 20
# 정상이라면 YAML이 출력되며, proxies: / proxy-groups: 로 시작하는 항목이 보입니다
policy-group.md
정책 그룹은 여러 노드를 규칙에서 참조할 수 있는 하나의 논리 단위로 묶습니다. select 그룹은 사용자가 직접 선택하고, url-test 그룹은 그룹 내 노드에 주기적으로 지연 시간 테스트를 수행해 가장 빠른 노드로 자동 전환하며, fallback 그룹은 순서대로 가용성을 확인해 우선 노드가 실패하면 다음 노드로 자동 전환하고, load-balance 그룹은 연결을 여러 노드에 분산시킵니다. 규칙에는 구체적인 노드 이름 대신 정책 그룹 이름을 적어 두면, 노드가 바뀌어도 그룹 구성원만 조정하면 되고 규칙 한 줄도 고칠 필요가 없습니다. 이는 Clash 설정의 유지보수성을 뒷받침하는 핵심 메커니즘으로, 단순한 프록시 온오프 스위치와 구별되는 지점입니다.
proxy-groups:
- name: AUTO
type: url-test
url: http://www.gstatic.com/generate_204
interval: 300
proxies: [node-a, node-b, node-c]
dashboard.md
Clash 커널은 external-controller를 통해 RESTful API를 노출하며, 웹 대시보드는 이를 이용해 노드 전환, 지연 시간 테스트, 연결 확인, 로그 스트리밍을 제공합니다. 데스크톱 클라이언트는 대부분 대시보드 진입점을 내장하고 있으며, 브라우저에서 로컬 포트에 직접 접속해 metacubexd 같은 서드파티 대시보드를 사용할 수도 있습니다. 문제를 진단할 때 가장 많이 쓰는 것은 연결 페이지입니다 — 활성 연결마다 매칭된 규칙과 출구 노드가 표시되어 특정 도메인이 직접 연결인지 프록시를 탔는지 한눈에 확인할 수 있습니다. 로그 페이지에서 log-level: debug를 함께 사용하면 DNS 해석과 규칙 매칭의 전체 과정을 볼 수 있습니다.
external-controller: 127.0.0.1:9090
secret: ""
# 브라우저에서 대시보드를 열고 위 주소를 입력하면 커널에 연결됩니다
플랫폼별 클라이언트 받기
다섯 플랫폼은 각각 독립적으로 빌드를 관리합니다. 플랫폼 카드를 클릭하면 다운로드 페이지의 해당 섹션으로 이동하며, 각 플랫폼마다 여러 클라이언트를 선택할 수 있고 시스템 요구 사항과 설치 방법도 함께 안내합니다.
오픈소스 생태계와 업데이트 방식
history.md
Clash는 2018년 Go 언어로 오픈소스화되었고, 규칙 기반 분기와 YAML 설정 방식으로 이 분야의 사실상 표준 설정 형식이 되었습니다. 원본 커널이 보관 처리된 뒤에는 커뮤니티 포크인 mihomo(이전 명칭 Clash Meta)가 유지보수를 이어받아 더 많은 프록시 프로토콜, DNS 정책, TUN 스택 구현을 추가하면서도 원본 설정 형식과의 호환성을 유지하고 있습니다. 오늘날 각 플랫폼의 주요 GUI 클라이언트는 대부분 내부적으로 mihomo 커널을 사용합니다.
ecosystem.md
생태계는 커널과 GUI 클라이언트 두 계층으로 구성됩니다. 커널은 프로토콜 구현, 규칙 매칭, 트래픽 전달을 담당하고, Clash Verge Rev, FlClash, Nyanpasu 같은 클라이언트는 구독 관리, 인터페이스, 시스템 통합을 담당합니다. 모두 오픈소스 라이선스 아래 개발되어 코드를 공개적으로 검토할 수 있습니다. 같은 설정 파일을 여러 클라이언트에서 공통으로 사용할 수 있어 클라이언트를 바꿔도 설정을 다시 만들 필요가 없습니다.
releases.md
커널과 각 클라이언트는 각자의 저장소에서 독립적인 일정으로 버전을 배포합니다. 본 사이트 다운로드 페이지의 버전 번호와 설치 파일 링크는 버전 목록을 기반으로 자동 갱신되므로, 수동 관리로 인한 오래된 링크가 남지 않습니다. 유지보수가 중단된 클라이언트는 보관 상태로 명확히 표시하고, 계속 관리되는 대체 클라이언트를 안내합니다.
자주 묻는 질문 모음
- 구독 업데이트가 실패하면 어떻게 하나요?먼저 브라우저로 구독 링크를 직접 열어 오류 페이지가 아니라 YAML이 반환되는지 확인한 뒤, 유효 기간과 형식을 점검하세요. 해결 단계 보기 →
- 프록시를 켰는데도 웹페이지가 안 열리나요?노드 지연 시간 → 규칙 매칭 → DNS → 시스템 프록시 순서로 하나씩 확인하세요. 체크리스트 보기 →
- TUN 모드와 시스템 프록시 중 무엇을 써야 하나요?브라우저만 쓴다면 시스템 프록시로 충분하고, 커맨드라인 도구나 게임은 네트워크 계층에서 처리하는 TUN이 필요합니다. 용어 확인하기 →
- 7890 포트가 사용 중이라는 메시지가 뜨나요?포트를 점유한 프로세스를 찾거나, 클라이언트에서
mixed-port값을 바로 바꾸세요. 명령어 확인하기 →
최신 기술 노트
Clash는 연결됐는데 웹페이지가 안 열릴 때: 노드 지연부터 DNS까지 점검 체크리스트
프록시 스위치는 켜져 있는데 브라우저가 계속 로딩만 된다면, 노드, 규칙, DNS, 시스템 프록시 중 어디서든 문제가 생길 수 있습니다. 쉬운 것부터 어려운 순서로 아홉 가지 점검 포인트를 정리했습니다.
전체 보기 →Clash에서 포트 충돌 메시지가 뜰 때: 7890 포트를 점유한 프로세스 찾기와 혼합 포트 변경
실행 시 bind: address already in use 오류가 뜨면 기본 포트가 이미 사용 중이라는 뜻입니다. 세 플랫폼에서 점유 프로세스를 찾는 명령과 mixed-port 변경 전체 과정을 정리했습니다.
전체 보기 →Clash 클라이언트 화면 구성 한눈에 보기: 프록시, 설정, 로그 페이지가 하는 일
클라이언트를 처음 열면 낯선 화면에서 헤매기 쉽습니다. 노드와 정책 그룹, 구독 관리, 연결 기록이 각각 어떤 역할을 하는지, 자주 쓰는 기능은 어디에 있는지 구역별로 정리했습니다.
전체 보기 →