公式マニュアル / 機能と設定

Shadowrocket
機能と設定方法

まずGlobal Routingを確認し、次にConfigとサーバーをチェックします。一度に変更するのは1種類だけにして、同じ宛先で再テストしましょう。ルール、DNS、接続の問題を切り分けやすくなります。

初回接続の手順を見る

対応デバイス:iPhone / iPad / Mac / Windows / Android / Linux。以下ではiPhone / iPadの画面を例に説明します。他のプラットフォームでは同じ名称の項目を探してください。実際の場所や利用できる項目は、各プラットフォームの画面で確認してください。

01 / 通信全体の処理方法

Global Routingの3つのモード

場所:Home → Global Routing

Global Routingでは、クライアントが処理する範囲内のリクエストをどのように扱うかを指定します。ConfigモードはConfig、プロキシモードはProxy、直接接続モードはDirectに対応します。通常のルール振り分けにはConfigを選びます。リクエストにルールが適用されているかを調べる場合は、一時的にProxyまたはDirectに切り替えて比較できます。モードを切り替えてもサーバーは変わらず、アカウント、ポート、プロトコルの設定も自動修正されません。

各モードの用途と確認項目
画面上の選択肢処理方法使用する場面最初に確認する項目
Config / 設定現在有効な設定のルールに従ってポリシーを選択します。通常のルール振り分けに使い、プロキシ経由と直接接続のリクエストを個別に処理します。Configが有効か、ルールの順序とポリシーの割り当てが正しいかを確認します。
Proxy / プロキシ処理対象のリクエストは主にプロキシ経由になります。ただし、システムやConfigのバイパス設定も確認してください。ルールの誤判定を一時的に除外し、選択中のサーバーから目的の宛先へ接続できるか確認します。Homeで選択中のサーバー、プロトコル設定、サーバー側の稼働状況。
Direct / 直接接続処理対象のリクエストを直接接続で処理します。現在のネットワークから目的の宛先にアクセスできるか確認する場合や、プロキシポリシーを一時的に使わない場合に選択します。ローカルネットワーク、DNS、接続先サービスに問題がないか。

HomeでGlobal Routingを開き、必要なモードを選んで戻ります。同じWebサイトまたはアプリから新しいリクエストを送信して確認してください。既存の長時間接続は以前の経路を使い続ける場合があります。必要に応じて対象アプリを終了し、再度開いてください。Proxyでは接続できてConfigでは失敗する場合は、ルールとポリシーを確認します。両方で失敗する場合は、ルールの適用範囲を広げる前にサーバー、ネットワーク、接続先サービスを確認してください。

02 / 条件とポリシー

Ruleによる通信の振り分け

場所:Config → 使用中のConfig内のRule

ルールによる振り分けでは、「リクエストがどの条件に一致するか」と「一致したときにどう処理するか」を分けて考えます。DOMAIN、DOMAIN-SUFFIX、DOMAIN-KEYWORDはドメインに関する条件です。IP-CIDRとIP-CIDR6はアドレス範囲、GEOIPはアドレスの地域判定に使います。USER-AGENTはリクエストヘッダーを照合します。クライアントが該当情報を取得できる場合にのみ有効で、あらゆる暗号化通信のアプリを識別できる機能ではありません。

よく使われるポリシーはDIRECT、PROXY、REJECTです。DIRECTは直接接続、PROXYはプロキシポリシーで処理、REJECTは一致したリクエストを拒否します。Configには独自のポリシー名が使われることもあります。変更前に、現在のConfig内でその名前が定義され、意図したサーバーまたはポリシーグループを指しているか確認してください。名前が似ていても同じ動作とは限りません。

[Rule]
DOMAIN,example.com,PROXY
DOMAIN-SUFFIX,example.org,PROXY
DOMAIN-KEYWORD,example,DIRECT
IP-CIDR,192.168.0.0/16,DIRECT
FINAL,DIRECT

上記は構文の例であり、既存のConfigを置き換えるための完全な設定ではありません。DOMAINは指定したドメインに完全一致し、DOMAIN-SUFFIXはサブドメインにも一致します。DOMAIN-KEYWORDはより広い範囲に一致するため、意図しないドメインまで対象になることがあります。ルールは通常、上から順に評価され、最初に一致した条件が優先されます。そのため、具体的なルールを広い条件より前に置き、残りのリクエストを処理するFINALは末尾に配置します。

設定を変更する前に現在のConfigをバックアップします。範囲を明確にしたルールを1つ追加し、Global RoutingがConfigになっていることを確認してから、新しいリクエストを送信し、記録された一致結果を確認してください。ルールに一致しない場合は、実際にアクセスしたドメインとリダイレクト後のドメインが一致しているか確認します。一致しているのに経路が違う場合は、同じ条件を繰り返し追加せず、ポリシーの割り当てを確認してください。IP判定を使うルールでは、ドメインの名前解決結果とConfigの名前解決設定も考慮します。

03 / 情報の読み込みと管理

Subscribeとサーバーの管理

場所:Config / Subscribe、Home / Add Server

サブスクリプションではサーバー情報をまとめて取得・更新できます。サーバー情報には接続に必要なアドレス、ポート、プロトコル、認証パラメーターが保存されます。ここでは、すでに利用できるサブスクリプションまたはサーバー情報をお持ちであることを前提とします。サブスクリプションURLはご利用のサービス提供元から取得してください。クライアントを購入・インストールしただけでは、接続先は自動的に用意されません。

サブスクリプションURLをお持ちの場合は、ConfigのSubscribeから追加して保存・更新し、Homeに戻って項目を確認します。サーバー情報が1台分のみの場合は、Add Serverで該当する種類を選び、各項目を入力してください。Shadowsocks、VMess、VLESS、Trojan、Hysteria2、WireGuardなど、プロトコルごとに必要な項目は異なります。サービス提供元から受け取った情報に従って入力してください。アドレスとポートだけでは設定は完了しません。

Scan QR Codeやクリップボードからの読み込みは、共有情報をすでにお持ちの場合に便利です。読み込む前に、その内容がサーバー共有情報かConfig全体かを確認し、ConfigのURLをサーバーアドレス欄に入力しないよう注意してください。サブスクリプションURLにはアクセス用の認証情報が含まれることがあります。公開スクリーンショット、チャット、診断ファイルに載せないでください。URLが漏えいした場合は、サービス提供元に連絡して対処してください。

更新前に、選択中のサーバーと重要なメモを記録しておきます。サブスクリプションの更新で項目が置き換わることがあり、サブスクリプション内の項目に手動で加えた変更も上書きされる場合があります。長期的に使う手入力のサーバー情報は、別に整理しておきましょう。複数のサブスクリプションは用途ごとに名前を付け、削除する前に提供元とグループを確認してください。表示名が同じという理由だけで同一項目と判断しないようにします。

サブスクリプションの更新・並べ替え・バックアップ方法を見る →

04 / 接続の自動開始

On Demandによる自動接続

場所:Settings → On Demand

On Demandは、設定したネットワーク条件に応じて接続を自動的に開始します。Global Routingとは役割が異なり、On Demandは「いつ接続するか」、Global Routingは「接続後にリクエストをどう処理するか」を決めます。プラットフォームが提供するネットワーク拡張機能と現在の権限に依存するため、すべてのアプリやネットワーク状態で同じように動作するとは限りません。

まずHomeから手動で接続し、サーバーが利用できることを確認します。次にSettingsのOn Demandを開き、現在の画面に表示されるネットワークの種類やWi-Fiなどの条件を設定してください。最初は確認しやすい条件を1組だけ有効にします。ネットワークを切り替えて接続状態を確認してから、必要に応じて例外を追加しましょう。使用中のプラットフォームに該当する項目がない場合は、そのプラットフォームで利用できる機能に従ってください。他のデバイスの設定をそのまま適用しないでください。

自動接続を一時停止する場合は、Homeのスイッチをオフにするだけでなく、On Demandの設定も確認してください。接続が何度も再開する場合は、まず自動接続条件を無効にして様子を見ます。サーバーをすべて削除して解決しようとしないでください。Wi-Fiとモバイルネットワークの切り替え後に一時的な切断が起きた場合は、ネットワーク自体の再接続と自動接続条件の一致を分けて確認します。

05 / 通信量の確認

Dataで通信量を確認

場所:Data

Dataでは、クライアントに記録されたアップロード、ダウンロード、および関連する通信量を確認できます。数値を見る前に、統計の対象範囲を確認してください。現在の接続、累積記録、サーバー別の項目では、集計の開始・終了時刻が異なる場合があります。ここに表示される統計は、システムのモバイルデータ通信量やサービス提供元のアカウント上の課金データとは異なります。

特定の操作で通信が発生するか調べるには、現在の数値を記録し、他のバックグラウンド通信を一時停止してから、対象へのアクセスを1回行い、前後の変化を比較します。現在の画面で統計を消去できる場合は、必要な記録を保存してから消去してください。統計をリセットしても、サービス提供元のアカウント残量が回復するわけではありません。

統計の増加から分かるのは、該当する記録範囲でデータが通信されたことだけです。数値だけでは、目的のコンテンツが最後まで読み込まれたとは判断できません。接続の再試行、プロトコルのオーバーヘッド、バックグラウンド同期でも通信量は増えます。急増した場合は、接続記録、サーバーの選択、対象アプリを順に確認して原因を絞り込みます。通信量が少ないのにページを開けない場合は、DNS、接続の確立、接続先からの応答を引き続き確認してください。

06 / よく使う設定

Settingsの項目

場所:Settings。Config内の項目も確認してください。

Settingsの全体設定とConfig内の設定項目が、接続に同時に影響することがあります。同じ名前や似た名前の項目がある場合は、現在有効なConfigと各項目の説明を確認してください。すべてのプラットフォームで同じ優先順位が適用されるとは限りません。以下では用途別に説明します。具体的な選択肢は現在の画面で確認してください。

DNS:名前解決を確認してから振り分けを調べる

DNSはドメイン名をアドレスに変換する、アクセス経路上の独立した処理です。SettingsのDNS関連項目と、有効なConfigにDNS設定が含まれているかを確認してください。現在のネットワークで利用できる適切な名前解決設定を選び、一度に変更するのは1項目だけにします。保存後に再接続し、同じドメインで再テストしてください。キャッシュによって変更の影響が分かりにくくなるのを防げます。

問題の切り分けのために、すべてのDNS項目を一度に変更しないでください。ドメインの名前解決に成功しても、プロキシ接続が成功するとは限りません。DNSリクエストの経路と、接続先への通信に適用されるポリシーは、それぞれ確認する必要があります。一部のドメインだけ失敗する場合は、入力ミス、DNSレコード、ルールとの一致を先に確認します。複数の接続先で同時に失敗する場合は、ローカルネットワークと選択中の名前解決方法を比較してください。

Test Method:テスト方法と実際の使用感は別

Test Methodはサーバーのテスト方法を指定します。Settingsで現在の方法を確認し、HomeからConnectivity Testを実行してください。結果が示すのは特定のテスト条件下での到達性や所要時間です。すべてのWebサイトの応答速度を示すものではなく、認証、通信、接続先へのアクセスの各段階がすべて正常であることを保証するものでもありません。

サーバーを比較するときは、テスト方法、ネットワーク、テスト対象を同じ条件にしてください。テストに失敗した場合は、まずサーバー側がそのテストに応答するか確認し、実際のアクセス結果とも照らし合わせます。テスト値が低いという理由だけで、安定して使用中のサーバーを頻繁に切り替えないようにしてください。

Today Widget:ショートカットとメイン画面での確認

Today Widgetは、対応プラットフォームでショートカットや状態確認に使えます。まずSettingsで関連項目を確認し、システムの案内に従ってウィジェットを追加してください。利用可否や表示場所はシステムのバージョンによって異なります。デバイスに該当する項目がない場合は、Homeから接続や切り替えを行ってください。

ウィジェットから操作した後も、Homeに戻ってサーバーと接続状態を確認してください。ウィジェットの表示には更新の遅れが生じることがあるため、古い状態だけを見て接続が停止したと判断しないでください。また、ルールやサブスクリプションを管理する画面として使うものではありません。

iCloud同期:事前にバックアップ

iCloud同期で扱えるのは、現在のプラットフォームと画面が対応しているデータです。すべてのデバイスが完全にリアルタイムで同期されるわけではありません。まずシステムのiCloud権限を確認し、Settingsの同期項目と対象データをチェックしてください。初めて有効にする前にローカルバックアップを保存し、どのデバイスのデータを基準にするか決めてから、もう一方のデバイスで同期結果を確認します。

設定の同期によって、アプリの購入履歴やサービス提供元のアカウントまで同期されるわけではありません。現在の接続状態も自動的に一致するとは限りません。複数のデバイスで同時に編集すると、内容が上書きされることがあります。大きな変更はまず1台で完了させて同期を確認し、その後、他のデバイスを操作してください。同期ファイルに機密性の高い接続情報が含まれる場合があるため、デバイスとクラウドアカウントのアクセス権を適切に管理してください。

07 / トラブルの切り分け

Diagnosticsと接続記録

場所:Settings → Diagnostics関連項目

Diagnosticsは、名前解決、サーバー接続、認証、リクエスト処理のどの段階で問題が起きたかを切り分けるのに役立ちます。現在の画面で利用できる診断機能と記録機能を有効にし、発生時刻、使用中のネットワーク、Global Routingのモード、現在のサーバーを記録してから、問題を1回だけ再現してください。長時間記録されたログから推測するのではなく、具体的な操作と記録を対応付けられます。

まず、どの段階で失敗したかを確認します。ドメインの名前解決結果が得られない場合はDNSを確認します。サーバーへの接続に失敗する場合は、アドレス、ポート、ネットワークを確認します。接続は確立しているのに接続先へのアクセスに問題がある場合は、ポリシー、プロトコルの追加項目、接続先からの応答を確認してください。異なる原因でも似た症状が起きるため、すべてのタイムアウトをルールの問題と決めつけないでください。

サービス提供元に状況を伝える必要がある場合は、エラーメッセージ、再現手順、ネットワークの種類をまとめます。共有する前にサブスクリプションURL、パスワード、認証情報、不要なアクセス記録を削除してください。スクリーンショットの内容も項目ごとに確認します。調査後は日常の記録設定に戻し、不要になった診断ファイルを削除して、機密性の高いアクセス情報を長期間保存しないようにしてください。

08 / 設定の再確認

同じ経路に沿って確認

問題が発生したら、まず現在の状態を記録し、1項目ずつ比較します。解決したら一時的な設定を元に戻し、効果が確認できた変更だけを残してください。

  1. Home:接続スイッチ、現在のサーバー、Global Routingを確認し、項目の選択間違いがないか確認します。
  2. Config:有効なConfig、ルールの順序、ポリシー名を確認します。読み込みが成功したかだけで判断しないでください。
  3. Connectivity Test:同じネットワークとTest Methodを使い、実際のアクセス結果も合わせて判断します。
  4. DNS / Diagnostics:失敗した段階に応じて調べます。必要な記録を保存したら、日常の設定に戻してください。