FEATURES & SETTINGS

Shadowrocket の機能と設定:Global Routing、ルール振り分けと主な項目

このページでは、Shadowrocket のよく使う機能を画面の順番に沿って一通り解説します。Global Routing の3つのモードがそれぞれどんな場面に向くのか、ルール表のキーワードとポリシーの読み方、サーバーとサブスクリプションの管理方法、On Demand、Data の通信量統計、Settings の主要項目がそれぞれ何を担うのか。各項目について、何なのか、どの画面にあるのか、どう設定するのか、注意点は何かを整理します。

  • iOS / iPadOS
  • App Store 独占配信
  • 買い切り
  • iPhone と iPad に対応

GLOBAL ROUTING

Global Routing の3モード:Config、Proxy、Direct

Global Routing は Home ページにあり、接続を誰に処理させるかを決めます。3つのモードは排他で、同時に有効になるのは1つだけです。切り替えても、すでに読み込んだサーバーや設定は変わりません。

概要

Global Routing は Home ページにあるグローバルなモード設定で、対象は個々のルールではなく端末から出る接続全体です。読み込み済みのサーバーや設定ファイルは変わらず、それらの接続の扱い方だけが変わります。

3つのモードの役割

Config(設定):現在選択中の設定にあるルール表に沿って1件ずつ判定します。PROXY に一致した接続はサーバー経由、DIRECT に一致した接続は直接接続、REJECT に一致した接続は拒否されます。日常的な利用はこのモードが基本です。

Proxy(プロキシ):すべての接続を現在選択中のサーバーにまとめて処理させます。ルール表は判定に使われません。一時的に全体を同じ回線で通したい場面に向きます。

Direct(直接接続):すべての接続をサーバーを経由せず直接送信します。「つながらない原因が回線側にあるのか、ローカルネットワーク側にあるのか」を切り分けるのに向きます。

切り替え方

Home → Global Routing で Config、Proxy、Direct のいずれかを選びます。切り替え後は以降の接続が新しいモードで処理されます。設定・ルール・サーバーリストはそのままで、Config に戻せばルールに沿った振り分けに戻ります。

注意点

Direct モードでもルール表は残ったままで、判定に使われないだけです。ルールが削除されたわけではありません。Proxy モードではすべての通信が1台のサーバーに集中するため、Data ページの数値もその1台に集まります。通信量を調べる前に、まず現在のモードを確認してください。

Global Routing 3モードの比較
モード画面表示通信の経路主な用途
ConfigConfig現在の設定のルール表に沿って1件ずつ判定日常利用。振り分けと直接接続が併存
ProxyProxyすべて現在選択中のサーバーに任せる全体を同じ回線で通したいとき
DirectDirectすべて直接送信し、サーバーを経由しない問題が回線側かローカル側かの切り分け

RULES

ルール振り分け:キーワード、ポリシー、マッチ順序

ルール表は各接続がどの経路を通るかを決めます。読み込んだ設定に含まれるもので、クライアントは上から下へ1件ずつ照合し、最初に一致したルールが有効になります。それ以降のルールは判定に使われません。

ルールの出どころ

ルールは設定ファイルに書かれています。Config ページで追加して選択した設定のルール表に沿って判定します。クライアント自体に特定サービス向けのルールセットは内蔵されておらず、ルールの内容は設定の提供元が決めます。

1件のルールの構成

3つの部分からなります。マッチキーワード、マッチ値、ポリシーです。ポリシーの書き方は PROXY(サーバーに任せる)、DIRECT(直接接続)、REJECT(拒否)の3つだけです。キーワードは何と照合するかを、ポリシーは一致後にどう処理するかを決めます。

マッチ順序

上から下へ1件ずつ照合し、最初に一致したルールがその接続の行き先を決めます。FINAL は通常、最後の1件として受け皿になります。前のルールがすべて一致しなかった場合にこれで処理されます。範囲の狭いルールを前に、広いルールを後ろに置くと、結果が想定どおりになります。

注意点

REJECT は一致した接続にだけ働き、遮断の効果は要求側が失敗をどう扱うかによって変わります。どのような場面でも広告除去の効果を約束するものではありません。ルールを変更したら、まず設定を保存し、その設定を選び直すと変更が反映されます。

各ルールキーワードのマッチ範囲については、別記事で1つずつ解説しています:DOMAIN、GEOIP、IP-CIDR、FINAL はそれぞれ何に一致するか

ルールキーワードとマッチ対象の対応
キーワードマッチ対象記述例
DOMAIN完全なドメイン名、完全一致DOMAIN,example.com,PROXY
DOMAIN-SUFFIXドメインのサフィックス。そのドメインとサブドメインの両方に一致DOMAIN-SUFFIX,example.com,PROXY
DOMAIN-KEYWORDドメインに含まれるキーワードDOMAIN-KEYWORD,static,DIRECT
IP-CIDR宛先 IPv4 アドレス範囲IP-CIDR,203.0.113.0/24,DIRECT
IP-CIDR6宛先 IPv6 アドレス範囲IP-CIDR6,2001:db8::/32,DIRECT
GEOIPIP の割り当て地域コードGEOIP,CN,DIRECT
USER-AGENTリクエストに含まれる User-AgentUSER-AGENT,Example*,DIRECT
FINAL受け皿。前のルールがどれも一致しないときに有効FINAL,PROXY

SERVERS & SUBSCRIBE

サーバーとサブスクリプション:Add Server と Subscribe の使い方

サーバーをクライアントに入れる方法は2つあります。手動で1件追加するか、サービス提供元が発行するサブスクリプションリンクを読み込むかです。どちらの方法も、最終的には同じサーバーリストに入ります。

Add Server:手動で1件追加する

Add Server はサーバーを1件追加するための項目で、名前、種類、アドレス、ポート、およびその種類で必要な認証情報のフィールドを入力します。種類は Shadowsocks、VMess、VLESS、Trojan、Hysteria2、WireGuard、HTTP、SOCKS5 などが一般的で、プロトコルによって入力するフィールドが異なります。実際のフォーム表示に従ってください。

Subscribe:サブスクリプションを読み込む

サブスクリプションリンクは利用中のサービス提供元から取得します。Config ページでサブスクリプションのアドレスを追加すると、クライアントがその中のサーバーとルールを取得して解析します。リンクがいつ更新されるか、中身は何か、いつ無効になるかは提供元が決めることで、クライアントは読み込みと更新だけを行います。

その他の読み込み方法

Scan QR Code はサービス提供元が発行する QR コードを読み取るための機能、Import from Cloud JSON はクラウドストレージに置いた JSON 設定を読み込むための機能です。本文中に出てくるアドレス、ドメイン、リンクはすべて example.com のような明らかな架空値です。自分の実際のサブスクリプションリンクを公開の場に貼らないでください。

管理と注意点

サーバーリストでは遅延テスト、並べ替え、コピー、削除ができます。サブスクリプションリンクは一種の認証情報で、入手した人は同じ回線を利用できてしまうため、公開での共有には向きません。区別しておきたいのは、クライアントは App Store での買い切りで、買っているのはアプリ本体だという点です。回線とプランは利用中のサービス提供元が提供するもので、この2つは別の話です。

サブスクリプションは追加後に手動で更新できるほか、クライアントを開いたときに自動更新させることもできます。更新に失敗したときは、まず表示されたメッセージを確認し、それから項目ごとに切り分けてください。この部分については別記事があります:サブスクリプションの更新:手動更新、起動時の自動更新、失敗の原因

買い切りとプランは別の話

クライアントの買い切り ≠ 回線のプラン。App Store での買い切りで買えるのは Shadowrocket というアプリ本体です。ノード、サブスクリプション、回線は利用中のサービス提供元から取得する必要があり、当サイトはノードサービスを提供も推奨もしていません。

ON DEMAND

On Demand:3種類のトリガー条件

On Demand は条件に応じて接続を自動で処理させる機能です。特定のネットワークに接続したときや特定のドメインにアクセスしたときに、あらかじめ決めた動作を実行するので、毎回手動で切り替える必要がありません。

TRIGGER 01

Wi-Fi

現在接続している Wi-Fi ネットワーク名を条件にします。「自宅のネットワークではこの扱い、それ以外のネットワークでは別の扱い」といった使い方に向きます。

TRIGGER 02

モバイル通信

モバイルデータ通信を使っているかどうかを条件にします。「Wi-Fi から離れたら自動的にこの扱いにする」といった使い方に向きます。条件自体に具体的なキャリア情報は含まれません。

TRIGGER 03

ドメイン

アクセス先のドメインを条件にします。特定のドメインに一致したときに設定した動作を実行するので、一部のドメインだけを個別に指定の扱いにしたい場合に向きます。

設定方法

Settings → On Demand でルールを1件追加します。条件の種類(Wi-Fi / モバイル通信 / ドメイン)を選び、条件のパラメータを入力し、一致した後の動作を選びます。ルールは複数追加でき、複数の条件を同時に満たす場合は実際のマッチ結果に従って処理されます。

注意点

条件を広く書きすぎると、本来発動すべきでない場面で発動しやすくなります。あるネットワークで「つながらない」ときは、まず On Demand でそのネットワークが何かの動作に一致していないかを確認し、そのうえで Global Routing のモードとルール表を見直して、2つの原因を切り分けて調べてください。

3種類のトリガー条件のパラメータの意味とよくある設定ミスについては、別記事で詳しく説明しています:On Demand:Wi-Fi、モバイル通信、ドメインのトリガー設定方法

DATA

Data の通信量統計:サーバー別とアプリ別の2つの数値

Data ページは通信量を2つの数値に分けて表示します。1つはサーバー別、もう1つはアプリ別です。集計の基準が異なるので、両方を合わせて見ることで原因を特定できます。

サーバー別

各サーバーが累計で処理した上りと下りの通信量を集計します。通信がどの回線に集中しているか、ある回線が大量に使われていないかを確認するのに使います。

アプリ別

各アプリがクライアント経由で処理した通信量を集計します。「どのアプリが通信を流し続けているか」を見つけ、そのうえでサーバー別の数値に戻って、どの回線を通ったかを確認します。

システムの統計と一致しない理由

システム設定の通信量統計は端末のすべてのネットワーク活動を対象にしていますが、Data ページが記録するのはクライアントが処理した接続だけです。集計範囲も起算時点も異なるため、数値が一致しないのは正常なことで、統計の誤りではありません。

異常な通信量の調査に使う

おすすめの順序は次のとおりです。まずアプリ別の数値を見て、明らかに大きい項目を探します。次にサーバー別の数値を見て、その通信がどのサーバーを通ったかを確認します。最後に Global Routing に戻り、現在のモードが Config かどうかを確認して、「グローバルプロキシで全通信が1台に集中している」ケースを除外します。

注意点

数値はこの端末の記録なので、機種変更や再インストールで引き継がれることはありません。「最近異常があるか」を判断するときは、まず現在の数値を控えてから変化を見てください。単位は KB / MB / GB で自動的に換算され、実際の表示はアプリ内の画面に従います。

2つの数値がそれぞれ何を意味するかについては、別記事で詳しく説明しています:Data ページの通信量統計の見方:サーバー別とアプリ別の数値の意味

SETTINGS

Settings の主要項目:DNS、Test Method、Today Widget、診断

Settings ページには多くの項目がありますが、日常的に触る必要があるのはごく一部です。以下では「接続と名前解決 / 入口と同期 / 診断と記録」の3組に分けて説明します。分類は読みやすくするためだけで、実際の入口はアプリ内の Settings ページに従います。

  • DNS ドメインを誰が名前解決するか
  • Test Method 遅延テストで使うプローブ方式
  • Connectivity Test 接続前後の到達性テスト

DNS はドメインを誰が名前解決するかを決めます。解決サーバーを指定することも、システム既定の解決に任せることもできます。変更の効果は利用中の回線とネットワーク環境によって変わるため、迷ったらまず既定のままにしてください。Test Method は遅延テストで使うプローブ方式を決めます。方式によって数値の基準が異なるので、2つの方式の結果を比べないでください。Connectivity Test は接続の前後に現在のネットワークへ到達できるかを確認し、「ネットワーク自体がつながらない」のか「回線がつながらない」のかを切り分けるために使います。

NOTES

このページの内容を使ううえでの前提

機能と設定はどちらも2つの前提の上に成り立ちます。アプリ本体は App Store から入手し、回線とサブスクリプションは利用中のサービス提供元から提供される、という点です。

買い切りとプランは別の話

クライアントの買い切り ≠ 回線のプラン。Shadowrocket は App Store での買い切りで(米国ストアの価格は 2.99 ドル、各ストアでは現地通貨で表示され、ストアページが基準です)、買えるのはアプリ本体です。ノード、サブスクリプション、回線は利用中のサービス提供元から取得する必要があり、当サイトはノードサービスを提供も販売も推奨もしていません。

入手経路について

Shadowrocket は App Store でのみ販売されており、開発者は Shadow Launch Technology Limited、アプリ ID は 932747118 です。iPhone と iPad が中心で、Mac、Apple TV、Apple Vision も同じストアページの互換性欄に記載されています。システム要件は App Store ページの記載を基準にしてください。

画面の違いについて

システムのバージョンによって、Settings 内の項目名や位置が多少異なる場合があります。本文は一般的な並びに沿って説明しています。一致しない箇所がある場合は、お使いの端末のアプリ内での実際の表示に従ってください。

サンプル値について

本文中に出てくるアドレス、ドメイン、ルールの断片はすべて example.com、203.0.113.0/24 のような明らかな架空値で、実在のサービスとは対応していません。

Global Routing を Direct に切り替えるとルールは削除されますか?

いいえ。Direct は接続をサーバー経由にしないだけで、設定とルール表はそのまま残ります。Config に戻せばルールに沿った振り分けに戻ります。

サブスクリプションリンクは他の人に共有してもよいですか?

おすすめしません。サブスクリプションリンクは一種の認証情報で、入手した人は同じ回線を利用できてしまいます。リンクの更新と失効は利用中のサービス提供元が決めます。

Settings の項目を変更したのに、すぐ反映されないのはなぜですか?

一部の設定は次の接続時に反映されます。いったん切断してから再接続するか、Global Routing のモードを一度切り替えてから、Data ページの数値の変化を確認してください。

Mac や Apple TV にもこれらの設定はありますか?

同じアプリでも端末によって画面の並びは完全には一致しません。項目名はその端末のアプリ内での実際の表示に従ってください。システム要件はすべて App Store ページの記載を基準にしてください。