モジュール

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マッピングを追加

互換性のため、モジュール内の[DNS]セクションは[Host]のエイリアスとして受け付けられます。

モジュールメタデータ

モジュールにはメタデータディレクティブ(#!で始まる行)を含めることができます:

#!name = My Custom Module
#!desc = Blocks ads and trackers for example.com
#!system = ios,macos
ディレクティブ 説明
#!name モジュール名(UIに表示)
#!desc モジュールの説明
#!system プラットフォームフィルタ: iosmacos(カンマ区切り)
#!arguments モジュール変数をデフォルト値付きで宣言(例: #!arguments = var1:default1, var2:default2

#!systemはモジュールエディタに表示される情報メタデータです。現在は読み込みを制限せず、モジュールは全てのプラットフォームで適用されます。

#!argumentsは複数回記述でき、後の宣言が前の宣言を上書きします。モジュール本文中の{{{variable}}}プレースホルダーは解決された値に置換されます。優先順位はアプリが提供する上書き値、次に#!argumentsのデフォルト値、最後に空文字列です。

モジュール例

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

モジュールのhostnameの値に含まれる%APPEND% / %INSERT%ディレクティブは取り除かれ、ホスト名はMitMリストにマージされます。ホスト名の先頭に付く除外プレフィックス-はそのまま保持されます。

モジュールライフサイクル

  • モジュールはメイン設定の解析後に読み込まれます。
  • モジュールからのルール、スクリプト、MitMホスト、DNSホストはランタイムマネージャーに追加されます。
  • モジュールが削除または無効化されると、その全てのルール、スクリプト、ホストが登録解除されます。
  • リモートモジュールのコンテンツはトンネル起動時に取得され、設定の再読み込みで[Module]のURLリストが変更された場合にのみ再取得されます。
S. Smart Rabbit LLC © All Rights Reserved            updated 2026-08-18 12:06:42

本ページは英語版からの翻訳です。内容に相違がある場合は、英語版が優先されます。

results matching ""

    No results matching ""