문서 설정 전역 설정

전역 설정

config.yaml 최상위에서 proxies/rules와 같은 레벨에 위치하는 필드들로, 코어 자체의 동작 방식을 제어합니다: 어떤 주소를 리스닝할지, 어떤 모드로 실행할지, 로그를 얼마나 상세히 남길지, API를 어떻게 개방할지 등을 결정합니다. 왼쪽 목차에서 가이드, 아웃바운드 프록시, 라우팅 규칙 등 다른 섹션으로 바로 이동할 수 있습니다.

LAN 허용

allow-lan선택

다른 기기가 이 기기의 프록시 포트를 통해 인터넷에 접속하도록 허용할지 여부입니다. 휴대폰이나 태블릿을 컴퓨터에서 실행 중인 Clash에 연결하려면 반드시 활성화해야 합니다.

bind-address선택

바인딩 주소로, 다른 기기는 이 주소를 통해서만 접근할 수 있습니다. "*"는 모든 IP에 바인딩하며, 단일 IPv4/IPv6 주소를 입력해 하나의 네트워크 인터페이스에만 바인딩할 수도 있습니다.

lan-allowed-ips / lan-disallowed-ips선택

LAN 접근을 위한 IP 화이트리스트와 블랙리스트로, allow-lan: true일 때만 적용되며 블랙리스트가 화이트리스트보다 우선합니다.

config.yaml YAML
allow-lan: true
bind-address: "*"
lan-allowed-ips:
  - 0.0.0.0/0
  - ::/0
lan-disallowed-ips:
  - 192.168.0.3/32
사용자 인증
authentication선택

http(s)/socks/mixed 프록시에 사용자 이름과 비밀번호 인증을 설정하며, "user:pass" 배열 형식입니다.

skip-auth-prefixes선택

인증을 건너뛸 수 있는 IP 대역을 설정합니다. 예: 127.0.0.1/8, ::1/128.

실행 모드와 로그

mode기본값 rule

rule 규칙 매칭(가장 많이 사용), global 전역 프록시로 모든 트래픽이 GLOBAL 프록시 그룹에서 선택된 노드를 거치고, direct 전역 직접 연결로 모든 프록시를 무시합니다.

log-level기본값 info

로그의 상세 정도로, 적은 순에서 많은 순으로: silent 무음 → errorwarninginfodebug(거의 모든 실행 정보를 출력하며, 문제 해결 시에만 필요).

ipv6기본값 true

코어가 IPv6 트래픽을 허용할지 여부입니다.

find-process-mode기본값 strict

연결을 시작한 프로세스를 매칭할지 여부입니다(PROCESS-NAME 규칙과 함께 사용): always는 모든 프로세스를 강제로 매칭하고, strict는 코어가 매칭이 필요한지 스스로 판단하며, off는 전혀 매칭하지 않습니다(공유기에서 실행할 때 추천).

TCP Keep Alive

모바일 기기에서는 다음 항목들을 적절히 조정하면 배터리 소모를 줄일 수 있습니다:

필드설명
keep-alive-intervalTCP Keep Alive 패킷 전송 간격(초 단위)
keep-alive-idleTCP Keep Alive의 최대 유지 시간
disable-keep-aliveTCP Keep Alive를 비활성화합니다. Android에서는 강제로 true로 설정됩니다

외부 제어(API)

대시보드(Dashboard)는 여기서 설정한 RESTful API를 통해 코어와 통신합니다.

external-controller선택

API 리스닝 주소로, 기본값 127.0.0.1:9090은 로컬 접근만 허용합니다. 0.0.0.0:9090으로 변경하면 모든 네트워크 인터페이스에서 리스닝할 수 있습니다(예: 휴대폰이 공유기에서 실행 중인 대시보드에 접속).

secret선택

API 접근 키로, 0.0.0.0으로 개방할 때는 반드시 설정하는 것을 강력히 권장합니다. 그렇지 않으면 누구나 대시보드에 접속해 설정을 변경할 수 있습니다.

external-controller-cors선택

API의 CORS 헤더 설정으로, allow-origins 배열과 allow-private-network로 구성됩니다.

external-ui / external-ui-url선택

대시보드 정적 웹 리소스(예: metacubexd)를 API 주소/ui에 마운트합니다. external-ui-url은 대시보드 리소스를 자동으로 다운로드/업데이트할 주소를 설정하는 데 사용됩니다.

config.yaml YAML
external-controller: 127.0.0.1:9090
secret: ""
external-ui: ui
external-ui-url: "https://github.com/MetaCubeX/metacubexd/archive/refs/heads/gh-pages.zip"

그 외에도 external-controller-tls(HTTPS API), external-controller-unix(Unix socket), external-controller-pipe(Windows namedpipe) 등의 고급 작성법이 있습니다. Unix socket / namedpipe로 API에 접근할 때는 secret을 검증하지 않으므로 보안에 직접 주의해야 합니다.

그 외 자주 쓰는 필드

필드설명
unified-delay통합 지연 시간을 활성화하면 RTT를 계산해 서로 다른 프로토콜의 핸드셰이크 소요 시간으로 인한 지연 차이를 제거하여 속도 측정값을 서로 비교할 수 있게 합니다
tcp-concurrentTCP 동시 연결을 활성화합니다: DNS로 해석된 모든 IP에 동시에 연결을 시도하고 가장 먼저 성공한 것을 채택하여 일부 회선의 연결 실패 문제를 완화할 수 있습니다
interface-namemihomo의 트래픽 아웃바운드 네트워크 인터페이스를 지정합니다
routing-markLinux에서 아웃바운드 연결에 기본 라우팅 마크를 설정합니다
profile.store-selected각 프록시 그룹에서 마지막으로 수동 선택한 노드를 기억해 재시작 후에도 다시 선택할 필요가 없게 합니다
profile.store-fake-ipfake-ip 매핑 테이블을 저장하여 도메인이 다시 연결될 때 기존 매핑 주소를 재사용합니다
global-client-fingerprint더 이상 사용되지 않으며, 각 proxy에서 직접 client-fingerprint를 설정하세요

GEO 데이터 소스

geodata-mode기본값 false

GEOIP 데이터 파일 형식으로, true.dat 형식을, false.mmdb 형식을 사용합니다.

geodata-loader기본값 memconservative

standard는 표준 로더이고, memconservative는 저용량 메모리 기기에 최적화된 로더입니다(공유기 등의 환경에 추천).

geo-auto-update / geo-update-interval선택

GEO 데이터베이스를 자동으로 업데이트할지와 업데이트 간격(단위: 시간)입니다.

geox-url선택

geoip/geosite/mmdb/asn 네 가지 데이터 파일의 다운로드 주소를 사용자 지정합니다. 네트워크 환경이 좋지 않을 때는 국내(중국) 미러로 변경할 수 있습니다.