ルールプロバイダー
プロキシプロバイダーと同様に、rule-providers はオンラインのアドレスからルールファイルを動的に取得できるようにし、ルール内で RULE-SET を使って参照することで、数百のルールを rules に手書きする必要がなくなります。
設定例
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 の場合は必須ルールの内容を直接インラインで記述します。