モジュール
Chuteは、再利用可能で共有可能なルール、スクリプト、MITMホスト、DNSマッピングで設定を拡張するための外部モジュールファイル(.sgmodule)をサポートしています。モジュールはSurgeモジュール形式に従います。
モジュールは[Module]セクションで定義されます:
[Module]
https://example.com/my-module.sgmodule
/path/to/local-module.sgmodule
~/.chute/custom-module.sgmodule
URLはリモートから取得され、/または~で始まるパスはローカルファイルシステムから読み込まれます。
モジュールファイル構造
.sgmoduleファイルはメイン設定ファイルと同じ構文に従います。サポートされるセクション:
| セクション | 目的 |
|---|---|
[MITM] |
MITM復号リストにホスト名を追加 |
[Script] |
JavaScriptスクリプトを登録 |
[URL Rewrite] |
URLリライトルールを追加 |
[Header Rewrite] |
ヘッダーリライトルールを追加 |
[Rule] |
ルーティングルールを追加 |
[Host] |
DNSホスト-IPマッピングを追加 |
モジュールメタデータ
モジュールにはメタデータディレクティブ(#!で始まる行)を含めることができます:
#!name = My Custom Module
#!desc = Blocks ads and trackers for example.com
#!system = ios,macos
| ディレクティブ | 説明 |
|---|---|
#!name |
モジュール名(UIに表示) |
#!desc |
モジュールの説明 |
#!system |
プラットフォームフィルタ: ios、macos(カンマ区切り) |
#!systemが指定され、現在のプラットフォームが一致しない場合、モジュールは黙ってスキップされます。
モジュール例
#!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
モジュールライフサイクル
- モジュールはメイン設定の解析後に読み込まれます。
- モジュールからのルール、スクリプト、MITMホスト、DNSホストはランタイムマネージャーに追加されます。
- モジュールが削除または無効化されると、その全てのルール、スクリプト、ホストが登録解除されます。
- リモートモジュールはメイン設定の管理設定更新間隔に従って再取得されます。