라우팅 규칙
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.com은 www.google.com/mail.google.com/google.com과 매칭되지만 content-google.com과는 매칭되지 않습니다 |
DOMAIN-KEYWORD | 도메인 키워드 매칭 |
DOMAIN-WILDCARD | 와일드카드 매칭으로, *(0개 이상의 문자)와 ?(한 개의 문자)만 지원합니다. 설정 파일의 다른 곳에서 사용하는 Clash 스타일 와일드카드와는 다른 문법이므로 주의하세요 |
DOMAIN-REGEX | 도메인 정규식 매칭 |
GEOSITE | Geosite 데이터베이스 내의 도메인 분류를 매칭하며, 일부 데이터는 v2fly/domain-list-community에서 가져왔습니다 |
IP 유형
| 유형 | 설명 |
|---|---|
IP-CIDR / IP-CIDR6 | IP 주소 범위를 매칭하며, 두 가지 모두 동일한 효과이고 IP-CIDR6은 별칭일 뿐입니다 |
IP-SUFFIX | IP 접미사 범위를 매칭합니다 |
IP-ASN | IP가 속한 ASN(자율 시스템 번호)을 매칭합니다 |
GEOIP | IP가 속한 국가 코드를 매칭합니다 |
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-NAME | Rematch 아웃바운드가 기록한 이름을 매칭합니다 |
PROCESS-PATH / PROCESS-PATH-WILDCARD / PROCESS-PATH-REGEX | 전체 프로세스 경로로 매칭합니다(세 가지 작성법: 전체 경로 / 와일드카드 / 정규식) |
PROCESS-NAME / PROCESS-NAME-WILDCARD / PROCESS-NAME-REGEX | 프로세스 이름으로 매칭하며, Android에서는 패키지 이름과도 매칭됩니다 |
UID | Linux 사용자 ID를 매칭합니다 |
NETWORK | tcp 또는 udp를 매칭합니다 |
DSCP | DSCP 마크를 매칭하며, 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" 매칭으로 변환합니다.