Modul

Chute unterstützt externe Moduldateien (.sgmodule), um die Konfiguration mit wiederverwendbaren, gemeinsam nutzbaren Regeln, Skripten, MitM-Hosts und DNS-Zuordnungen zu erweitern. Module folgen dem Surge-Modulformat.

Module werden im Abschnitt [Module] definiert:

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

URLs werden remote abgerufen; Pfade, die mit / oder ~ beginnen, werden aus dem lokalen Dateisystem geladen.

Moduldateistruktur

Eine .sgmodule-Datei folgt derselben Syntax wie die Hauptkonfigurationsdatei. Unterstützte Abschnitte:

Abschnitt Zweck
[MITM] Hostnamen zur MITM-Entschlüsselungsliste hinzufügen
[Script] JavaScript-Skripte registrieren
[URL Rewrite] URL-Umschreibungsregeln hinzufügen
[Header Rewrite] Header-Umschreibungsregeln hinzufügen
[Rule] Routing-Regeln hinzufügen
[Host] DNS-Host-zu-IP-Zuordnungen hinzufügen

Aus Kompatibilitätsgründen wird ein [DNS]-Abschnitt in einem Modul als Alias für [Host] akzeptiert.

Modulmetadaten

Module können Metadaten-Direktiven enthalten (Zeilen, die mit #! beginnen):

#!name = My Custom Module
#!desc = Blocks ads and trackers for example.com
#!system = ios,macos
Direktive Beschreibung
#!name Modulname (in der UI angezeigt)
#!desc Modulbeschreibung
#!system Plattformfilter: ios, macos (durch Kommas getrennt)
#!arguments Deklariert Modulvariablen mit Standardwerten (z.B. #!arguments = var1:default1, var2:default2)

#!system ist informative Metadaten, die im Moduleditor angezeigt werden; es steuert das Laden derzeit nicht — das Modul wird auf allen Plattformen angewendet.

#!arguments darf mehrfach vorkommen; spätere Deklarationen überschreiben frühere. {{{variable}}}-Platzhalter im Modulinhalt werden durch den aufgelösten Wert ersetzt: Ein von der App bereitgestellter Override hat Vorrang, danach der Standardwert aus #!arguments, danach die leere Zeichenkette.

Modulbeispiel

#!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

%APPEND%- / %INSERT%-Direktiven innerhalb des hostname-Werts eines Moduls werden entfernt und die Hostnamen in die MitM-Liste zusammengeführt; ein vorangestelltes - als Ausschluss-Präfix an einem Hostnamen bleibt erhalten.

Modullebenszyklus

  • Module werden geladen, nachdem die Hauptkonfiguration geparst wurde.
  • Regeln, Skripte, MitM-Hosts und DNS-Hosts aus Modulen werden zu den Laufzeit-Managern hinzugefügt.
  • Wenn ein Modul entfernt oder deaktiviert wird, werden alle seine Regeln, Skripte und Hosts abgemeldet.
  • Remote-Modulinhalte werden beim Start des Tunnels abgerufen und nur dann erneut abgerufen, wenn sich die [Module]-URL-Liste bei einem Konfigurations-Reload ändert.
S. Smart Rabbit LLC © All Rights Reserved            updated 2026-08-18 12:06:42

Diese Seite ist eine Übersetzung der englischen Version. Bei Abweichungen ist die englische Version maßgeblich.

results matching ""

    No results matching ""