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 |
Modulmetadaten
Module können Metadaten-Direktiven enthalten (Zeilen, die mit #! beginnen):
#!name = Mein benutzerdefiniertes Modul
#!desc = Blockiert Werbung und Tracker für example.com
#!system = ios,macos
| Direktive | Beschreibung |
|---|---|
#!name |
Modulname (in der UI angezeigt) |
#!desc |
Modulbeschreibung |
#!system |
Plattformfilter: ios, macos (durch Kommas getrennt) |
Wenn #!system angegeben ist und die aktuelle Plattform nicht übereinstimmt, wird das Modul stillschweigend übersprungen.
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
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-Module werden gemäß dem Aktualisierungsintervall der verwalteten Konfiguration der Hauptkonfiguration erneut abgerufen.