ドキュメント 設定 ルールプロバイダー

ルールプロバイダー

プロキシプロバイダーと同様に、rule-providers はオンラインのアドレスからルールファイルを動的に取得できるようにし、ルール内で RULE-SET を使って参照することで、数百のルールを rules に手書きする必要がなくなります。

設定例

config.yaml YAML
rule-providers:
  google:
    type: http
    path: ./rule1.yaml
    url: "https://raw.githubusercontent.com/.../Google.yaml"
    interval: 600
    behavior: classical
    format: yaml

rules:
  - RULE-SET,google,PROXY

フィールドの説明

キー名(例:google必須

プロバイダー名。重複は不可です。

type必須

http/file/inline から選択可能。

urltype が http の場合は必須

ルールファイルのアドレス。

pathオプション

保存パス。未指定の場合は URL の MD5 がファイル名として使用され、HomeDir 内に制限されます(SAFE_PATHS で拡張可能)。

intervalオプション

更新間隔(単位:秒)。

proxyオプション

指定したプロキシを経由してダウンロード/更新します。

behavior必須

ルールプロバイダーの動作タイプで、ファイル内の各行をどう解釈するかを決めます:domain(ドメインリスト)/ ipcidr(IP 範囲リスト)/ classical(完全なルール構文で、ほぼすべてのタイプに対応)。実際のファイル形式と一致させる必要があります。書き方はルールプロバイダーのコンテンツを参照。

formatデフォルト yaml

ファイル形式。yaml/text/mrs から選択可能。mrs はバイナリ圧縮形式でサイズが小さく読み込みも速いですが、現時点では domain/ipcidr の2種類の behavior のみ対応しています。mihomo convert-ruleset domain/ipcidr yaml/text XXX.yaml XXX.mrs コマンドで変換できます。

path-in-bundleオプション

ローカルファイルが存在しない場合、優先的に HomeDir 内の BundleMRS.7z からそのパスに対応するファイルを解凍します。この圧縮ファイルはmeta-rules-datからダウンロードできます。

size-limitデフォルト 0

ダウンロードするファイルの最大サイズを制限します(単位:バイト)。0 は無制限を意味します。

headerオプション

カスタム HTTP リクエストヘッダー。

payloadtype が inline の場合は必須

ルールの内容を直接インラインで記述します。