Jeu de règles

Vous pouvez utiliser un jeu de règles provenant d'une URL, d'un fournisseur de règles configuré ou d'une section intégrée à la configuration elle-même. Chute fournit également deux jeux de règles internes.

Jeu de règles interne

SYSTEM

RULE-SET,SYSTEM,DIRECT

Comprend les règles couvrant la plupart des requêtes émises par macOS et iOS eux-mêmes. Les requêtes émises par l'App Store, iTunes et les autres services de contenu n'y figurent pas.

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

Ces règles peuvent être mises à jour avec les mises à jour de Chute. Reportez-vous à la description affichée dans le logiciel pour obtenir les sous-règles les plus récentes.


LAN

RULE-SET,LAN,DIRECT

Comprend les règles portant sur les adresses IP du réseau local et le suffixe .local. Notez que ce jeu de règles déclenche une résolution 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

Jeu de règles externe

Jeu de règles provenant d'une URL http(s). Le fichier de jeu de règles doit être un fichier texte. Chaque ligne contient une déclaration de règle sans la politique.

Remarque : les fichiers de jeu de règles ne prennent en charge que les types de règles terminales. Les lignes de règles logiques (AND/OR/NOT), SCRIPT et DOMAIN-SET sont ignorées. Une ligne RULE-SET figurant dans un fichier récupéré par RULE-SET,<url> est inerte : l'analyseur ne retient que les valeurs intégrées SYSTEM et LAN, et même celles-là ne sont jamais dépliées, si bien que la ligne ne correspond jamais. Les références imbriquées fonctionnent en revanche dans une charge utile [Rule Provider] et dans une section [Ruleset] intégrée. Une ligne CIDR nue (par ex. 1.2.4.0/24) est acceptée comme règle IP-CIDR.

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

Le paramètre facultatif update-interval indique l'âge, en secondes, que la copie téléchargée peut atteindre. Il n'y a pas de minuteur : la première correspondance qui survient une fois la copie devenue plus ancienne que cette valeur la télécharge de nouveau en arrière-plan. Au chargement de la configuration, une copie en cache plus récente que cette valeur est utilisée telle quelle, sans téléchargement ; une copie plus ancienne n'est pas utilisée, si bien que le jeu doit être téléchargé avant de pouvoir correspondre. Sans update-interval, une copie en cache est conservée et le jeu n'est téléchargé que s'il n'en existe aucune. Écrit sur la ligne RULE-SET, no-resolve s'applique à toutes les règles basées sur l'IP du jeu.

Exemple de fichier de jeu de règles :

DOMAIN,exampleA.com
DOMAIN,exampleB.com

Pour utiliser un fichier local, définissez une entrée dans la section [Rule Provider] avec un paramètre path= et référencez-la par son nom :

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

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

Paramètres du fournisseur de règles : type (http ou file ; http exige url=), behavior (classical pour des déclarations de règles, domain pour un jeu de domaines, ipcidr pour une liste de CIDR nus — également utilisable pour les fournisseurs Clash/mihomo, dont les charges utiles en CIDR nu sont acceptées ; par défaut classical), format (native — ou surge — pour des lignes de règles Chute, mihomo-yaml pour une charge utile YAML de fournisseur de règles Clash/mihomo, sing-box-source — ou sing-box, source — pour un jeu de règles sing-box au format source (JSON) ; par défaut mihomo-yaml) et interval (secondes, par défaut 86400). Un interval positif télécharge de nouveau la charge utile à chaque chargement de la configuration, et une copie en cache plus ancienne que cette valeur n'est pas utilisée ; 0 ne télécharge que s'il n'existe aucune copie en cache ; une valeur négative ne télécharge jamais — pas même pour l'update-interval d'une ligne RULE-SET —, si bien que le fournisseur reste inactif à moins qu'une copie en cache n'existe. Pendant que Chute tourne, un fournisseur n'est actualisé que par une ligne RULE-SET qui le nomme et porte update-interval : la première correspondance qui survient une fois la copie en cache devenue plus ancienne que cette valeur la récupère de nouveau depuis la source propre du fournisseur. Une ligne [Rule Provider] n'a aucune clé qui porte des règles : type=inline y donne donc un fournisseur vide ; écrivez un jeu intégré sous forme de section [Ruleset <name>].

policy=<name> télécharge la charge utile par cette politique ou ce groupe — le proxy: de mihomo —, comme dans my-rules = type=http, url=https://example.com/rules.yaml, policy=Proxy ; pour un groupe, c'est son choix au début du téléchargement qui sert. Sans lui, ou avec policy=DIRECT, la charge utile est récupérée directement. Un nom non défini refuse le téléchargement au lieu de récupérer directement.

GET /api/rules/providers de l'API de contrôle HTTP rend compte de chaque entrée [Rule Provider] et de chaque section [Ruleset] : si elle s'est chargée, la raison pour laquelle elle ne l'a pas fait, et les éventuels avertissements de conversion. Son rule_count compte les lignes d'une section [Ruleset] et reste à 0 pour un fournisseur téléchargé ou de type fichier. RULE-SET,<url> et DOMAIN-SET,<url> ne figurent pas dans la liste ; l'échec du téléchargement de l'un d'eux n'apparaît que dans le journal.

Sur iPhone, Apple TV et Android, la charge utile d'un fournisseur de règles — téléchargée ou lue depuis un fichier — a un plafond de taille, car le tunnel y dispose de très peu de mémoire : 400 Ko pour sing-box-source, 1 Mo pour tous les autres formats. Une charge utile au-delà du plafond n'est pas chargée, et l'état du fournisseur en indique la raison. RULE-SET,<url> et DOMAIN-SET,<url> sont lus sans être convertis en mémoire et n'ont pas de plafond. Sur ordinateur, il n'y a pas de plafond : un grand jeu publié (geosite/cn et consorts) ne se charge donc comme fournisseur que là. Sur ces plateformes, l'index des jeux de règles garde au plus 24 connexions à la base de données ouvertes en même temps (128 sur ordinateur).

Lorsqu'une charge utile mihomo-yaml ne s'analyse pas mais ressemble à une simple liste de lignes de règles, elle est lue comme native à la place, et un avis est consigné dans le journal. Une ligne d'une charge utile mihomo classical ne nomme aucune politique, si bien que ce qui suit sa valeur est lu comme des paramètres : no-resolve est conservé, et tout autre paramètre — le src de mihomo, par exemple — est écarté. Une règle logique et une règle …-REGEX gardent le reste de la ligne comme valeur.

Une charge utile qui est un objet JSON est d'abord essayée comme jeu de règles sing-box, si bien qu'un jeu de règles sing-box déclaré avec le format par défaut se charge aussi. Dans un jeu de règles sing-box, une règle dont tous les critères sont d'une même sorte devient une ligne par valeur. Les sortes sont : destination (domain, domain_suffix, domain_keyword, domain_regex, ip_cidr, geoip, et ip_is_private, qui devient les plages d'adresses privées avec no-resolve), port de destination (port, port_range), adresse source (source_ip_cidr, source_ip_is_private), port source (source_port, source_port_range), ainsi que protocol, network, process_name et process_path, chacun formant une sorte à lui seul. clash_mode: rule est ignoré, puisque le mode règle est le seul qu'exécute Chute ; tout autre clash_mode fait écarter la règle. Une règle qui combine plusieurs sortes (un domaine et un port, par exemple), une règle invert et une règle logical ne peuvent pas tenir sur une seule ligne : elles sont ignorées et figurent dans les avertissements du jeu de règles. Les formats binaires compilés ne peuvent pas être lus. Un fournisseur .srs sing-box est détecté comme tel — depuis format=srs ou format=binary, ou depuis un emplacement se terminant par .srs — et reste inactif, avec un état invitant à le rediriger vers la version source sing-box (.json). Le .mrs de mihomo, lui, n'est pas détecté : sa charge utile échoue simplement à se décoder comme du texte, et le jeu de règles reste inactif sous l'état générique d'échec de téléchargement. Sous macOS, l'importateur redirige un jeu binaire vers la version source publiée à côté lorsque l'éditeur en propose une ; sous iOS, Apple TV et Android, il ne le fait pas.

RULE-SET et DOMAIN-SET peuvent être utilisés comme sous-règles à l'intérieur des règles logiques AND/OR/NOT — NOT,((RULE-SET,cn_ip)),Proxy fonctionne, et le jeu imbriqué est évalué avec le même filtre de charge utile qu'un jeu écrit seul.


Jeu de règles intégré

Une section [Ruleset <name>] garde un jeu de règles dans le fichier de configuration lui-même (syntaxe Surge). Chaque ligne est une déclaration de règle sans politique, comme dans un fichier de jeu de règles, et une règle désigne la section par son nom :

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

[Rule]
RULE-SET,Streaming,Proxy

La section se comporte comme une entrée [Rule Provider] avec type=inline et format=native, et elle est réenregistrée sous forme de section. Deux jeux de règles portant le même nom sont une erreur de configuration.

Une section intégrée — comme la charge utile d'un fournisseur de règles — peut contenir RULE-SET,SYSTEM, RULE-SET,LAN ou RULE-SET,<une autre section intégrée>. Ces lignes sont développées au chargement des règles, jusqu'à 8 niveaux. Une référence qui formerait une boucle, ou qui vise un jeu de règles file ou http, un jeu de domaines ou un DOMAIN-SET, est écartée avec un avertissement.


Jeu de domaines

Un jeu de domaines est similaire à un jeu de règles externe, mais spécifiquement destiné aux noms de domaine, et utilise un format de fichier plus compact.

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

Le premier champ après le type doit être une URL http(s). Le fichier de jeu de domaines contient des domaines bruts, un par ligne (et NON des déclarations de règles) :

# domaine exact
example.com
# le domaine et tous ses sous-domaines
.example.org
+.example.net

Les lignes commençant par # ou // sont des commentaires.

S. Smart Rabbit LLC © All Rights Reserved            updated 2026-09-30 15:11:19

results matching ""

    No results matching ""