규칙 세트

URL, 구성된 규칙 제공자 또는 구성 파일 안의 인라인 섹션에서 규칙 묶음을 사용할 수 있습니다. Chute는 두 가지 내부 규칙 세트도 제공합니다.

내부 규칙 세트

SYSTEM

RULE-SET,SYSTEM,DIRECT

macOS 및 iOS 자체에서 전송되는 대부분의 요청에 대한 규칙을 포함합니다. App Store, iTunes 및 기타 콘텐츠 서비스에서 전송된 요청은 포함되지 않습니다.

USER-AGENT,*com.apple.mobileme.fmip1
USER-AGENT,*WeatherFoundation*
USER-AGENT,%E5%9C%B0%E5%9B%BE*
USER-AGENT,%E8%AE%BE%E7%BD%AE*
USER-AGENT,com.apple.geod*
USER-AGENT,com.apple.Maps
USER-AGENT,FindMyFriends*
USER-AGENT,FindMyiPhone*
USER-AGENT,FMDClient*
USER-AGENT,FMFD*
USER-AGENT,fmflocatord*
USER-AGENT,geod*
USER-AGENT,locationd*
USER-AGENT,Maps*
DOMAIN,api.smoot.apple.com
DOMAIN,captive.apple.com
DOMAIN,configuration.apple.com
DOMAIN,guzzoni.apple.com
DOMAIN,smp-device-content.apple.com
DOMAIN,xp.apple.com
DOMAIN-SUFFIX,ess.apple.com
DOMAIN-SUFFIX,push-apple.com.akadns.net
DOMAIN-SUFFIX,push.apple.com
DOMAIN,aod.itunes.apple.com
DOMAIN,mesu.apple.com
DOMAIN,api.smoot.apple.cn
DOMAIN,gs-loc.apple.com
DOMAIN,mvod.itunes.apple.com
DOMAIN,streamingaudio.itunes.apple.com
DOMAIN-SUFFIX,lcdn-locator.apple.com
DOMAIN-SUFFIX,lcdn-registration.apple.com
DOMAIN-SUFFIX,ls.apple.com
PROCESS-NAME,trustd

이 규칙은 Chute 업데이트와 함께 업데이트될 수 있습니다. 최신 하위 규칙을 확인하려면 소프트웨어의 설명을 참조하세요.


LAN

RULE-SET,LAN,DIRECT

LAN IP 주소 및 .local 접미사에 대한 규칙을 포함합니다. 이 규칙 세트는 DNS 조회를 트리거합니다.

DOMAIN-SUFFIX,local
IP-CIDR,192.168.0.0/16
IP-CIDR,10.0.0.0/8
IP-CIDR,172.16.0.0/12
IP-CIDR,127.0.0.0/8
IP-CIDR,100.64.0.0/10
IP-CIDR,255.0.0.0/8
IP-CIDR,fc00::/7
IP-CIDR,::1/128
IP-CIDR,fe80::/10

외부 규칙 세트

http(s) URL에서 가져온 규칙 세트입니다. 규칙 세트 파일은 텍스트 파일이어야 합니다. 각 줄에는 정책 없이 규칙 선언이 포함됩니다.

주의: 규칙 세트 파일은 리프(leaf) 규칙 유형만 지원합니다. 논리 규칙(AND/OR/NOT), SCRIPT, DOMAIN-SET 줄은 무시됩니다. RULE-SET,<url>로 가져온 파일 안의 RULE-SET 줄은 아무 효과가 없습니다: 파서가 내장 SYSTEM과 LAN 값만 남기는 데다, 그 둘조차 전개되지 않아 줄이 결코 일치하지 않습니다. 중첩 참조는 [Rule Provider] 페이로드와 인라인 [Ruleset] 섹션에서는 동작합니다. CIDR만 적힌 줄(예: 1.2.4.0/24)은 IP-CIDR 규칙으로 허용됩니다.

RULE-SET,https://example.com/my-rules.txt,Proxy
RULE-SET,https://example.com/my-rules.txt,Proxy,update-interval=86400

선택적 update-interval 매개변수는 다운로드한 사본이 얼마나 오래될 수 있는지를 초 단위로 정합니다. 타이머는 없습니다: 사본이 그보다 오래된 뒤의 첫 일치 판정에서 백그라운드로 다시 다운로드합니다. 구성이 로드될 때 그보다 새로운 캐시 사본은 다운로드 없이 그대로 사용하고, 그보다 오래된 캐시 사본은 사용하지 않으므로 세트는 다운로드가 끝나야 일치합니다. update-interval이 없으면 캐시 사본을 유지하며, 사본이 없을 때만 세트를 다운로드합니다. RULE-SET 줄에 쓴 no-resolve는 세트 안의 모든 IP 기반 규칙에 적용됩니다.

규칙 세트 파일 예:

DOMAIN,exampleA.com
DOMAIN,exampleB.com

로컬 파일을 사용하려면 [Rule Provider] 섹션에 path= 매개변수가 있는 항목을 정의하고 이름으로 참조하세요:

[Rule Provider]
my-rules = type=file, path=/path/to/my-rules.txt, format=native

[Rule]
RULE-SET,my-rules,Proxy

규칙 제공자 매개변수: type(http 또는 file; http는 url= 필요), behavior(규칙 선언은 classical, 도메인 세트는 domain, CIDR만 나열한 목록은 ipcidr — CIDR만 적힌 페이로드를 사용하는 Clash/mihomo 제공자에도 사용 가능; 기본값 classical), format(Chute 규칙 줄은 native(또는 surge), Clash/mihomo rule-provider YAML 페이로드는 mihomo-yaml, source(JSON) 형식의 sing-box 규칙 세트는 sing-box-source(또는 sing-box, source); 기본값 mihomo-yaml), interval(초, 기본값 86400). 양수 interval은 구성이 로드될 때마다 페이로드를 다시 다운로드하며, 그보다 오래된 캐시 사본은 사용하지 않습니다. 0은 캐시 사본이 없을 때만 다운로드합니다. 음수 값은 — RULE-SET 줄의 update-interval로도 — 절대 다운로드하지 않으므로, 캐시 사본이 없으면 제공자는 비활성 상태로 남습니다. Chute가 실행되는 동안 제공자는 자신을 이름으로 가리키고 update-interval이 붙은 RULE-SET 줄을 통해서만 갱신됩니다: 캐시 사본이 그보다 오래된 뒤의 첫 일치 판정에서 제공자 자신의 출처로부터 다시 가져옵니다. [Rule Provider] 줄에는 규칙을 담는 키가 없으므로 그곳의 type=inline은 빈 제공자가 됩니다. 인라인 세트는 [Ruleset <name>] 섹션으로 작성하세요.

policy=<name>은 페이로드를 그 정책 또는 그룹을 거쳐 내려받습니다(mihomo의 proxy:). 예: my-rules = type=http, url=https://example.com/rules.yaml, policy=Proxy. 그룹이면 다운로드가 시작될 때의 선택을 씁니다. 없거나 policy=DIRECT이면 직접 가져옵니다. 정의되지 않은 이름이면 직접 가져오는 대신 다운로드를 거부합니다.

HTTP 제어 API의 GET /api/rules/providers는 모든 [Rule Provider] 항목과 [Ruleset] 섹션에 대해 로드되었는지, 로드되지 않았다면 그 이유, 그리고 변환 경고를 보고합니다. 그 rule_count는 [Ruleset] 섹션의 줄 수를 세며, 다운로드한 제공자나 파일 제공자에서는 0으로 남습니다. RULE-SET,<url>과 DOMAIN-SET,<url>은 목록에 없으며, 이들의 다운로드 실패는 로그에만 나타납니다.

iPhone, Apple TV, Android에서는 규칙 제공자의 페이로드 — 다운로드했든 파일에서 읽었든 — 에 크기 상한이 있습니다. 그곳의 터널에는 남는 메모리가 거의 없기 때문입니다: sing-box-source는 400 KB, 그 밖의 형식은 1 MB입니다. 상한을 넘는 페이로드는 로드되지 않으며, 이유는 제공자 상태에 표시됩니다. RULE-SET,<url>과 DOMAIN-SET,<url>은 메모리에서 변환하지 않고 읽으므로 상한이 없습니다. 데스크톱에는 상한이 없으므로, 공개된 큰 규칙 세트(geosite/cn 등)를 제공자로 로드할 수 있는 곳은 데스크톱뿐입니다. 이 플랫폼에서는 규칙 세트 인덱스가 동시에 여는 데이터베이스 연결이 최대 24개입니다(데스크톱은 128개).

mihomo-yaml 페이로드를 해석할 수 없지만 일반 규칙 줄 목록처럼 보이면, 대신 native로 읽고 알림을 기록합니다. classical mihomo 페이로드의 줄은 정책을 지정하지 않으므로, 값 뒤에 오는 것은 매개변수로 읽힙니다: no-resolve는 유지되고, 그 밖의 매개변수(예: mihomo의 src)는 버려집니다. 논리 규칙과 …-REGEX 규칙은 줄의 나머지를 그대로 값으로 둡니다.

JSON 객체인 페이로드는 먼저 sing-box 규칙 세트로 읽기를 시도하므로, 기본 형식으로 선언된 sing-box 규칙 세트도 불러옵니다. sing-box 규칙 세트에서 일치 항목이 모두 한 종류인 규칙은 값마다 한 줄이 됩니다. 종류는 다음과 같습니다: 대상(domain, domain_suffix, domain_keyword, domain_regex, ip_cidr, geoip, 그리고 no-resolve가 붙은 사설 주소 범위가 되는 ip_is_private), 대상 포트(port, port_range), 소스 주소(source_ip_cidr, source_ip_is_private), 소스 포트(source_port, source_port_range), 그리고 각각 한 종류인 protocol, network, process_name, process_path. Chute가 실행하는 모드는 규칙 모드뿐이므로 clash_mode: rule은 무시되며, 그 밖의 clash_mode는 규칙을 버립니다. 여러 종류를 조합한 규칙(예: 도메인과 포트), invert 규칙, logical 규칙은 한 줄로 나타낼 수 없어 건너뛰며 규칙 세트의 경고에 나열됩니다. 컴파일된 바이너리 형식은 읽을 수 없습니다. sing-box의 .srs 제공자는 format=srs나 format=binary, 또는 .srs로 끝나는 위치를 보고 그렇게 감지되어 비활성 상태로 남으며, sing-box의 source(.json) 형식을 가리키라는 상태가 표시됩니다. mihomo의 .mrs는 감지되지 않습니다. 그 페이로드는 그저 텍스트로 디코딩되지 않을 뿐이어서, 규칙 세트는 일반적인 다운로드 실패 상태로 비활성 상태가 됩니다. macOS에서는 배포처가 source 페이로드를 함께 제공하는 경우 가져오기 기능이 바이너리 규칙 세트를 그 source 페이로드로 바꿔 쓰지만, iOS, Apple TV, Android에서는 바꾸지 않습니다.

RULE-SET과 DOMAIN-SET은 AND/OR/NOT 논리 규칙 내부의 하위 규칙으로 사용할 수 있습니다. NOT,((RULE-SET,cn_ip)),Proxy가 동작하며, 중첩된 규칙 세트는 독립적으로 쓴 경우와 동일한 페이로드 필터로 일치합니다.


인라인 규칙 세트

[Ruleset <name>] 섹션을 사용하면 규칙 세트를 구성 파일 안에 직접 둘 수 있습니다(Surge 문법). 각 줄은 규칙 세트 파일과 마찬가지로 정책 없는 규칙 선언이며, 규칙은 섹션 이름으로 이를 참조합니다:

[Ruleset Streaming]
DOMAIN-SUFFIX,netflix.com
IP-CIDR,198.51.100.0/24,no-resolve

[Rule]
RULE-SET,Streaming,Proxy

이 섹션은 type=inline, format=native인 [Rule Provider] 항목처럼 동작하며, 저장할 때 섹션 형태로 다시 기록됩니다. 같은 이름의 규칙 세트가 두 개 있으면 구성 오류입니다.

인라인 섹션에는(규칙 제공자의 페이로드와 마찬가지로) RULE-SET,SYSTEM, RULE-SET,LAN 또는 RULE-SET,<another inline section>을 넣을 수 있습니다. 이들은 규칙을 불러올 때 최대 8단계까지 펼쳐집니다. 순환을 만드는 참조나 file 또는 http 규칙 세트, 도메인 세트, DOMAIN-SET에 대한 참조는 경고와 함께 버려집니다.


도메인 세트

도메인 세트는 외부 규칙 세트와 유사하지만 특히 도메인 이름을 위한 것이며, 더 간결한 파일 형식을 사용합니다.

DOMAIN-SET,https://example.com/domains.txt,DIRECT
DOMAIN-SET,https://example.com/domains.txt,DIRECT,update-interval=86400

유형 뒤의 첫 번째 필드는 http(s) URL이어야 합니다. 도메인 세트 파일에는 규칙 선언이 아닌, 한 줄에 하나씩 순수 도메인만 포함됩니다:

# exact domain
example.com
# the domain and all of its subdomains
.example.org
+.example.net

# 또는 //로 시작하는 줄은 주석입니다.

S. Smart Rabbit LLC © All Rights Reserved            updated 2026-09-29 21:57:05

이 페이지는 영어판의 번역본입니다. 내용이 다를 경우 영어판이 우선합니다.

results matching ""

    No results matching ""