公式ガイド · 初回設定

Shadowrocketの使い方

既存のサブスクリプションまたはサーバー情報を使って、追加、ルーティングの選択、接続、確認を順に進めます。このページではiPhone・iPadでの操作を中心に、結果を確認できる手順を紹介します。

スクリーンショットはApp Storeの公式画像です。画面や項目の確認に使用してください。入力するパラメーターの例ではありません。実際の項目の位置はアプリの画面変更により異なる場合があります。英語の画面項目名を目印にし、画像内の値をそのまま入力しないでください。

01 · Add Server:サーバーの追加とサブスクリプションの読み込み

まず手元の情報を確認し、適切な追加方法を選びます。サーバー1台分のアドレス、ポート、認証情報は手動追加に使用し、サブスクリプションURLは複数のサーバー項目の読み込みに使用します。両者は代用できません。たとえば、サブスクリプションURL全体をHostに入力することはできません。作業中は端末のネットワークが正常に使えることを確認し、接続スイッチはまだオンにせず、先にリストを整えます。

サーバー情報を手動で入力

Homeを開いてAdd Serverをタップするか、追加画面から同じ名前のページを開きます。まずTypeをタップし、手元のサーバー情報に記載されたプロトコルを選んで、項目を入力します。Shadowsocksの場合、通常はHost、Port、Password、Methodを確認します。Typeによって表示される項目は異なるため、選択したプロトコルに対応するフォームを使ってください。別のプロトコルの項目を組み合わせて代用することはできません。

Hostにサーバーアドレス、Portにポート番号を入力します。認証情報とMethodはサーバー側の設定と一致させてください。入力時は、コピーした文字列の前後の空白、ポート番号、英字の大文字・小文字を確認します。プロトコルで追加のパラメーターが必要な場合は、手元の情報に従って入力し、アドレスの見た目から推測しないでください。入力後、画面の保存操作でHomeに戻り、SERVERグループに新しい項目が表示されたことを確認します。メモとアドレスも再確認し、名前が似た別のサーバーを選ばないようにしてください。

Subscribeで既存のサブスクリプションを読み込む

サブスクリプションURLをお持ちの場合は、Add ServerのTypeでSubscribeを選び、対応するURL欄にURL全体を入力します。見分けやすいメモを追加して保存することもできます。Homeに戻り、サブスクリプションの読み込みが完了するまで待ちます。自動で読み込まれない場合は、その項目にある更新操作を使ってください。サブスクリプションに対応するサーバーリストが表示されていることを確認します。空のグループだけが表示される場合は、読み込みが完了していません。更新エラーが出た場合は内容を控え、URLが有効で現在のネットワークから読み込めることを確認してください。同じURLを何度も追加しないでください。

対応するQRコードをお持ちの場合は、Scan QR Codeを使って読み込めます。読み込み後も、Typeとパラメーターを確認してください。Import from Cloud JSONは、該当するJSONデータを読み込むための別の入口です。任意のサブスクリプションURLを読み込む汎用機能ではありません。サブスクリプションURLにはアクセス認証情報が含まれる場合があります。URL全体が写ったスクリーンショットを公開しないでください。ここまでで選択可能なサーバー項目が1つ以上あることを確認したら、次に通信のルーティングを設定します。

ShadowrocketのAdd Server画面。Type、Host、Port、Password、Methodと画面下部の読み込み項目を表示
Add Server:まずTypeを選択し、手元の情報に合わせて各項目を入力します。スクリーンショットは画面項目の確認用です。

02 · Global Routing:ルーティングを選択

サーバーがリストに表示されても、すべてのリクエストがそのサーバーを使うとは限りません。Homeに戻ってGlobal Routingを開き、現在の選択を確認します。選択肢はConfig、Proxy、Directの3つで、アプリが処理するリクエストにどのポリシーを適用するかを決めます。用途を明確にしてから選択してください。サーバーのパラメーターを変更しながらモードを何度も切り替えると、どの変更が結果に影響したか判断しにくくなります。

  • Config:現在選択されている設定に従ってリクエストを処理します。ドメインやアドレスなどの条件で通信を振り分ける場合に適しています。選択後はConfigで現在の設定も確認してください。HomeにConfigと表示されているだけでは、ルールが正しいとは限りません。
  • Proxy:アプリが処理するリクエストをプロキシ経由で処理します。トラブルの切り分けでは、サーバー接続の問題とルール選択の問題を区別するのに役立ちます。ただし、すべてのシステムリクエストが必ず同じ経路を通るわけではなく、接続先のサービスが利用できることを保証するものでもありません。
  • Direct:リクエストを直接接続で処理します。選択したサーバーのプロキシ経路を確認する場合、Directのままでは検証の目的と一致しません。

Configを使う場合は現在の設定を確認

Configページを開き、使用中の設定ファイルを確認してから内容を編集します。公式スクリーンショットにあるGeneral、Rule、Hosts、URL Rewrite、HTTPS Decryptionは、それぞれ異なる設定セクションです。初回設定ではGeneralとRuleを中心に確認します。初回接続のために他の機能をすべて有効にする必要はありません。明確な目的がないまま、すべての設定を変更する必要もありません。

Ruleのルールは通常、上から順に照合され、最初に一致したルールのポリシーが適用されます。PROXYはプロキシポリシー、DIRECTは直接接続、REJECTは拒否を意味します。Add Ruleでルールを追加する際は、照合条件とポリシーを確認してから挿入位置を確認してください。条件が広すぎるルールを上位に置くと、後続の具体的なルールが適用されないことがあります。FINALは最後に置き、それまでのルールに一致しなかったリクエストを処理します。

[Rule]
DOMAIN-SUFFIX,example.com,PROXY
FINAL,DIRECT

上記は構文の例です。example.comとそのサブドメインにPROXYを適用し、それ以外をFINALでDIRECTに振り分ける例であり、完全な設定でも実際の接続テスト先でもありません。例をそのまま既存の設定に上書きしないでください。用途に合ったルーティングと現在の設定ファイルを確認したら、Homeに戻ります。ルールキーワードの詳しい意味は用語集、機能の詳細はGlobal Routingの機能説明をご覧ください。

ShadowrocketのConfig設定編集画面。General、Rule、Hosts、URL Rewrite、HTTPS Decryption、Add Ruleを表示
Config:設定セクションとAdd Ruleの入口。Global Routingの選択はHomeから行います。

03 · Home:サーバーを選択して接続

Homeに戻り、SERVERリストから使用するサーバーを選び、選択マークが正しい項目に付いていることを確認します。サブスクリプショングループ内にはメモが似たサーバーが含まれる場合があります。選択前にアドレスやメモを照合し、リストの先頭という理由だけで選ばないでください。次にGlobal Routingを確認し、前の手順で決めた設定のままであることを確認します。サーバーの選択、ルーティングの選択、現在の設定はそれぞれ別の項目です。個別に確認してください。

画面上部にあるNot Connectedの表示付近で、接続スイッチをタップします。初回接続時にシステムからVPN構成の追加を求められる場合があります。システムの説明を確認して許可し、端末で求められる認証を完了してください。この操作は、システムにShadowrocket用のVPN構成を追加するものです。アプリ内でサービスを購入する操作ではなく、サーバー情報を補うものでもありません。その場でキャンセルした場合は、アプリに戻って接続を再度開始し、システムの案内に従って許可してください。

許可したらHomeに戻り、画面上部の状態がNot Connectedから接続済みに変わったか、スイッチがオンのままかを確認します。オンにした直後にオフになる場合は、続けて何度もタップせず、表示された状態を控えて最後の手順に進み、順番に確認してください。システム設定のVPN項目は接続状態を確認する参考になりますが、サーバーから特定の接続先にアクセスできるかどうかとは別の確認事項です。

iPadでも同じ順番で操作します。画面が広い場合、レイアウトはiPhoneのスクリーンショットと異なることがあります。Home、SERVER、Global Routingなどの名前を目印にしてください。初回はアプリを前面に表示したまま接続と確認を一度行ってから、その他の自動化設定を検討することをおすすめします。手動接続にOn Demandは必須ではありません。事前に設定している場合は、手動で切断した後に再接続が始まらないか確認してください。

しばらく使わない場合は、Homeに戻って接続スイッチをオフにし、状態が変わったことを確認します。スイッチがオンでもWebページにアクセスできない場合は、「接続済みなら必ず機能する」と決めつけないでください。サーバーの応答、実際のリクエスト、ルールの適用状況をそれぞれ確認します。各結果を照らし合わせることで、接続が意図どおりか判断できます。

ShadowrocketのHome画面。上部のNot Connectedスイッチ、Global Routing、Connectivity Test、SERVER、Add Serverを表示
Home:SERVERの項目を選び、Global Routingを確認してから、画面上部の接続スイッチをオンにします。

04 · Connectivity Test:実際のリクエストを確認

確認するときは、一度に1つの項目を検証します。端末のネットワークが正常か、サーバーが応答するか、接続先にアクセスできるか、リクエストに意図したポリシーが適用されるかを順に確認してください。まずHomeでConnectivity Testを使い、リスト内の項目のテスト結果を確認します。テスト結果は使用中の方法によって異なります。明らかな問題のある項目を見つける参考にはなりますが、通信速度の測定ではなく、1つの応答だけであらゆるアプリや接続先に問題がないと証明することもできません。

次にブラウザーを開き、利用できるとわかっている接続先にアクセスして、ページを再読み込みし、結果を確認します。すでに開いているページだけを見るのは避けてください。表示内容がキャッシュに残っている場合があります。特定のルールを確認する場合は、そのルールの条件に一致する実際の接続先を選びます。手順内のexample.comは構文の例にすぎず、サーバーの利用可否を判断する材料にはなりません。結果を再現できるよう、テスト中はサーバーとGlobal Routingを変更しないでください。

アクセス結果と適用されたポリシーを照合

Shadowrocketに戻り、先ほどアクセスした接続先について、接続ログのドメイン、時刻、適用されたポリシーを確認します。Configを使っているときにDIRECTが適用された場合、ルールの想定どおり直接接続されたことを意味します。PROXYが適用されていないからといって、接続失敗とは限りません。一方、プロキシを使う必要があるリクエストにDIRECTが適用された場合は、Ruleの順序とFINALを確認してください。同じページでも画像やスクリプトなどを別途読み込むため、ログのドメインがアドレスバーのドメインと異なることがあります。発生時刻も参考にしてください。

Dataで送受信データの値が変化するかを確認することもできます。ただし、通信量の増加はデータ通信があったことを示すだけで、特定の接続先に意図したポリシーが適用された証明にはなりません。バックグラウンドの通信でも値は増えることがあります。より確実なのは「明確なリクエストを1回実行し、対応するログを確認する」方法です。同様に、システムでVPN接続済みと表示されても、システムの接続レイヤーがその状態にあることを示すだけです。サーバー認証、DNS、接続先へのアクセスがすべて成功したことを意味するわけではありません。

テストに失敗した場合は、どの段階で失敗したかを記録してからトラブル対処に進みます。テストと実際のアクセスが正常な場合は、現在の設定を保存し、特定のテスト値を追い求めてパラメーターを何度も変更しないでください。テスト方法とツールの詳細は診断ツールの説明、接続ログと統計に関する用語は用語集をご覧ください。

05 · Settings:失敗した箇所を順に確認

トラブル対処では、一度に変更する項目を1つに絞り、変更後は同じテストを繰り返します。まず現在のサーバー、Global Routing、設定ファイル、エラーメッセージを記録し、以下の順に確認してください。問題の原因を切り分け、変更しても改善しない場合に元へ戻しやすくなります。最初にすべての設定を削除しないでください。

  1. まず端末のネットワークを確認します。Shadowrocketを切断し、現在のWi-Fiまたはモバイル通信で通常のアクセスができることを確認してください。ネットワークへのログイン認証が必要な場合は、先に認証を完了します。基本のネットワークが使えない場合は、サーバーのパスワードを変更するのではなく、ネットワーク接続を先に確認してください。
  2. 次にリストと選択項目を確認します。Homeに戻り、実際に選択されている項目を確認してください。サブスクリプションの更新が成功しても、使用したいサーバーが自動で選択されるとは限りません。リストが空の場合はSubscribeに戻り、更新エラー、URLの有効性、読み込み結果を確認します。
  3. プロトコルと認証パラメーターを確認します。該当する項目の編集画面を開き、Type、Host、Port、認証情報を1つずつ確認してください。プロトコルによっては追加のパラメーターも必要です。手元のサーバー情報と照合します。サブスクリプションで管理している項目は、次回更新時に設定が上書きされる場合があります。情報の不備を一時的な手動編集で覆い隠さないでください。
  4. サーバーの問題とルールの問題を切り分けます。Configで接続できない場合は、目的が明確なときに限り、一時的にProxyへ切り替えて同じ接続先を再テストできます。結果が変わった場合はConfigに戻り、適用されたポリシー、ルールの順序、FINALを確認してください。テスト後は元のルーティングに戻します。どちらの設定でも失敗する場合は、サーバーまたは基本の接続を引き続き確認してください。ルールだけが原因とは限りません。
  5. システムの許可とその他の接続を確認します。スイッチがオンのままにならない場合は、VPN構成の追加を許可したか、端末上の他のVPN接続や管理上の制限が影響していないか確認します。用途がわからないシステム構成をむやみに削除しないでください。管理対象端末の制限については、該当する管理者に確認してください。

さらに情報が必要な場合はDiagnosticsを使用

Settingsを開き、Test MethodとDiagnosticsを確認します。前者はテスト方法に影響し、後者は問題の詳細な確認に使用します。方法が異なるテストの数値を、同じ指標として直接比較しないでください。Proxy、TCP、UDPなどの設定にもそれぞれ用途があります。初回のトラブル対処では値を変更せず、一度に複数の項目を切り替えないでください。

ドメインに関するエラーが発生した場合は、アドレスを名前解決できるか、接続を確立できるかを分けて確認し、Diagnosticsの詳細な結果と照らし合わせます。出所が不明なDNS設定を試しに入力しないでください。特定の接続先だけ失敗し、ほかは正常な場合は、その接続先の名前解決、適用されたポリシー、エラーメッセージを確認して原因を絞ります。すべてのサブスクリプションをすぐに読み込み直す必要はありません。

記録には操作の順序、エラーメッセージ、選択したルーティング、テスト結果を残します。スクリーンショットやログを共有する前に、サブスクリプションURL全体、パスワード、認証情報、その他の個人情報を削除してください。接続が復旧しない場合はShadowrocketに接続できないときの確認項目をご覧ください。アプリの入手、購入、購入済み項目の復元で問題が起きている場合はApp Storeガイドを確認してください。接続トラブルの手順と混同しないようにします。

ShadowrocketのSettings画面。Language、Test Method、Today Widget、On Demand、Diagnostics、Proxy、TCP、UDPを表示
Settings:失敗した箇所に応じてTest MethodとDiagnosticsを確認し、複数の設定を同時に変更しないでください。