Groupe de politiques

Un groupe de politiques peut contenir plusieurs politiques. Il peut s'agir d'un serveur proxy, d'un autre groupe de politiques ou d'une politique intégrée (DIRECT, REJECT et ses variantes, ou PROXY).

Il existe sept types de groupes : select, url-test, fallback, load-balance, random, relay et ssid (aussi écrit subnet). La section [Proxy Group] déclare les groupes de politiques. Le type smart est également accepté et traité comme url-test. Un groupe de tout autre type — external de Surge, ou un type inconnu de Chute — conserve ses membres et fonctionne comme un groupe select, avec un avis dans le journal, plutôt que d'être rejeté.

Groupe à sélection manuelle

Choisissez dans l'interface utilisateur la politique à utiliser.

SelectGroup = select, ProxyHTTP, ProxyHTTPS, DIRECT, REJECT

Paramètres facultatifs : default= (le membre sélectionné au départ — son nom, ou son index compté à partir de 0 ; select= et policy-select-name= de Shadowrocket ont le même sens), policy-provider:Name (importe les membres depuis un fournisseur de proxy), filter= / exclude-filter= (regex appliquées aux membres fournis par le fournisseur) et HIDDEN=true. Tous les types de groupes sauf ssid acceptent aussi les paramètres d'abonnement et d'appartenance.

Sur la version iOS, le widget Today change la politique des trois premiers groupes select non masqués ; le nombre de groupes qu'il affiche se règle avec Utiliser le widget Today pour choisir un groupe dans l'app. Sur la version macOS, vous pouvez changer de politique depuis le menu de la barre des menus.


Groupe à test d'URL automatique

Sélectionne automatiquement la politique à utiliser en mesurant la latence vers une URL.

AutoTestGroup = url-test, ProxySOCKS5, ProxySOCKS5TLS, url = http://www.google.com/generate_204

Paramètres

url : facultatif

Chute envoie un GET HTTP en clair pour l'URL, à travers chaque politique, vers le port 80 de l'hôte de l'URL : un schéma https:// ou un port indiqué dans l'URL est ignoré, utilisez donc une URL http:// servie sur le port 80. Le test ne s'intéresse qu'à la réception de données de réponse, même s'il s'agit d'une erreur HTTP. Un membre doté de son propre test-url= est sondé à cette URL à la place. En cas d'omission, l'URL de sonde par défaut http://www.gstatic.com/generate_204 est utilisée. proxy-test-url dans [General] remplace cette valeur par défaut pour tout groupe qui omet url.

interval : facultatif, s (par défaut : 600 s).

Fréquence à laquelle les politiques sont retestées. Un minuteur global d'une seconde déclenche des retests automatiques toutes les interval secondes, que le groupe de politiques soit utilisé ou non. Il existe deux exceptions : un groupe avec lazy=true ne commence les tests qu'à sa première utilisation, et les tests sont suspendus tant que le groupe reste inactif plus longtemps que idle-timeout. 0 revient à l'omettre.

tolerance : facultatif, ms (par défaut : 100 ms).

Chaque manche teste tous les membres à la fois. Lorsque le premier membre à répondre n'est pas celui en cours d'utilisation, Chute attend jusqu'à tolerance millisecondes de plus — jamais au-delà du timeout de la manche — le membre en cours d'utilisation : s'il répond dans ce délai, il garde sa place ; sinon, le groupe passe au membre qui a répondu le premier. Tant qu'aucune manche n'a choisi de membre, le premier membre à répondre est retenu directement ; une manche où aucun membre ne répond ne change rien. 0 revient à l'omettre.

timeout : facultatif, s (par défaut : 5 s).

Abandonne une politique si le test ne s'achève pas dans ce délai. Si timeout est omis ou vaut 0, test-timeout de [General] s'applique s'il est défini.

lazy : facultatif (true/false, par défaut : false).

Lorsque cette option est activée, les politiques ne sont testées qu'à la première utilisation, et non au démarrage.

max-failed-times : facultatif (par défaut : 0, désactivé).

Nombre d'échecs de test consécutifs après lequel une politique est considérée comme défaillante. Cette option n'est effective que pour les groupes Load Balance, où les politiques défaillantes sont exclues de la sélection. Pour les groupes url-test et fallback, le nombre d'échecs est suivi mais n'affecte pas la sélection. Lorsqu'elle n'est pas définie (0), les échecs de test n'excluent jamais une politique.

expected-status : facultatif (par défaut : vide).

expected-status=204

Seule une réponse dont le statut est attendu compte comme un succès : un code unique (204), une plage (200-299) ou une liste des deux séparée par / (200/204/300-399). Une politique qui répond avec un autre statut sort de la manche, ce qui compte comme un échec. Une valeur qui n'est rien de tout cela est ignorée avec un avertissement, et toute réponse est alors acceptée. Effectif dans les groupes url-test.

idle-timeout : facultatif, s.

idle-timeout = 120

Lorsque le groupe de politiques n'a pas été utilisé (aucune nouvelle connexion n'y a puisé de politique) pendant plus longtemps que cette durée, les tests d'URL périodiques sont suspendus. Ils reprennent dès que le groupe est de nouveau utilisé. Aucune connexion n'est jamais fermée par cette option.

Également pris en charge : HIDDEN=true, filter=, exclude-filter=, policy-provider:Name.


Groupe de repli

Sélectionne une politique disponible par ordre de priorité. La disponibilité est testée par accès à une URL, comme pour un groupe à test d'URL automatique. Les politiques placées en tête ont une priorité supérieure. Chaque manche teste tous les membres à la fois, et le groupe utilise, dans l'ordre d'écriture, le premier membre qui a répondu lors de la dernière manche. Tant qu'aucune manche ne s'est achevée, et après une manche où aucun membre n'a répondu, il utilise le premier membre. Les réponses d'une manche prennent effet quand la manche est terminée — dès que tous les membres ont répondu, sinon quand son timeout expire —, si bien que le groupe ne change jamais de membre au milieu d'une manche. Il ne bascule que lorsqu'une manche change le membre utilisé : la notification Politique principale du groupe modifiée indique alors le membre utilisé avant et après la bascule, et interrupt-exist-connections ferme les connexions du membre abandonné.

FallbackGroup = fallback, ProxySOCKS5, ProxySOCKS5TLS, url = http://www.google.com/generate_204

Paramètres

url : facultatif

Indique quelle URL sera testée ; comme pour le groupe url-test, la sonde est un GET HTTP en clair vers le port 80 de l'hôte de l'URL, et un membre doté de son propre test-url= est sondé à cette URL à la place. En cas d'omission, l'URL de sonde par défaut http://www.gstatic.com/generate_204 est utilisée. proxy-test-url dans [General] remplace cette valeur par défaut pour tout groupe qui omet url.

interval : facultatif, s (par défaut : 600 s).

Fréquence à laquelle les politiques sont retestées. Même sémantique que pour le groupe à test d'URL automatique, à ceci près qu'idle-timeout — comme expected-status — est réservé au test d'URL : un groupe fallback n'a pas de pause d'inactivité et continue de tester selon l'intervalle.

timeout : facultatif, s (par défaut : 5 s).

Abandonne une politique si le test ne s'achève pas dans ce délai. Si timeout est omis ou vaut 0, test-timeout de [General] s'applique s'il est défini.

lazy / max-failed-times : facultatifs.

Identiques au groupe à test d'URL automatique. Également pris en charge : HIDDEN=true, filter=, exclude-filter=, policy-provider:Name.


Groupe SSID

Sélectionne une politique selon le réseau actuel — nom du Wi-Fi, point d'accès, type d'interface ou routeur. Le type peut aussi s'écrire subnet, son nom actuel dans Surge.

SSIDGroup = subnet, default = ProxyHTTP, cellular = ProxyHTTP, "Home WiFi" = DIRECT, SSID:Office* = ProxySOCKS5, TYPE:WIRED = DIRECT, ROUTER:192.168.1.1 = DIRECT

Paramètres

default : requis.

La politique utilisée lorsqu'aucune option SSID correspondante n'a été trouvée.

cellular : facultatif.

La politique utilisée sur réseau cellulaire. Si elle n'est pas fournie, la politique par défaut est utilisée. Plus précisément, elle s'applique dès que l'appareil n'est pas en Wi-Fi et qu'aucun membre ne correspond.

default est obligatoire. Les membres sont des paires <selector> = <policy> examinées dans l'ordre ; la première correspondance l'emporte. Un sélecteur est un nom de réseau (entre guillemets s'il contient des espaces ou un deux-points), SSID:<name>, BSSID:<address>, TYPE:WIFI / TYPE:CELLULAR / TYPE:WIRED ou ROUTER:<gateway address> ; les noms acceptent les jokers * et ?. MCCMNC: est accepté mais ne correspond jamais. Sur Apple TV, le groupe utilise toujours default.


Groupe Load Balance

Répartit les requêtes entre plusieurs proxys selon une stratégie de répartition de charge.

LBGroup = load-balance, ProxySOCKS5, ProxyHTTPS, url = http://www.google.com/generate_204, strategy = round-robin

Paramètres

strategy : facultatif (par défaut : round-robin)

Indique la stratégie de répartition de charge :

Stratégie Description
round-robin Répartit les requêtes équitablement entre tous les proxys, à tour de rôle
consistent-hashing Achemine systématiquement un même nom d'hôte vers le même proxy
sticky-sessions Réutilise le dernier proxy sélectionné pour toutes les connexions ; ce choix persistant est global (et non par client) et expire 600 secondes après avoir été établi

url : facultatif

url = http://www.google.com/generate_204

Chute envoie un GET HTTP en clair vers le port 80 de l'hôte de l'URL pour tester la disponibilité des proxys. En cas d'omission, l'URL de sonde par défaut http://www.gstatic.com/generate_204 est utilisée. Les résultats des tests n'affectent la sélection que lorsque max-failed-times est supérieur à 0 ; avec la valeur par défaut 0, les proxys défaillants ne sont pas exclus. proxy-test-url dans [General] remplace cette valeur par défaut pour tout groupe qui omet url.

interval : facultatif, s (par défaut : 600 s).

interval = 300

Fréquence des nouveaux tests de disponibilité des proxys. 0 revient à l'omettre.

timeout : facultatif, s (par défaut : 5 s).

timeout = 3

Délai d'expiration de la requête de test de disponibilité. Si timeout est omis ou vaut 0, test-timeout de [General] s'applique s'il est défini.

lazy : facultatif (true/false, par défaut : false).

Identique au groupe à test d'URL automatique : les tests ne démarrent qu'à la première utilisation du groupe.

max-failed-times : facultatif (par défaut : 0, désactivé).

max-failed-times = 3

Nombre d'échecs de test consécutifs après lequel un proxy est marqué comme défaillant et exclu de la répartition de charge. Avec la valeur par défaut 0, les résultats de test n'excluent jamais un proxy. Si tous les proxys sont défaillants, ils sont de nouveau tous utilisés.

HIDDEN : facultatif (true/false, par défaut : false).

HIDDEN = true

Lorsque cette option est activée, les applications ne listent pas le groupe de politiques : le menu de la barre des menus de Chute Mac et l'onglet Proxys de sa fenêtre principale, Chute iOS et son widget Today, Chute tvOS, Chute Android, Chute Dashboard et la Console web l'omettent. Les règles et les autres groupes l'utilisent comme d'habitude. Un groupe masqué actuellement sélectionné — la politique qu'utilise le mode Global, par exemple — reste listé et coché, pour que vous voyiez ce qui est utilisé. Quand l'API de contrôle HTTP fait pointer le mode Global sur un groupe select, les listes globales des applications, qui ne contiennent pas de groupes select d'ordinaire, affichent aussi ce groupe, coché. L'API de contrôle HTTP renvoie toujours tous les groupes, chacun avec "hidden": true ou false.

La clé s'écrit conventionnellement en majuscules, mais elle est reconnue sans distinction de casse : hidden=true fonctionne donc également. Également disponible sur les groupes select, url-test, fallback et ssid.

Remarque : le paramètre interrupt-exist-connections est désormais un réglage global de [General]. Consultez Options diverses.


Groupe aléatoire

Le groupe random de Shadowrocket : chaque nouvelle connexion choisit un membre au hasard.

RandomGroup = random, ProxyA, ProxyB, ProxyC

Chaque connexion choisit parmi les membres avec une chance égale, indépendamment des connexions précédentes. L'UDP ne choisit que parmi les membres qui relaient l'UDP ; s'il n'y en a aucun, le groupe ne relaie pas l'UDP et udp-policy-not-supported-behaviour s'applique. Les membres s'écrivent comme dans un groupe select, références policy-provider: comprises, et un membre conserve son propre underlying-proxy. Il n'y a pas de sélection à changer : la Console web et l'API de contrôle HTTP listent ses membres mais refusent tout changement de sélection, et default= n'a aucun effet. HIDDEN=true le masque comme les autres groupes.


Groupe de relais

Enchaîne ses membres, dans l'ordre écrit, en un seul chemin. Le premier membre est joint directement (ou par son propre underlying-proxy), chaque membre suivant est atteint à travers ceux qui le précèdent, et le dernier se connecte à la destination — le même ordre que Clash et mihomo.

RelayGroup = relay, Entry, Exit

Une connexion par RelayGroup va de l'appareil à Entry, de Entry à Exit, puis de Exit à la destination ; la destination la voit arriver de Exit.

Un groupe de relais demande au moins deux membres, écrits comme dans un groupe select ; un membre peut être une politique ou un autre groupe. Le premier membre peut utiliser n'importe quel protocole. Chaque membre suivant atteint son serveur à travers ceux qui le précèdent et doit donc pouvoir être chaîné — voir underlying-proxy ; si un membre (ou le choix actuel d'un groupe membre) ne le peut pas, la connexion est refusée et consignée, jamais envoyée directement. Dans un groupe de relais, le propre underlying-proxy d'un membre suivant est ignoré : les membres qui le précèdent sont son chemin. Un groupe de relais parmi les membres y tient la place de ses propres membres, dans la limite de 8 sauts au total ; si le choix actuel d'un groupe membre est un autre groupe de relais, ses sauts ne peuvent pas être insérés au moment de la connexion, et la connexion est donc refusée et consignée. Les membres après le premier ne sont joignables qu'à travers ceux qui les précèdent, et Chute ne leur envoie pas de ping direct. WireGuard, AmneziaWG et SSH gardent une seule connexion par leur propre amont : ils peuvent être le premier membre, mais pas un membre ultérieur. Un groupe de relais transporte l'UDP quand l'UDP de son dernier membre peut passer par les membres qui le précèdent, selon les règles d'underlying-proxy : une sortie VMess, VLESS, Trojan ou AnyTLS par n'importe quels membres, une sortie Shadowsocks, SOCKS5, Hysteria2, TUIC ou MASQUE seulement si les membres qui la précèdent transportent l'UDP. Sinon, l'UDP qui lui est envoyé suit udp-policy-not-supported-behaviour. Il n'a ni vérification d'état ni membre à sélectionner.


Paramètres d'abonnement et d'appartenance

Ces paramètres fonctionnent sur les groupes select, url-test, fallback et load-balance (underlying-proxy sur tous les groupes sauf les groupes SSID) :

[Proxy Group]
Airport = select, policy-path=https://example.com/nodes.list, update-interval=86400, policy-regex-filter="^(HK|JP) \d{1,2}$"
Everything = url-test, include-all-proxies=true
Streaming = fallback, HK-Node, include-other-group=Airport, policy-regex-filter="^HK"
  • policy-path=<URL> (Surge) remplit le groupe à partir d'un abonnement : Chute le transforme en fournisseur de proxy masqué avec format=auto, dont l'interval est l'update-interval du groupe (86400 par défaut). policy-regex-filter= ne garde que les nœuds dont le nom correspond. Le fournisseur masqué n'apparaît dans aucune liste de fournisseurs et n'est pas écrit dans le fichier ; la ligne du groupe est enregistrée telle que vous l'avez écrite.
  • include-all-proxies=true ajoute toutes les politiques de la section [Proxy], et include-other-group=<groupe> (répétable) ajoute récursivement les membres d'un autre groupe. Les deux sont développés une fois toute la configuration lue ; une boucle est coupée, et un nom de groupe inconnu ne produit qu'un avis. Ce sont les membres que vous avez listés vous-même qui sont enregistrés. include-other-group reprend les membres et les fournisseurs de l'autre groupe, pas ses filtres : les nœuds qu'apporte un fournisseur sont filtrés par les propres filter=, policy-regex-filter= et exclude-type= du groupe qui l'inclut, c'est pourquoi Streaming ci-dessus en définit un — sans lui, Streaming prendrait tous les nœuds de l'abonnement d'Airport.
  • exclude-type=Shadowsocks|Vmess tient des protocoles entiers à l'écart des membres qu'un fournisseur apporte — le plus souvent parce que le client ne sait pas y transporter l'UDP. Les noms sont séparés par |, comparés sans tenir compte de la casse et par alias, si bien que ss et Shadowsocks désignent le même type. Le paramètre ne touche pas aux membres que vous avez listés vous-même et il est réécrit à l'enregistrement de la configuration.
  • underlying-proxy=<policy> (Surge Mac 6.9 / iOS 5.22) fait passer les membres proxy du groupe par un même amont : chaque politique proxy listée directement ou apportée par policy-path, include-all-proxies ou include-other-group apparaît dans le groupe comme une politique dérivée, « Membre (via Amont) », qui se connecte par cet amont à la place du propre underlying-proxy du membre. Partout ailleurs, la politique d'origine est utilisée comme avant. Les membres qui sont des groupes de politiques ne sont pas concernés (ils peuvent définir leur propre underlying-proxy), et DIRECT et REJECT restent tels quels. Si le groupe est chaîné à travers lui-même, les connexions qui passent par lui sont refusées et consignées.
  • external-policy-modifier="clé=valeur,…" (Surge) remplace ces paramètres sur chaque politique importée par policy-path, comme dans external-policy-modifier="test-url=http://apple.com/,tfo=true". Il ne touche que les politiques de l'abonnement ; pour faire passer tout le groupe par un amont, utilisez underlying-proxy ci-dessus.
  • Les paramètres sont séparés aux virgules situées hors des guillemets : une regex contenant une virgule — comme ci-dessus — doit donc être entre guillemets.
  • Les paramètres que Chute ne connaît pas, comme evaluate-before-use, no-alert, icon-url ou persistent, sont conservés et réécrits, mais n'ont aucun effet.

Fournisseur de proxy

Les fournisseurs de proxy permettent d'importer des listes de proxys depuis des sources externes (fichiers ou URL). Ils se définissent dans la section [Proxy Provider] :

[Proxy Provider]
MyProvider = url=https://example.com/proxies.yaml, interval=3600

Paramètres

Paramètre Requis Description
type Non http (par défaut) ou file. Un jeu de règles dispose en plus d'une forme inline, dans une section [Ruleset <name>] ; un fournisseur de proxy n'a pas de forme intégrée, et un type=inline écrit ici n'apporte aucun membre
url Oui pour type=http URL depuis laquelle récupérer la liste de proxys
path Oui pour type=file Chemin du fichier local contenant la liste de proxys
interval Non Âge d'actualisation, en secondes (par défaut : 86400). À chaque chargement des politiques — au démarrage du moteur et lors d'un rechargement de la configuration —, une copie en cache plus ancienne que cette valeur est récupérée à nouveau en arrière-plan ; rien n'est actualisé pendant que le moteur tourne. 0 n'actualise jamais une copie en cache, mais une première récupération a tout de même lieu en l'absence de cache ; une valeur négative n'est jamais récupérée, laissant le fournisseur inactif sauf si un dernier cache valide existe
format Non Format de la charge utile : native ou surge lit une liste de lignes au format [Proxy] ; auto ou l'absence de valeur choisit selon le contenu ; mihomo-yaml lit un document YAML et se replie sur la liste de lignes lorsque la charge en est manifestement une
filter Non Regex de filtrage n'incluant que les noms de proxy correspondants
exclude-filter Non Regex de filtrage excluant les noms de proxy correspondants
underlying-proxy Non Chaque nœud du fournisseur se connecte par cette politique ou ce groupe (override: dialer-proxy de mihomo), à la place de son propre amont. Voir underlying-proxy
policy Non La politique ou le groupe par lequel la liste est téléchargée (proxy: de mihomo) ; pour un groupe, son choix au début du téléchargement. Sans elle, ou avec DIRECT, la liste est récupérée directement ; un nom non défini refuse le téléchargement au lieu de récupérer directement

Une charge YAML est un document de style mihomo avec une liste proxies: (ou payload:) ; une charge en liste de lignes contient une ligne au format [Proxy] par politique, par exemple Name = trojan, example.com, 443, password=….

Les fournisseurs de proxy sont référencés depuis les groupes de politiques avec le préfixe policy-provider: :

[Proxy Group]
MyGroup = select, policy-provider:MyProvider
S. Smart Rabbit LLC © All Rights Reserved            updated 2026-09-30 15:11:19

results matching ""

    No results matching ""