Clash config.yaml 전체 가이드
Clash 설정 파일의 각 필드 의미를 깊이 있게 이해하고 프록시 노드, 그룹, 규칙 분로, DNS의 완벽한 작성법을 익혀 나에게 꼭 맞는 설정을 직접 만들어보세요.
config.yaml이란 무엇인가요?
config.yaml은 Clash의 핵심 설정 파일로 YAML 형식으로 작성됩니다. 이 파일은 Clash 코어에 다음과 같은 정보를 전달합니다.
수신 포트 정보
HTTP 프록시, SOCKS5 프록시, 투명 프록시 각각의 전용 포트
프록시 노드 목록
모든 노드의 서버 주소, 프로토콜 유형, 인증 정보
그룹화 및 전환 방식
전략별 노드 그룹화: 수동 선택, 자동 테스트, 장애 조치
트래픽 분로 규칙
직접 연결, 프록시 경유 또는 거부할 도메인 결정
설정 파일 기본 위치
%APPDATA%\clash-verge\profiles\
~/.config/clash-verge/profiles/
~/.config/clash-verge/profiles/
~/.config/mihomo/config.yaml
YAML 문법 속성
설정 파일을 작성하기 전, 형식이 틀려 Clash가 시작되지 않는 일을 방지하기 위해 YAML의 핵심 규칙을 숙지하십시오.
# 올바름: 스페이스 2칸으로 들여쓰기
proxies:
- name: "Node-A"
type: ss
# 잘못됨: Tab 키 사용 금지
proxies:
- name: "Node-A" # ← Tab 문자, 오류 발생
-로 시작합니다.# 문자열 목록
nameserver:
- 223.5.5.5
- 119.29.29.29
# 객체 목록 (각 항목에 여러 필드)
proxies:
- name: "Node-A"
type: ss
- name: "Node-B"
type: vmess
# 특수문자 포함 시 따옴표 필요
password: "p@ss:word#123"
# 영문자/숫자만인 경우 불필요
log-level: info
# 불리언 값은 따옴표 불필요
allow-lan: true
udp: false
#을 사용합니다.# 전체 줄 주석
port: 7890 # 줄 끝 주석
# 주석으로 각 설정의 목적을 기록할 수 있습니다
mode: rule # rule/global/direct
기본 구성 매개변수
포트 설정
Clash는 로컬 포트를 통해 프록시 서비스를 제공하며 응용 프로그램은 이 포트를 프록시 주소로 가리켜야 합니다.
# 옵션 1: 포트 분리 (호환성 최고)
port: 7890 # HTTP 프록시 포트
socks-port: 7891 # SOCKS5 프록시 포트
redir-port: 7892 # 투명 프록시 포트 (Linux/macOS, TUN 모드)
# 옵션 2: 혼합 포트 (권장, HTTP+SOCKS5 통합)
mixed-port: 7890
# 옵션 1과 상호 배타적, 하나만 선택
port정수브라우저 프록시 시 사용하는 HTTP 포트
socks-port정수게임 및 CLI 도구용 SOCKS5 포트
mixed-port정수HTTP+SOCKS5 혼합 포트 (권장)
redir-port정수TUN/iptables 시나리오용 투명 프록시 포트
allow-lan불리언로컬 네트워크의 다른 기기가 이 프록시를 사용할 수 있게 할지 여부 (기본: false)
프록시 모드 및 로그
mode: rule # rule | global | direct
log-level: info # silent | error | warning | info | debug
ipv6: false # IPv6 트래픽 수락 여부
rule규칙 모드 (Rule)가장 일반적이며 규칙에 따라 자동 분로함
global전역 프록시모든 트래픽을 프록시로 전달 (디버깅용)
direct전역 직접 연결프록시를 사용하지 않음 (끄기와 동일)
외부 제어 인터페이스 (RESTful API)
Clash는 외부 제어를 위한 RESTful API를 제공합니다. Metacubexd와 같은 웹 패널은 이 인터페이스를 통해 트래픽 정보를 조회하고 노드를 전환합니다.
external-controller: 127.0.0.1:9090 # API 수신 주소
secret: "" # API 액세스 토큰 (권장)
external-ui: ui # Web 패널 파일 디렉토리 (선택)
external-ui-url: "https://github.com/MetaCubeX/metacubexd/archive/gh-pages.zip"
external-controller를 0.0.0.0:9090으로 설정하면 로컬 네트워크의 다른 기기에서도 웹 패널에 접속할 수 있지만, 무단 접속 방지를 위해 반드시 secret(비밀번호)을 설정하십시오.DNS 설정 상세 정보
Clash의 내장 DNS 모듈은 시스템 DNS 해석을 가로채어 정밀한 분로를 구현하고 DNS 유출을 방지합니다. 규칙 모드 및 TUN 모드에서는 활성화를 강력히 권장합니다.
enhanced-mode: 핵심 DNS 작동 모드
dns:
enable: true # 내장 DNS 모듈 활성화
listen: 0.0.0.0:53 # DNS 수신 주소
ipv6: false # IPv6 DNS 해석 활성화
enhanced-mode: fake-ip # fake-ip (권장) 또는 redir-host
fake-ip-range: 198.18.0.1/16 # Fake-IP 주소 풀 범위
fake-ip가짜 IP를 반환하여 즉시 연결을 시작하고 Clash는 도메인별로 규칙 매칭권장
redir-host정상적인 DNS 해석 후 실제 IP로 IP-CIDR 규칙 매칭호환성 우수
업스트림 DNS 서버 설정
dns:
# 기본 DNS (로컬 도메인 해석용)
nameserver:
- 1.1.1.1 # Cloudflare DNS
- 8.8.8.8 # Google DNS
- system # 시스템 DNS 따르기
# 폴백 DNS (국제 도메인용, DNS 오염 방지)
# 암호화 DNS(DoT/DoH)로 ISP 하이재킹 방지
fallback:
- tls://8.8.8.8:853 # Google DNS over TLS
- tls://1.1.1.1:853 # Cloudflare DNS over TLS
- https://dns.google/dns-query # Google DoH
# 폴백 조건: 비로컬 IP로 판단될 때 폴백 DNS 사용
fallback-filter:
geoip: true
geoip-code: CN # 비CN IP에서 폴백 DNS 사용
ipcidr:
- 240.0.0.0/4 # 예약 주소 범위도 폴백 대상
fake-ip-filter: 가짜 IP에서 제외할 도메인
로컬 서비스 발견(NAS 등)이나 mDNS, 결제 인증처럼 실제 IP가 필요한 도메인은 Fake-IP 적용 대상에서 제외해야 합니다.
dns:
fake-ip-filter:
- '*.lan' # LAN 도메인 (Fake-IP 우회)
- '*.local' # 로컬 mDNS
- +.msftncsi.com # MS NCSI (네트워크 연결 확인)
- +.stun.*.* # STUN 서비스 (WebRTC)
- +.stun.*.*.*
- time.*.com # NTP 시간 동기화
- time.*.gov
- ntp.*.com
proxies — 프록시 노드 설정
proxies 필드는 목록 형태이며 각 항목은 개별 노드를 나타냅니다. 다음은 주요 프로토콜의 작성 방식입니다.
Shadowsocks
proxies:
- name: "🇭🇰 HK-SS" # 노드 이름 (커스텀 가능)
type: ss
server: hk.example.com # 서버 도메인 또는 IP
port: 443
cipher: aes-256-gcm # 암호화 방식 (일반: aes-256-gcm / chacha20-ietf-poly1305)
password: "your-password"
udp: true # UDP 전달 활성화 (게임에 필수)
# obfs 플러그인 포함 SS (난독화 강화)
- name: "🇯🇵 JP-SS-obfs"
type: ss
server: jp.example.com
port: 80
cipher: chacha20-ietf-poly1305
password: "your-password"
plugin: obfs
plugin-opts:
mode: http # http 또는 tls
host: bing.com # 위장용 대상 도메인
VMess
# VMess + WebSocket + TLS (가장 일반적인 조합)
- name: "🇺🇸 US-VMess-WS"
type: vmess
server: us.example.com
port: 443
uuid: "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
alterId: 0 # 최신 프로토콜 버전은 항상 0
cipher: auto
network: ws # 전송 프로토콜: ws / grpc / tcp / h2
tls: true
servername: us.example.com # SNI: server와 동일하거나 CDN 도메인
ws-opts:
path: /vmess # 서버 측 경로와 일치시켜야 함
headers:
Host: us.example.com
# VMess + gRPC (저지연, 높은 침투성)
- name: "🇸🇬 SG-VMess-gRPC"
type: vmess
server: sg.example.com
port: 443
uuid: "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
alterId: 0
cipher: auto
network: grpc
tls: true
grpc-opts:
grpc-service-name: "vmess-grpc"
Trojan
- name: "🇯🇵 JP-Trojan"
type: trojan
server: jp.example.com
port: 443
password: "your-password"
sni: jp.example.com # TLS SNI (보통 server와 동일)
udp: true
skip-cert-verify: false # 운영 환경에서 false 유지, 인증서 검증 건너뛰기 금지
# Trojan + WebSocket (CDN 중계용)
- name: "🇰🇷 KR-Trojan-WS"
type: trojan
server: kr.example.com
port: 443
password: "your-password"
network: ws
ws-opts:
path: /trojan
headers:
Host: kr.example.com
Hysteria 2
QUIC 기반의 차세대 프로토콜로 열악한 네트워크 환경에 최적화되어 국제 회선 가속에 유리합니다.
- name: "⚡ US-Hysteria2"
type: hysteria2
server: us.example.com
port: 443
password: "your-password"
sni: us.example.com
skip-cert-verify: false
# 실제 로컬 대역폭을 Mbps로 설정 (업/다운로드)
up: "50 Mbps"
down: "200 Mbps"
up / down 필드에는 노드 대역폭이 아닌 사용자 시스템의 실제 업로드/다운로드 대역폭을 입력하십시오. 정확한 값을 입력해야 QUIC의 최적 성능을 끌어낼 수 있으며 너무 크게 설정하면 오히려 혼잡이 발생할 수 있습니다.proxy-groups — 프록시 그룹 상세 가이드
프록시 그룹은 여러 노드를 전략에 따라 묶어 트래픽 규칙이 특정 노드가 아닌 '그룹'을 가리키도록 하는 Clash의 가장 강력한 기능 중 하나입니다.
select — 수동 선택
가장 기본적인 그룹 유형으로 사용자가 클라이언트 UI에서 직접 활성 노드를 선택합니다.
proxy-groups:
- name: "🚀 프록시 선택"
type: select
proxies:
- "⚡ 자동 선택" # 다른 프록시 그룹 참조
- "🛡️ 폴백"
- "🇭🇰 HK-SS" # 단일 노드 참조 (이름은 proxies 목록과 일치해야 함)
- "🇺🇸 US-VMess-WS"
- "🇯🇵 JP-Trojan"
- DIRECT # 특수값: 직접 연결, 프록시 없음
- REJECT # 특수값: 연결 거부 (광고 차단)
url-test — 자동 선택
모든 노드의 지연 시간을 주기적으로 테스트하여 자동으로 가장 빠른 노드로 전환합니다.
- name: "⚡ 자동 선택"
type: url-test
proxies:
- "🇭🇰 HK-SS"
- "🇺🇸 US-VMess-WS"
- "🇯🇵 JP-Trojan"
- "⚡ US-Hysteria2"
url: 'http://www.gstatic.com/generate_204' # 속도 테스트 대상 URL
interval: 300 # 테스트 간격 (초)
tolerance: 50 # 전환 허용치 (ms): 이 차이를 초과해야 전환
lazy: true # 지연 테스트: 트래픽 발생 시에만 테스트
fallback — 장애 조치
proxies 목록 순서대로 첫 번째 노드를 우선 사용하며, 첫 번째 노드를 사용할 수 없을 때 자동으로 다음 노드로 전환하여 연결성을 보장합니다.
- name: "🛡️ 폴백"
type: fallback
proxies:
- "🇭🇰 HK-SS" # 기본 노드
- "🇯🇵 JP-Trojan" # 백업 1
- "🇺🇸 US-VMess-WS" # 백업 2
url: 'http://www.gstatic.com/generate_204'
interval: 60 # 확인 간격 (초): 장애 빠른 감지를 위해 url-test보다 짧게
load-balance — 부하 분산
서로 다른 연결을 여러 노드로 분산시킵니다. 여러 연결이 동시에 발생하는 다운로드 시나리오 등에 적합하며 전체 대역폭 처리량을 높일 수 있습니다.
- name: "⚖️ 부하 분산"
type: load-balance
strategy: consistent-hashing # round-robin | consistent-hashing (같은 도메인 → 같은 노드)
proxies:
- "🇭🇰 HK-SS"
- "🇯🇵 JP-Trojan"
- "🇺🇸 US-VMess-WS"
url: 'http://www.gstatic.com/generate_204'
interval: 300
rules — 규칙 설정 상세 가이드
규칙은 각 네트워크 요청이 직접 연결될지, 어떤 프록시 그룹을 거칠지, 혹은 거부될지를 결정합니다. 규칙은 위에서 아래로 순차적으로 매칭되며, 첫 번째로 일치하는 규칙이 즉시 실행되고 나머지 규칙은 무시됩니다.
규칙 유형 개요
DOMAIN
DOMAIN,google.com,POLICY
전체 도메인 정확히 일치
DOMAIN-SUFFIX
DOMAIN-SUFFIX,google.com,POLICY
도메인 및 모든 서브 도메인 일치
DOMAIN-KEYWORD
DOMAIN-KEYWORD,google,POLICY
도메인에 키워드가 포함된 경우 일치
IP-CIDR
IP-CIDR,192.168.0.0/16,POLICY
대상 IP 주소 대역 일치
IP-CIDR6
IP-CIDR6,::1/128,POLICY
IPv6 주소 대역 일치
GEOIP
GEOIP,CN,POLICY
대상 IP의 지리적 위치(국가)별 일치
GEOSITE
GEOSITE,CN,POLICY
사전 정의된 도메인 데이터베이스 기반 일치(Mihomo 확장)
PROCESS-NAME
PROCESS-NAME,steam.exe,POLICY
요청을 보낸 프로세스 키워드 기반 일치 (데스크톱 전용)
RULE-SET
RULE-SET,rule-set-name,POLICY
외부 규칙 세트 파일 참조 (대량 규칙 관리)
MATCH
MATCH,POLICY
최종 규칙, 위에서 매칭되지 않은 모든 요청 처리 (반드시 마지막에 위치)
규칙 매칭 우선순위
DOMAIN)을 앞쪽에, 포괄적인 규칙(예: GEOIP)을 뒤쪽에 배치하고, MATCH는 반드시 마지막 줄에 두어야 합니다.DOMAIN 정밀 도메인최고DOMAIN-SUFFIX 도메인 접미사DOMAIN-KEYWORD 도메인 키워드IP-CIDR / GEOIP IP 주소 규칙MATCH 최종 매칭 (마지막)반드시 마지막자주 사용하는 규칙 작성 예시
rules:
# ===== 광고 및 악성 도메인 차단 =====
- DOMAIN-KEYWORD,adservice,REJECT
- DOMAIN-SUFFIX,doubleclick.net,REJECT
- DOMAIN-SUFFIX,googlesyndication.com,REJECT
# ===== 개발 도구를 프록시 경유 (정확한 매칭 우선) =====
- DOMAIN-SUFFIX,github.com,🚀 프록시 선택
- DOMAIN-SUFFIX,githubusercontent.com,🚀 프록시 선택
- DOMAIN-SUFFIX,npmjs.com,🚀 프록시 선택
- DOMAIN-SUFFIX,docker.io,🚀 프록시 선택
- DOMAIN-SUFFIX,docker.com,🚀 프록시 선택
# ===== 프로세스 이름 규칙 (데스크탑만 지원) =====
- PROCESS-NAME,steam.exe,🚀 프록시 선택
- PROCESS-NAME,git,🚀 프록시 선택
# ===== 사설 IP 범위: 직접 연결 =====
- IP-CIDR,127.0.0.0/8,DIRECT
- IP-CIDR,172.16.0.0/12,DIRECT
- IP-CIDR,192.168.0.0/16,DIRECT
- IP-CIDR,10.0.0.0/8,DIRECT
# ===== 중국 본토 IP: 직접 연결 =====
- GEOIP,CN,DIRECT
# ===== 캐치올: 나머지 트래픽을 프록시 경유 =====
- MATCH,🚀 프록시 선택
전체 config.yaml 예시
구성 방식이 완벽하고 주석이 상세히 달린 Clash 설정 파일 예제입니다. 세 가지 프로토콜 노드, 네 가지 프록시 그룹 유형 및 전체 규칙 분로가 포함되어 있어 필요한 부분만 수정하여 바로 사용할 수 있습니다.
# ============================================================
# Clash config.yaml — 전체 설정 예제
# ============================================================
# --- 기본 설정 ---
mixed-port: 7890
allow-lan: false
mode: rule
log-level: info
ipv6: false
external-controller: 127.0.0.1:9090
secret: ""
# --- DNS 설정 ---
dns:
enable: true
listen: 0.0.0.0:53
ipv6: false
enhanced-mode: fake-ip
fake-ip-range: 198.18.0.1/16
fake-ip-filter:
- '*.lan'
- '*.local'
- +.msftncsi.com
- +.stun.*.*
- time.*.com
- ntp.*.com
nameserver:
- 1.1.1.1
- 8.8.8.8
fallback:
- tls://8.8.8.8:853
- tls://1.1.1.1:853
fallback-filter:
geoip: true
geoip-code: CN
# --- 프록시 노드 ---
proxies:
- name: "🇭🇰 HK-SS"
type: ss
server: hk.example.com
port: 443
cipher: aes-256-gcm
password: "your-ss-password"
udp: true
- name: "🇺🇸 US-VMess"
type: vmess
server: us.example.com
port: 443
uuid: "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
alterId: 0
cipher: auto
network: ws
tls: true
servername: us.example.com
ws-opts:
path: /vmess
headers:
Host: us.example.com
- name: "🇯🇵 JP-Trojan"
type: trojan
server: jp.example.com
port: 443
password: "your-trojan-password"
sni: jp.example.com
udp: true
# --- 프록시 그룹 ---
proxy-groups:
- name: "🚀 프록시 선택"
type: select
proxies:
- "⚡ 자동 선택"
- "🛡️ 폴백"
- "🇭🇰 HK-SS"
- "🇺🇸 US-VMess"
- "🇯🇵 JP-Trojan"
- DIRECT
- name: "⚡ 자동 선택"
type: url-test
proxies:
- "🇭🇰 HK-SS"
- "🇺🇸 US-VMess"
- "🇯🇵 JP-Trojan"
url: 'http://www.gstatic.com/generate_204'
interval: 300
tolerance: 50
- name: "🛡️ 폴백"
type: fallback
proxies:
- "🇭🇰 HK-SS"
- "🇯🇵 JP-Trojan"
- "🇺🇸 US-VMess"
url: 'http://www.gstatic.com/generate_204'
interval: 60
- name: "🎬 스트리밍"
type: select
proxies:
- "🇺🇸 US-VMess"
- "🇯🇵 JP-Trojan"
- "🚀 프록시 선택"
# --- 규칙 ---
rules:
# 광고 차단
- DOMAIN-KEYWORD,adservice,REJECT
- DOMAIN-SUFFIX,doubleclick.net,REJECT
# 스트리밍
- DOMAIN-SUFFIX,netflix.com,🎬 스트리밍
- DOMAIN-SUFFIX,nflxso.net,🎬 스트리밍
- DOMAIN-SUFFIX,disneyplus.com,🎬 스트리밍
- DOMAIN-SUFFIX,spotify.com,🎬 스트리밍
# 개발 도구
- DOMAIN-SUFFIX,github.com,🚀 프록시 선택
- DOMAIN-SUFFIX,githubusercontent.com,🚀 프록시 선택
- DOMAIN-SUFFIX,npmjs.com,🚀 프록시 선택
- DOMAIN-SUFFIX,docker.io,🚀 프록시 선택
# 사설 IP: 직접 연결
- IP-CIDR,127.0.0.0/8,DIRECT
- IP-CIDR,192.168.0.0/16,DIRECT
- IP-CIDR,10.0.0.0/8,DIRECT
# 중국 본토 IP: 직접 연결
- GEOIP,CN,DIRECT
# 캐치올: 나머지를 프록시 경유
- MATCH,🚀 프록시 선택
설정이 완료되었나요? 클라이언트를 다운로드하여 사용해 보세요.
설정 파일을 Clash 클라이언트에 가져오거나, 「구독」 기능을 통해 제공업체의 관리된 설정을 직접 사용할 수 있습니다.