설정 참고 · 필드 설명 · 동작 원리Clash 설정 참고 문서 필드와 동작 원리
Clash와 Mihomo의 규칙 기반 라우팅, DNS, TUN, 서비스 운영 문서입니다. 필드 설명과 설정 예제로 설정 방법과 문제 해결 절차를 확인하세요.
소개
문서 4개Clash란 무엇인가요?
Clash 코어는 어떤 역할을 하며 그래픽 클라이언트와 어떻게 다를까요? 인바운드, 아웃바운드, 규칙 라우팅으로 통신 흐름을 이해하고 DNS, 정책 그룹, Providers, RESTful API 및 오픈 소스 버전과 Premium 버전의 차이를 확인하세요.
빠른 시작
Clash 코어를 단독으로 실행하려면 미리 빌드된 바이너리를 내려받거나 Go로 소스에서 빌드할 수 있습니다. 기기에 맞는 방식을 선택하고 GOPATH, 실행 버전, 크로스 컴파일에 필요한 GOOS와 GOARCH를 확인하세요.
Clash를 서비스로 실행
Clash를 백그라운드에서 실행하고 시스템 부팅 시 자동으로 시작하려면 바이너리와 config.yaml을 systemd 서비스로 설정하세요. daemon-reload, 시작, 상태 확인 순서로 진행하며 Docker 실행 예제도 참고할 수 있습니다.
자주 묻는 질문
라우터나 컨테이너에서 Clash 노드가 제대로 작동하지 않거나 Premium 연결 실패, RULE-SET 오류가 발생하나요? 증상에 따라 GOAMD64 아키텍처, 규칙 일치, DNS 하이재킹을 확인하고 규칙 복잡도가 동작에 미치는 영향도 살펴보세요.
설정
문서 7개Clash 설정 소개
Clash YAML 설정을 읽을 때는 Inbound에서 규칙 라우팅을 거쳐 Outbound로 이어지는 요청 흐름을 먼저 파악하세요. 이어서 rules의 TYPE, ARGUMENT, POLICY 작성 방법과 no-resolve의 용도를 확인할 수 있습니다.
설정 빠른 시작
config.yaml을 어디에 둘지 모르거나 다른 설정 파일을 지정해야 하나요? 기본 디렉터리와 -d, -f 실행 옵션을 확인한 뒤 IPv6 대괄호, DNS 와일드카드 도메인의 따옴표와 일치 우선순위를 점검하세요.
Inbound 인바운드
브라우저, 로컬 네트워크 기기 또는 투명 프록시의 트래픽을 Clash로 보내려면 먼저 HTTP(S), SOCKS5, mixed-port, Redirect, TProxy, TUN 중 인바운드를 선택한 뒤 수신 포트와 allow-lan을 설정하세요.
Outbound 아웃바운드
원본 Clash의 노드를 직접 입력할 때는 Shadowsocks, SSR, VMess, SOCKS5, HTTP, Snell, Trojan에 맞는 형식을 찾은 뒤 인증, 암호화, TLS, UDP, 플러그인 필드를 하나씩 확인하세요.
Rules 규칙
요청을 직접 연결하거나 차단하거나 지정한 노드로 보내려면 규칙 순서와 정책 그룹을 먼저 파악하세요. DOMAIN, GEOIP, IP-CIDR, RULE-SET, SCRIPT, MATCH에서 일치 방식을 선택하고 no-resolve도 확인할 수 있습니다.
Clash DNS
도메인 해석이나 라우팅이 잘못되거나 로컬 네트워크 도메인에 접속할 수 없나요? 해석 결과와 함께 Clash DNS의 nameserver, fallback, fake-ip, nameserver-policy, IPv6 설정을 확인하세요.
설정 참고
Clash YAML을 작성하거나 점검할 때 전체 설정 예제로 필드의 위치와 작성 방법을 확인하세요. 필요에 따라 로컬 포트, 모드, 로그, 제어 인터페이스, DNS, TUN, 노드, 정책 그룹, Providers, rules를 설정할 수 있습니다.
프록시 프로토콜
문서 14개HTTP / HTTPS 아웃바운드 프록시
현재 Mihomo 필드를 기준으로 Clash 생태계의 HTTP 아웃바운드를 설정합니다. CONNECT 터널, 프록시 인증, HTTPS 업스트림, 인증서 검증을 다룹니다.
SOCKS5 아웃바운드 프록시
현재 Mihomo 필드를 기준으로 Clash 생태계의 SOCKS5 아웃바운드를 설정합니다. TCP CONNECT, UDP Associate, 인증, TLS 래핑을 다룹니다.
Shadowsocks (SS)
현재 Mihomo 필드를 기준으로 Clash 생태계의 Shadowsocks 아웃바운드를 설정합니다. 암호화 방식, UDP over TCP, 플러그인 전송을 다룹니다.
ShadowsocksR (SSR)
현재 Mihomo 필드를 기준으로 Clash 생태계의 ShadowsocksR 아웃바운드를 설정합니다. 스트림 암호화, Protocol, Obfs, 이전 노드와의 호환 범위를 다룹니다.
VMess
현재 Mihomo 필드를 기준으로 Clash 생태계의 VMess 아웃바운드를 설정하고 사용자 ID, 프로토콜 버전, 암호화, UDP, 전송 계층, TLS 매개변수를 확인합니다.
VLESS
현재 Mihomo 필드를 기준으로 Clash 생태계의 VLESS 아웃바운드를 설정하고 UUID, Vision, VLESS Encryption, Reality, UDP, 전송 계층의 차이를 구분합니다.
Trojan
현재 Mihomo 필드를 기준으로 Clash 생태계의 Trojan 아웃바운드를 설정하고 비밀번호, 필수 TLS, SNI, 인증서, Reality, UDP, 전송 계층을 확인합니다.
Snell
현재 Mihomo 필드를 기준으로 Clash 생태계의 Snell 아웃바운드를 설정합니다. psk, version, udp, obfs-opts, smux를 확인하고 최소 YAML, 버전 호환성, 인증 문제 해결을 다룹니다.
AnyTLS
현재 Mihomo 필드를 기준으로 Clash 생태계의 AnyTLS 아웃바운드를 설정합니다. password, sni, 클라이언트 지문, 유휴 세션 검사, TLS 검증을 확인하고 최소 YAML과 흔한 핸드셰이크 오류를 살펴봅니다.
Hysteria
현재 Mihomo 필드를 기준으로 Clash 생태계의 Hysteria 1.x 아웃바운드를 설정합니다. 인증, 전송 모드, 대역폭, 포트 호핑, QUIC 매개변수를 다룹니다.
Hysteria2
현재 Mihomo 필드를 기준으로 Clash 생태계의 Hysteria2 아웃바운드를 설정합니다. 인증, 포트 호핑, 난독화, 혼잡 제어, Realm 매개변수를 다룹니다.
TUIC
현재 Mihomo 필드를 기준으로 Clash 생태계의 TUIC 아웃바운드를 설정합니다. v4와 v5 인증을 구분하고 TLS, QUIC, UDP 릴레이, 연결 매개변수를 확인합니다.
WireGuard
현재 Mihomo 필드를 기준으로 Clash 생태계의 WireGuard 아웃바운드를 설정합니다. 로컬 인터페이스, Peer, Allowed IPs, MTU, 원격 DNS를 다룹니다.
전송 계층 설정
현재 Mihomo 필드를 기준으로 Clash의 VMess, VLESS, Trojan에 올바른 network, 관련 opts, TLS 설정과 프로토콜 범위를 연결하는 방법을 설명합니다.
Premium 버전
문서 9개Premium 소개
TUN, eBPF, Rule Providers, Script가 필요한데 오픈 소스 코어로 가능한지 모르겠나요? Clash Premium의 확장 기능, 사용자 공간 WireGuard, 성능 분석 기능을 비교한 뒤 버전 입수 방법을 확인하세요.
기능: TUN 장치
Clash Premium TUN으로 TCP, UDP, ICMP를 처리할 때는 운영체제에 맞춰 auto-route, auto-redir, system/gvisor, DNS 하이재킹 설정을 확인하세요. 활성화하기 전에 플랫폼별 제한도 점검해야 합니다.
기능: eBPF를 TUN으로 리디렉션
Linux에서 eBPF redirect-to-tun으로 트래픽을 TUN에 보내기 전에 인터페이스와 커널 요구 사항을 확인하세요. tun.auto-route, Tailscaled와의 충돌 및 사용할 수 있는 대체 방법도 점검할 수 있습니다.
기능: Rule Providers 규칙 세트
규칙 세트를 재사용하려면 domain, ipcidr, classical 중 형식을 선택하세요. rule-providers의 behavior, url, interval, path를 설정하고 RULE-SET으로 참조합니다.
기능: Script
스크립트로 요청 경로를 결정해야 할 때는 Script 모드에서 Python3 main(ctx, metadata)를 작성하고 resolve_ip, geoip, rule_providers로 일치 여부를 판단하세요. IP 해석 요구 사항도 확인해야 합니다.
기능: Script Shortcuts
Clash Premium의 Rule 모드에서 스크립트 조건을 재사용하려면 Expr과 Starlark를 비교한 뒤 Script Shortcuts로 단축 조건을 정의하세요. 변수, 함수, no-resolve 요구 사항에 맞춰 규칙을 작성할 수 있습니다.
기능: 사용자 공간 WireGuard
Clash Premium 사용자 공간 WireGuard 노드를 설정할 때는 private-key, public-key, preshared-key, 주소를 확인한 뒤 원격 DNS, MTU, UDP를 설정하세요.
기능: 프로파일링 엔진
Clash Premium의 성능이 저하되는데 일반 로그로는 원인을 찾기 어렵나요? tracing의 설정 위치와 활성화 방법을 확인하고 성능 샘플링 출력으로 어떤 분석을 할 수 있는지 살펴보세요.
실험적 기능
Clash 실험적 기능을 켜기 전에 현재 코어 버전에서 지원하는지, 설정을 어디에 작성해야 하는지 확인하고 되돌릴 수 있는 환경에서 동작을 검증하세요. 특정 버전의 실험적 동작을 안정된 사양으로 간주해서는 안 됩니다.
런타임
문서 1개고급 사용법
문서 3개규칙 기반 WireGuard
특정 트래픽만 WireGuard로 보내려면 기본 경로를 넘겨받는 기능을 끈 뒤 interface-name, DIRECT, DOMAIN 규칙으로 요청을 wg0에 보내세요. AllowedIPs, MTU, endpoint도 확인할 수 있습니다.
규칙 기반 OpenConnect
VPN이 기본 경로를 넘겨받지 않고 일부 요청만 OpenConnect로 보내야 하나요? 인터페이스 이름과 라우팅 테이블을 확인한 뒤 해당 인터페이스, DIRECT 정책, 대상 규칙을 Clash 라우팅에 연결하세요.
Golang 프로그램에 Clash 통합
Go 프로그램에서 프록시 연결을 받아 전달할 때는 Clash의 SOCKS listener와 ConnContext에서 메타데이터를 읽고 Direct 아웃바운드, DialContext, relay를 연결해 양방향으로 전송할 수 있습니다.