문서 설정 라우팅 규칙

라우팅 규칙

rules 배열은 라우팅의 핵심으로, 위에서 아래로 순서대로 매칭하며 첫 번째로 매칭된 규칙의 아웃바운드를 사용하고 나머지 규칙은 더 이상 판단하지 않습니다.

작성법 개요

config.yaml YAML
rules:
  - DOMAIN,ad.com,REJECT
  - DOMAIN-SUFFIX,google.com,auto
  - DOMAIN-KEYWORD,google,auto
  - DOMAIN-WILDCARD,*.google.com,auto
  - DOMAIN-REGEX,^abc.*com,PROXY
  - GEOSITE,youtube,PROXY

  - IP-CIDR,127.0.0.0/8,DIRECT,no-resolve
  - IP-CIDR6,2620:0:2d0:200::7/32,auto
  - IP-ASN,13335,DIRECT
  - GEOIP,CN,DIRECT

  - DST-PORT,80,DIRECT
  - PROCESS-NAME,curl,PROXY
  - NETWORK,udp,DIRECT

  - RULE-SET,providername,proxy
  - AND,((DOMAIN,baidu.com),(NETWORK,UDP)),DIRECT
  - SUB-RULE,(NETWORK,tcp),sub-rule

  - MATCH,auto

규칙은 위에서 아래 순서로 매칭되며, 앞에 있는 규칙이 우선순위가 더 높습니다. 요청이 UDP인데 매칭된 프록시 노드가 udp: true를 활성화하지 않았다면, 바로 실패하지 않고 계속해서 다음 규칙을 매칭합니다.

도메인 유형

유형설명
DOMAIN완전한 도메인을 매칭합니다
DOMAIN-SUFFIX도메인 접미사를 매칭합니다. 예를 들어 google.comwww.google.com/mail.google.com/google.com과 매칭되지만 content-google.com과는 매칭되지 않습니다
DOMAIN-KEYWORD도메인 키워드 매칭
DOMAIN-WILDCARD와일드카드 매칭으로, *(0개 이상의 문자)와 ?(한 개의 문자)만 지원합니다. 설정 파일의 다른 곳에서 사용하는 Clash 스타일 와일드카드와는 다른 문법이므로 주의하세요
DOMAIN-REGEX도메인 정규식 매칭
GEOSITEGeosite 데이터베이스 내의 도메인 분류를 매칭하며, 일부 데이터는 v2fly/domain-list-community에서 가져왔습니다

IP 유형

유형설명
IP-CIDR / IP-CIDR6IP 주소 범위를 매칭하며, 두 가지 모두 동일한 효과이고 IP-CIDR6은 별칭일 뿐입니다
IP-SUFFIXIP 접미사 범위를 매칭합니다
IP-ASNIP가 속한 ASN(자율 시스템 번호)을 매칭합니다
GEOIPIP가 속한 국가 코드를 매칭합니다
SRC-GEOIP / SRC-IP-ASN / SRC-IP-CIDR / SRC-IP-SUFFIX해당하는 소스 IP 버전으로, 대상이 아닌 연결을 시작한 소스를 매칭합니다

포트 / 인바운드 / 프로세스 / 기타

유형설명
DST-PORT / SRC-PORT대상/소스 포트 범위를 매칭합니다
IN-PORT / IN-TYPE / IN-USER / IN-NAME인바운드 포트/유형/사용자 이름/이름을 매칭합니다
REMATCH-NAMERematch 아웃바운드가 기록한 이름을 매칭합니다
PROCESS-PATH / PROCESS-PATH-WILDCARD / PROCESS-PATH-REGEX전체 프로세스 경로로 매칭합니다(세 가지 작성법: 전체 경로 / 와일드카드 / 정규식)
PROCESS-NAME / PROCESS-NAME-WILDCARD / PROCESS-NAME-REGEX프로세스 이름으로 매칭하며, Android에서는 패키지 이름과도 매칭됩니다
UIDLinux 사용자 ID를 매칭합니다
NETWORKtcp 또는 udp를 매칭합니다
DSCPDSCP 마크를 매칭하며, tproxy UDP 인바운드에만 적용됩니다
RULE-SET규칙 프로바이더를 참조하며, rule-providers 설정이 필요합니다

논리 규칙과 서브 규칙

AND / OR / NOT

작성법은 LOGIC_TYPE,((payload1),(payload2)),Proxy이며, payload는 규칙 유형과 내용입니다. 예: DOMAIN,google.com. 괄호 사용에 주의하세요. 여러 조건은 이중 괄호로 감싸야 합니다.

AND,((DOMAIN,baidu.com),(NETWORK,UDP)),DIRECT
OR,((NETWORK,UDP),(DOMAIN,baidu.com)),REJECT
NOT,((DOMAIN,baidu.com)),PROXY
SUB-RULE

서브 규칙 세트에 매칭되며, 자세한 내용은 별도의 서브 규칙 페이지를 참고하세요.

MATCH

모든 요청을 매칭하며 어떤 조건도 필요 없습니다. 보통 규칙 목록의 마지막에 배치해 기본값으로 사용합니다.

추가 파라미터

no-resolve대상 IP 규칙에만 해당

도메인이 "대상 IP" 유형 규칙과 매칭을 시작할 때, mihomo는 먼저 DNS 해석을 한 번 수행해 해석된 IP가 해당 규칙과 일치하는지 확인합니다. no-resolve를 추가하면 이 해석을 건너뛸 수 있습니다. 앞의 규칙에서 이미 해석이 실행되었다면, no-resolve를 추가해도 기존 해석 결과로 계속 매칭합니다.

src대상 IP 규칙에만 해당

"대상 IP" 매칭을 "소스 IP" 매칭으로 변환합니다.