Module

Chute prend en charge des fichiers de module externes (.sgmodule) permettant d'étendre la configuration avec des règles, des scripts, des hôtes MitM et des mappages DNS réutilisables et partageables. Les modules suivent le format de module Surge.

Les modules sont déclarés dans la section [Module] :

[Module]
https://example.com/my-module.sgmodule
/path/to/local-module.sgmodule
~/.chute/custom-module.sgmodule

Les URL sont récupérées à distance ; les chemins commençant par / ou ~ sont chargés depuis le système de fichiers local.

Structure d'un fichier de module

Un fichier .sgmodule suit la même syntaxe que le fichier de configuration principal. Sections prises en charge :

Section Rôle
[MITM] Ajoute des noms d'hôte à la liste de déchiffrement MITM
[Script] Enregistre des scripts JavaScript
[URL Rewrite] Ajoute des règles de réécriture d'URL
[Header Rewrite] Ajoute des règles de réécriture d'en-tête
[Rule] Ajoute des règles de routage
[Host] Ajoute des mappages DNS hôte-vers-IP

Pour des raisons de compatibilité, une section [DNS] dans un module est acceptée comme alias de [Host].

Métadonnées de module

Les modules peuvent inclure des directives de métadonnées (lignes commençant par #!) :

#!name = My Custom Module
#!desc = Blocks ads and trackers for example.com
#!system = ios,macos
Directive Description
#!name Nom du module (affiché dans l'interface)
#!desc Description du module
#!system Filtre de plateforme : ios, macos (séparés par des virgules)
#!arguments Déclare des variables de module avec des valeurs par défaut (par ex. #!arguments = var1:default1, var2:default2)

#!system est une métadonnée informative affichée dans l'éditeur de modules ; elle ne conditionne pas actuellement le chargement — le module est appliqué sur toutes les plateformes.

#!arguments peut apparaître plusieurs fois ; les déclarations les plus récentes remplacent les précédentes. Les espaces réservés {{{variable}}} présents dans le corps du module sont remplacés par la valeur résolue : une valeur fournie par l'application l'emporte, puis la valeur par défaut de #!arguments, puis la chaîne vide.

Exemple de module

#!name = Ad Block Module
#!desc = Block common ad domains
#!system = ios,macos

[Rule]
DOMAIN-SUFFIX,doubleclick.net,REJECT
DOMAIN-SUFFIX,googlesyndication.com,REJECT
DOMAIN-SUFFIX,googleadservices.com,REJECT

[Host]
localhost = 127.0.0.1

[MITM]
hostname = *.google-analytics.com

[URL Rewrite]
^https://example\.com/old-api https://example.com/new-api 302

Les directives %APPEND% / %INSERT% présentes dans la valeur hostname d'un module sont supprimées et les noms d'hôte fusionnés dans la liste MitM ; un préfixe d'exclusion - en tête d'un nom d'hôte est conservé.

Cycle de vie d'un module

  • Les modules sont chargés après l'analyse de la configuration principale.
  • Les règles, scripts, hôtes MitM et hôtes DNS issus des modules sont ajoutés aux gestionnaires d'exécution.
  • Lorsqu'un module est supprimé ou désactivé, toutes ses règles, ses scripts et ses hôtes sont désenregistrés.
  • Le contenu des modules distants est récupéré au démarrage du tunnel, et retéléchargé uniquement lorsque la liste d'URL [Module] change lors d'un rechargement de configuration.
S. Smart Rabbit LLC © All Rights Reserved            updated 2026-08-19 16:19:45

results matching ""

    No results matching ""