OFFICIAL MANUAL / QUICKSTART

Shadowrocket
追加・接続・動作確認

5つの手順で初期設定を行います。まず既存のサーバーを一つ使える状態にしてからルールを確認してください。サーバー、DNS、振り分け設定を同時に変更しないようにします。

順番に操作できるよう、約10分を目安に時間を確保してください。実際にかかる時間は、手元の情報が揃っているか、ネットワークの状態、システムの許可状況によって異なります。掲載画像はすべてApp Storeの公式スクリーンショットで、画面上の場所を確認するためのものです。項目名はお使いの端末に表示される内容をご確認ください。

STEP 01 / SERVER INPUT

Add Server:サーバーの追加またはサブスクリプションの読み込み

手元の情報に合わせて、追加方法を選びます。サーバー1台分の接続情報が揃っている場合は手動で追加し、サブスクリプションリンクをお持ちの場合はSubscribeを使います。どちらもHomeのSERVER欄に選択可能なサーバーを表示させる方法です。初回接続のために両方を行う必要はありません。

手動で追加:手元の情報に合わせて入力する

Homeを開き、Add Serverをタップするか、追加用のプラスボタンから追加画面に進みます。まずTypeを開き、手元の情報に記載されたプロトコルを選んでから、必要な項目を入力します。Typeによって表示される項目が変わるため、画面の例を先に入力してからTypeを変更するのは避けてください。

たとえば、公式スクリーンショットにはHost、Port、Password、Methodなどの項目が表示されています。Hostにはサーバーのホスト名またはアドレス、Portには指定されたポート番号を入力し、PasswordとMethodは手元の情報と一つずつ照合します。ほかのプロトコルでは認証、通信方式、安全性に関する項目が異なる場合があります。あるTypeのPasswordを、すべてのプロトコルで共通の項目として扱わないでください。パスワードの大文字・小文字、末尾の空白、コピー時に含まれた改行も接続失敗の原因になります。

情報を確認したら、画面の保存または完了操作でHomeに戻り、SERVERに追加した項目が表示されているか確認します。接続情報がQRコードの場合はScan QR Codeを使い、システムの案内に従ってカメラへのアクセスを許可します。Import from Cloud JSONは別形式の構造化データを読み込む機能です。通常のサブスクリプションリンクをJSONデータとして読み込まないでください。

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

サブスクリプションリンクをお持ちの場合は、Add ServerでTypeを開いてSubscribeを選び、自分の完全なリンクをURL欄に入力します。識別しやすいメモを付けて保存してください。リンクはご自身のサービス提供元から入手し、コピー時にパスとパラメーターをすべて含めてください。サブスクリプションリンクには認証情報が含まれることがあるため、公開の場に投稿したり、リンクが写った画面を共有したりしないでください。

保存後、サブスクリプションの取得が完了するまで待ち、Homeに戻ってグループとサーバー項目を確認します。グループ名だけが表示され、選べるサーバーがない場合は、すぐに接続スイッチをオンにしないでください。まずサブスクリプションを更新し、返された内容がクライアントで認識できるサブスクリプションか確認します。ログイン画面、エラーページ、通常のWebページが返されている可能性もあります。

読み込みが完了したら、今回のテストに使うサーバーを一つ選びます。以降のトラブルシューティングはこの項目を基準にし、失敗するたびに複数の設定を同時に変更しないようにします。サブスクリプションと.conf設定ファイルは別のものです。違いを確認したい場合は、用語早見表のサブスクリプションと設定の説明をご覧ください。

ShadowrocketのAdd Server画面の公式スクリーンショット。Type、Host、Port、Password、Methodと、画面下部の読み込み項目を表示
Add Server:最初にTypeを選び、手元のサーバー情報に合わせて項目を確認します。画像の項目構成はすべてのプロトコルに当てはまるわけではありません。

STEP 02 / ROUTING CHOICE

Global Routing:今回の通信処理方法を選ぶ

サーバーを確認するのか、普段使うルールを検証するのかを先に決めます。HomeでGlobal Routingを開くと、Config、Proxy、Directを選択できます。ここで変わるのは通信の処理方法です。サーバーのパスワードの誤りを修正したり、不足している接続情報を補ったりする機能ではありません。

初回確認にはProxy、ルールによる振り分けにはConfig

Proxyは、今回のテストを選択中のサーバー経由にする場合に適しています。初回の読み込み後は、まずProxyを選んで次の手順で接続すると、ルールの適用結果による影響を抑えられます。ただし、すべてのサービスに必ずアクセスできるという意味ではありません。実際の結果はサーバー、アクセス先のサービス、ネットワークの状態に左右されます。

Configでは、有効な設定ファイル内のルールに従ってリクエストを処理します。使用する前にConfig画面で、どの設定ファイルが有効になっているかを確認してください。ファイルの内容を開いたら、GeneralとRuleを重点的に確認します。ファイルを開いたり編集したりしただけでは、そのファイルが現在有効になったとは限りません。設定ファイル一覧で選択状態も確認してください。

Directは、選択中のプロキシサーバーを経由せずに宛先へ直接アクセスします。比較に使うことで、同じ宛先でもDirectとProxyで結果が異なる場合、アプリのスイッチではなく、ネットワーク経路またはサーバーの問題を切り分ける手掛かりになります。既存のサーバー経由で通信したい場合は、上部に接続中と表示されていても、Directが選択されていないか確認してください。

Configでは内容の確認にとどめ、ルール変更は急がない

右側の公式スクリーンショットには、設定ファイルの各セクションとAdd Ruleの入口が表示されています。使い始めの段階では、既存ルールのポリシーを確認するだけで十分です。Hosts、URL Rewrite、HTTPS Decryptionを変更する必要はありません。以下は独立した構文例であり、現在の設定を置き換えられる完全な設定ファイルではありません。サーバー情報も含まれていません。

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

Ruleは通常、上から順に判定されます。後ろのルールより前に、上の具体的な条件が適用されることがあります。例のDOMAIN-SUFFIXはドメインのサフィックス、IP-CIDRはIPアドレスの範囲に一致し、FINALはそれまでのルールに一致しなかったリクエストを処理します。PROXY、DIRECT、REJECTはポリシーを表すキーワードです。Global Routingの画面上の選択肢とは分けて理解してください。

モードを確認したらHomeに戻り、選択したサーバーはそのままにします。ルールの設計、DNSの理解、設定ファイルの構成変更について詳しく知りたい場合は、設定ガイドをご覧ください。ここではモードを一つ決めて接続し、テスト中に設定ファイル全体を書き換えることは避けます。

ShadowrocketのConfig画面の公式スクリーンショット。General、Rule、Hosts、URL Rewrite、HTTPS Decryptionの各セクションとAdd Ruleを表示
Config:設定ファイルの各セクションを確認する画面です。Global Routingのモード選択はHomeで行うため、別の操作です。

STEP 03 / CONNECTION

Home:スイッチをオンにしてシステムの許可を完了する

サーバーとGlobal Routingを確認してから、Home上部のスイッチをオンにします。接続前に、選択中のサーバーをもう一度確認してください。特にサブスクリプション内に似た名前の項目が複数ある場合は注意が必要です。グループ名と実際に選択されているサーバーは、必ずしも同じ階層ではありません。

初回接続時はVPN構成の確認に対応する

初めてオンにすると、ShadowrocketによるVPN構成の追加をシステムが求める場合があります。この確認は、クライアントがシステムのネットワーク機能を使って通信を処理できるようにするためのものです。アプリ名と確認内容を確かめ、システム画面の案内に従って承認し、必要なデバイス認証を完了してください。いったんキャンセルした場合は、アプリに戻って再度許可を求める必要があります。許可が未完了の状態をリモートサーバーの障害と混同しないでください。

許可が完了したらHomeに戻り、画面上部の状態がNot Connectedから接続状態に変わったか確認します。スイッチを押した直後の表示だけで判断しないでください。すぐにオフになる、または状態が何度も変わる場合は、まず状況を記録し、手順5で確認します。システムの許可が完了したことは、ローカルで構成を作成する許可が得られたという意味です。リモートサーバーとのハンドシェイク、DNSクエリ、宛先へのアクセスがすべて成功したことを示すものではありません。

接続後は設定を変えずに確認する

スイッチがオンのままなら、サーバーやGlobal Routingを続けて切り替えないでください。現在の組み合わせを維持し、次の手順でConnectivity Testを実行してから、実際にアクセスしたい宛先を開きます。失敗した場合も、どの条件で起きたのか把握しやすくなります。

iPadでも同じ順序で選択と許可を行います。画面の向きやウインドウの幅によって、リストと詳細の配置が変わることがあります。スクリーンショット上のボタンの座標ではなく、HomeやConfigなどの画面名を手掛かりに操作してください。画面のレイアウトが異なる場合は、現在の画面と操作対象を先に確認します。

今回の接続を停止するには、Homeに戻って上部のスイッチをオフにし、接続状態が終了したか確認します。On Demandを設定している場合、条件に応じてシステムが再接続することがあります。その場合は構成を繰り返し削除するのではなく、まず起動条件を確認してください。初めて使う段階でOn Demandを有効にする必要はありません。まず手動で動作確認すると、問題を切り分けやすくなります。

ShadowrocketのHome画面の公式スクリーンショット。上部にNot Connectedのスイッチ、Global Routing、Connectivity Test、下部にSERVERとAdd Serverを表示
Home:サーバー、Global Routing、上部のスイッチを順に確認します。この画像は画面の場所を示すもので、お使いの端末が現在接続中であることを示すものではありません。

STEP 04 / VERIFY REQUESTS

Connectivity Test:テスト結果と実際のアクセスを分けて確認する

確認するのは、テストが応答したか、実際の宛先にアクセスできるか、リクエストが想定したポリシーで処理されたかの3点です。相互に関係しますが、互いの代わりにはなりません。テストで応答があっても、そのテスト方法で結果が得られたことを示すだけです。すべてのプロトコル、Webサイト、ルールが正常だとは判断できません。

まずテストを実行し、その後に実際のリクエストを送る

手順3で選択した接続とサーバーを維持したまま、HomeでConnectivity Testをタップし、結果を待ちます。利用中のネットワーク、サーバー、Global Routingを記録してください。特定の遅延値を目標にする必要はありません。タイムアウトになっても、すぐに項目を削除しないでください。テスト先、テスト方法、サーバーの状態が結果に影響することがあります。

続いて、ネットワークを使うアプリに切り替え、明確な宛先ページを開くか、実際のコンテンツを更新します。キャッシュ済みのページを接続成功と誤認しないよう、できるだけ新しいリクエストを送ってください。宛先へのアクセスにアカウントへのログインが必要な場合や、サービス自体に問題がある場合も、ネットワーク接続の問題とは分けて判断します。

総通信量だけでなく、Dataでルールを確認する

Shadowrocketに戻り、Dataで利用可能なリクエストまたは接続の記録を確認して、先ほどの宛先、時刻、ポリシー情報と照らし合わせます。Configを使用している場合は、リクエストが想定どおりPROXY、DIRECT、REJECTのどれに進んだかを重点的に確認します。総通信量が増えたことはデータ通信があったことを示すだけで、特定のドメインに意図したルールが適用された証拠にはなりません。

Proxyではアクセスできるのに、Configに切り替えると失敗する場合は、すぐにサーバーのパスワードを再入力せず、現在有効な設定ファイル、該当するルールの順序、FINALを確認します。反対にProxyでも失敗する場合は、サーバー情報、ネットワーク経路、実際の宛先を先に調べます。モードを比較するときは、同じサーバー、同じネットワーク、同じ宛先を使うことで、結果を正しく解釈できます。

ドメインへのアクセスだけに問題がある場合は、その症状を確認してからDNSを検討します。原因が分からないまま複数のDNS、プロトコル設定、ルールを同時に変えないでください。変更は一度に一つにし、保存後に再接続して新しいリクエストを送ります。結果も記録してください。キャッシュや既存の接続が古い結果を一時的に保持することがあるため、一度更新しただけでは変更が反映されたか判断できない場合があります。

STEP 05 / ISOLATE FAILURE

Settings:症状からよくある問題を切り分ける

トラブルシューティングでは、まず症状を分類してから設定を変更します。既存の設定と復元できる記録は残し、すべての項目を消去することから始めないでください。以下では、読み込み、ローカルでの接続、リモートのテスト、ルールの順に確認します。該当する症状を見つけたら、一項目を変更するごとに手順4へ戻って再テストしてください。

読み込み後にサーバーが表示されない:入力内容を確認する

サブスクリプションを更新できない、またはグループが空の場合は、リンク全体を正しくコピーできているか、リンクが無効になっていないか、現在のネットワークからサブスクリプションのアドレスにアクセスできるかを確認します。アカウントのログイン画面やエラーが返される場合は、サブスクリプション自体へのアクセスを解決する必要があります。サーバー情報は接続スイッチを押し直しても自動で補われません。スイッチのオン・オフを繰り返しても、想定と異なるサブスクリプション内容は修正できません。

手動で追加した項目を保存できても使えない場合は、Type、Host、Port、およびプロトコルで必要な認証・安全性に関する項目を一つずつ照合します。特に、別々の情報を混ぜていないか確認してください。あるサーバーのホスト名に、別の項目のパスワードや通信設定を組み合わせてはいけません。意味の分からない項目は、名称から推測して入力せず、元の情報を確認してください。

スイッチがオンのままにならない:ローカルの許可と起動条件を確認する

スイッチをオンにしてもすぐにオフになる場合は、システムのVPN構成を許可済みか、システムのVPN接続に影響する別の構成がないかを確認します。Settingsに戻ってOn Demandを確認してください。ネットワークに応じた起動条件を設定している場合は、元の値を記録してから自動起動を一時停止し、手動で再テストします。手動接続の失敗と条件による再接続を切り分けられます。

システム上のVPN構成を確認するには、システム設定でVPNを検索し、該当項目を確認します。バックアップなしに構成をまとめて削除しないでください。また、ステータスバーのアイコンだけを見て、リモートサーバーの接続確認まで完了したと判断しないでください。

テストがタイムアウトする、または結果が一定しない:Test Methodを確認する

SettingsでTest Methodを開き、現在のテスト方式を確認します。方式によって確認する対象や段階が異なるため、テスト結果を実際のアプリでのあらゆるアクセス能力と同一視できません。まず同じ方式で比較し、実際の宛先へのリクエストも合わせて判断してください。一度のタイムアウトだけで、すべての項目が同じ原因で故障していると決めつけないようにします。

必要に応じて、現在使っているネットワークと、利用可能な別のネットワークを比較します。その際はサーバーとモードを変えないでください。特定のネットワークだけで失敗する場合は、そのネットワークの制限、認証、接続状態を確認します。複数のネットワークで同じ項目が失敗する場合は、サーバー情報とサービスの状態を確認してください。

一部のリクエストだけ失敗する:ルールと診断を確認する

特定の宛先だけ失敗する場合は、Dataで該当リクエストを見つけ、REJECTされていないか、意図しないDIRECTになっていないか、それより前のRuleに一致していないかを確認します。変更前にルールの位置と元の値を記録してください。すべてのリクエストを同じポリシーに変更して問題を覆い隠さず、一時的な比較が終わったら想定していたモードに戻します。

SettingsのDiagnosticsは、さらに情報を収集するために利用できます。診断内容には宛先アドレス、サブスクリプション情報、接続パラメーターなどが含まれる場合があるため、共有前に確認し、個人情報を隠してください。初期設定の段階では、Proxy、TCP、UDPのうち理解していない項目をむやみに変更しないでください。明確な症状に沿って一つずつ確認します。

トラブルシューティングが終わったらHomeに戻り、利用できることを確認したサーバーを選択して、Global Routingを本来の設定に戻します。そのうえでテストと実際のアクセスをもう一度確認してください。日常的な管理、サブスクリプションの更新、Dataの見方、Settingsの詳しい説明は、Shadowrocket設定ガイドをご覧ください。このページの目的は、検証済みで復元可能な基本設定を整えることです。すべての高度な設定を一度に変更する必要はありません。

ShadowrocketのSettings画面の公式スクリーンショット。Language、Test Method、Today Widget、On Demand、Diagnostics、Proxy、TCP、UDPを表示
Settings:症状に応じてTest Method、On Demand、Diagnosticsを確認します。元の設定を記録してから、一項目ずつ変更してください。