Shadowrocket ブログ · ルール

ルール分流の書き方:
DOMAIN-SUFFIX、GEOIP、FINAL を一度に整理。

ホームと詳細チュートリアルでもルール分流に触れ、短い例もありますが、そこまでです。この記事ではよく使う照合タイプ、照合順、初心者が間違えやすい点を、実例で一通り追います。

ルールファイルは何を解決するか

接続後、全トラフィックをノードに流すこともできます。簡単ですが無駄です。日本のサイト、銀行、Apple の通信は DIRECT の方が速く、ノードの容量も食いません。ルールファイルの仕事は一つで、ドメインや IP ごとに DIRECT か PROXY かを決めることです。

ルールファイルはプレーンテキストの一覧です。1行が1ルールで、形は次で揃っています。

TYPE,VALUE,POLICY

Shadowrocket はこの一覧を上から読みます。当たった行の末尾のポリシーを適用し、そこで止まります。以降は照合しません。

よく使う照合タイプ

「タイプ」は、その行が何でリクエストを照合するかを決めます。よく使うものは次のとおりです。

タイプ照合対象説明
DOMAIN完全なホスト名。完全一致DOMAIN,www.example.com,PROXYそのホスト名だけ。サブドメインや他の接頭辞は当たらない
DOMAIN-SUFFIXドメイン接尾辞DOMAIN-SUFFIX,netflix.com,PROXYnetflix.com とそのサブドメイン(www.netflix.com など)に一致
DOMAIN-KEYWORDホスト名に含まれるキーワードDOMAIN-KEYWORD,youtube,PROXYホスト名にキーワードがあれば当たる。接尾辞より広く、誤爆しやすい。慎重に
IP-CIDRIP 範囲IP-CIDR,192.168.0.0/16,DIRECTCIDR で照合。LAN や特定サーバー IP によく使う
GEOIPIP の国/地域GEOIP,JP,DIRECT宛先サーバーの地理で判定。JP は日本。よく「自国 IP は DIRECT」のフォールバックに使う
FINAL上のどれにも当たらないときの既定FINAL,PROXY必ず最終行。「それ以外をどうするか」

カンマの最後は通常 PROXY(ノード経由)、DIRECT(直通)、REJECT(拒否。広告ドメインの遮断によく使う)です。

照合順:上から下へ、当たったら止まる

見落とされやすく、いちばん大事な点です。ルールは上から順に照合し、当たった行のポリシーをすぐ適用し、下は見ません。並びが結果を変えます。後ろに「より正確」な行があっても、前の行が当たっていれば実行されません。

そのまま読める一式の例:

DOMAIN-SUFFIX,netflix.com,PROXY
DOMAIN-SUFFIX,yahoo.co.jp,DIRECT
DOMAIN-KEYWORD,youtube,PROXY
IP-CIDR,192.168.0.0/16,DIRECT
GEOIP,JP,DIRECT
FINAL,PROXY

このファイルでは www.netflix.com は1行目(接尾辞 netflix.com)で PROXY。yahoo.co.jp は2行目で DIRECT。ルーター画面 192.168.1.1 は4行目で DIRECT。サーバー IP が日本なら5行目の GEOIP で DIRECT。どれにも当たらなければ FINAL,PROXY です。

初心者がやりがちな書き間違い

01FINAL が途中にあり、最終行ではない+

FINAL は「どれにも当たらなかったときの扱い」です。途中に置くと、それ以降は実行されない死んだ行になります。FINAL に到達した時点で処理は終わります。必ず最終行に置いてください。

02DOMAIN-KEYWORD が無関係なサイトにも当たった+

キーワード照合は想像より広いです。DOMAIN-KEYWORD,ads,PROXY は広告ドメインだけでなく、名前に "ads" が含まれる普通のサイトにも当たります。既知ドメインは DOMAIN-SUFFIX を優先し、似た名前をまとめて拾い、誤爆を許容できるときだけキーワードを使ってください。

03GEOIP,JP,DIRECT が上すぎて、プロキシしたいサイトが直通になる+

配信やニュースは国内 CDN にキャッシュを置くことがあります。GEOIP,JP,DIRECT が上すぎると「日本の IP」と判定され、見たいカタログのオリジンに届きません。必ずプロキシしたいドメインは前に、GEOIP は後ろ寄りが無難です。

04ルールを変えたのに、古い挙動のまま+

手元で編集するルールは、保存すればすぐ効くことが多いです。サブスク形式のルールセットは、該当エントリで「更新」を一度押す必要があります。キャッシュされた旧ルールは自動では変わりません。

ゼロからルールを書きたくない?

多くの事業者はルールセットも配っています。この記事は各行の意味を読み、例えばネット銀行のドメインを DIRECT に足すためのもので、全員がゼロから書く必要はありません。

注:構文は Shadowrocket 公式マニュアルと実機確認に基づきます。対応するルール種別はバージョンで差があります。お使いのビルドの実際の対応を優先してください。

まだ Shadowrocket を入れていませんか? App Store 買い切り $2.99。アプリ内課金もサブスク料金もなし。導入後、本記事のルールで分流を始められます
ダウンロードガイドを見る →

関連記事:ホーム:Shadowrocket とは · チュートリアルの上級ルール