설정 가이드

더 자세히 알고 싶으신가요? 문서가 여기 있습니다

Clash의 모든 동작은 하나의 config.yaml 파일로 결정됩니다.
이 페이지에서는 설정 파일의 각 부분을 자세히 설명하며, 예시는 그대로 복사해서 수정할 수 있습니다.

설정 파일 개요

Clash의 설정 파일은 YAML 형식의 텍스트이며 기본 이름은 config.yaml입니다. 구독을 사용할 경우 서비스 제공업체가 이미 작성해 두었으므로 보통 직접 편집할 필요가 없습니다. 라우팅이나 DNS 동작을 커스터마이징하고 싶을 때만 구조를 이해하면 됩니다. 설정은 위에서부터 크게 4개 블록으로 나뉩니다:

config.yaml의 뼈대
# 1. Basic settings: ports, mode, log level
mixed-port: 7890
mode: rule

# 2. Proxy nodes: where traffic can go
proxies: [...]

# 3. Proxy groups: how to pick a node
proxy-groups: [...]

# 4. Rules: which traffic goes where
rules: [...]

한 문장만 기억하면 됩니다: proxies는 "어떤 경로가 있는지"를 정의하고, proxy-groups는 "경로를 어떻게 고를지"를 정의하며, rules는 "어떤 트래픽이 어느 경로로 갈지"를 정의합니다.

프록시 노드(proxies)

각 노드는 하나의 리스트 항목이며, type이 프로토콜을 결정합니다. 프로토콜마다 필드가 약간 다릅니다. Shadowsocks, VMess, VLESS, Trojan, WireGuard 등 주요 프로토콜을 지원하며, 아래는 가장 흔한 두 가지 작성법입니다:

proxies 예시
proxies:
  - name: "홍콩 01"
    type: ss
    server: hk01.example.com
    port: 8388
    cipher: aes-256-gcm
    password: "your-password"

  - name: "도쿄 02"
    type: vmess
    server: jp02.example.com
    port: 443
    uuid: 23ad6b10-8d1a-40f7-8ad0-e3e35cd38297
    alterId: 0
    cipher: auto
    tls: true

구독을 사용한다면 이 부분은 신경 쓰지 않아도 됩니다. 노드 목록이 구독에 따라 자동으로 업데이트됩니다.

프록시 그룹(proxy-groups)

프록시 그룹은 노드들을 "하나의 선택 항목"으로 묶는 것으로, 규칙에서는 개별 노드가 아닌 그룹 이름을 참조합니다. 자주 쓰이는 4가지 유형:

유형동작적합한 상황
select수동 선택, 클릭한 노드가 바로 사용됨일상적으로 주로 사용, 직접 제어
url-test주기적으로 속도 테스트해 가장 빠른 노드를 자동 선택자동으로 최적 노드를 고르고 싶다면, 한 번 설정하면 끝
fallback순서대로 확인해 처음으로 사용 가능한 노드 사용메인/백업 라인, 장애 시 즉시 전환
load-balance여러 노드에 요청을 분산고동시성 다운로드, 다중 연결
proxy-groups 예시
proxy-groups:
  - name: "노드 선택"
    type: select
    proxies: [자동 선택, 홍콩 01, 도쿄 02]

  - name: "자동 선택"
    type: url-test
    proxies: [홍콩 01, 도쿄 02]
    url: "http://www.gstatic.com/generate_204"
    interval: 300

interval: 300은 300초마다 속도를 다시 테스트한다는 의미입니다. 테스트 주소는 gstatic의 204 페이지가 가장 안정적입니다.

라우팅 규칙(rules)

규칙은 위에서부터 하나씩 매칭되며 가장 먼저 일치한 규칙이 적용됩니다. 그러므로 더 구체적인 규칙을 앞에 배치하고, 마지막에 MATCH로 나머지를 처리합니다. 각 규칙의 형식은 "유형,매칭 내용,출구"입니다:

규칙 유형의미예시
DOMAIN전체 도메인 이름 정확히 일치DOMAIN,www.google.com,노드 선택
DOMAIN-SUFFIX도메인과 모든 하위 도메인에 일치DOMAIN-SUFFIX,youtube.com,노드 선택
DOMAIN-KEYWORD도메인에 키워드가 포함되면 일치DOMAIN-KEYWORD,github,노드 선택
IP-CIDR대상 IP가 지정 범위에 속하면 일치IP-CIDR,8.8.8.8/32,노드 선택
GEOIPIP 소속 국가로 일치GEOIP,KR,DIRECT
MATCH나머지 모든 트래픽을 처리하는 최종 규칙MATCH,노드 선택

출구에는 프록시 그룹 이름 외에도 2가지 내장 값이 있습니다: DIRECT(프록시를 거치지 않고 직접 연결)와 REJECT(요청 거부, 광고 차단에 자주 사용).

일반적인 규칙 예시
rules:
  # Ads: reject outright
  - DOMAIN-KEYWORD,adservice,REJECT
  # Overseas services: via proxy group
  - DOMAIN-SUFFIX,youtube.com,노드 선택
  - DOMAIN-SUFFIX,github.com,노드 선택
  # Local/trusted traffic: direct connection
  - DOMAIN-SUFFIX,kr,DIRECT
  - GEOIP,KR,DIRECT
  # Everything else: via proxy group
  - MATCH,노드 선택

DNS 설정

DNS는 "도메인이 어떻게 IP로 변환되는지"를 결정합니다. 설정이 잘못되면 오염이나 규칙 오작동이 발생할 수 있으므로, 다음의 검증된 설정을 그대로 사용하는 것을 추천합니다:

추천 dns 설정
dns:
  enable: true
  enhanced-mode: fake-ip
  fake-ip-range: 198.18.0.1/16
  nameserver:
    - 1.1.1.1          # Cloudflare
    - 8.8.8.8          # Google
  fallback:
    - https://1.1.1.1/dns-query
    - https://8.8.8.8/dns-query

핵심: fake-ip 모드는 응답이 빠르고 호환성이 좋습니다. nameserver는 일반 도메인 해석을 담당하고, fallback은 암호화된 DNS로 해외 도메인의 오염을 방지합니다.

포트 및 자주 쓰는 설정

필드설명추천 값
mixed-portHTTP와 SOCKS5가 공유하는 혼합 포트7890
mode프록시 모드: rule / global / directrule
allow-lan같은 네트워크의 다른 기기가 이 클라이언트를 통해 인터넷을 사용할 수 있도록 허용false(필요 시 활성화)
log-level로그 레벨, 문제 해결 시 높게 설정info
external-controller제어판 API 주소127.0.0.1:9090

allow-lan을 활성화하면 같은 Wi-Fi에 있는 스마트폰이나 TV도 프록시 주소를 "컴퓨터 IP:7890"으로 지정하면 Clash를 경유해 인터넷을 사용할 수 있습니다. 각 기기에 따로 설치할 필요가 없습니다.

전체 예시

위의 모든 조각을 합치면 바로 실행 가능한 최소 설정이 완성됩니다. 노드 정보만 교체하면 사용할 수 있습니다:

config.yaml 완전한 최소 예시
mixed-port: 7890
allow-lan: false
mode: rule
log-level: info
external-controller: 127.0.0.1:9090

dns:
  enable: true
  enhanced-mode: fake-ip
  nameserver: [1.1.1.1, 8.8.8.8]
  fallback: [https://1.1.1.1/dns-query]

proxies:
  -     name: "홍콩 01"
    type: ss
    server: hk01.example.com
    port: 8388
    cipher: aes-256-gcm
    password: "your-password"

proxy-groups:
  - name: "노드 선택"
    type: select
    proxies: [홍콩 01]

rules:
  - DOMAIN-KEYWORD,adservice,REJECT
  - GEOIP,KR,DIRECT
  - MATCH,노드 선택
변경했는데 적용이 안 되나요? 데스크톱에서는 "프로필" 페이지의 새로고침 버튼을 클릭하고, Linux 명령줄에서는 systemctl restart mihomo를 실행하세요. YAML은 들여쓰기에 민감하므로 오류가 발생하면 먼저 Tab과 스페이스가 혼용되었는지 확인하세요.