Official Manual / Getting Started
Shadowrocketの使い方
既存のサブスクリプションを追加し、Global Routingを選択してから接続・動作確認を行います。
iPhoneとiPadで初めて設定する方向けの手順です。まず接続状態を確認し、その後でルールやほかの設定を調整します。各手順で確認できる結果を明確にします。
操作の流れ
Home → Add Server → Global Routing → 接続スイッチ → Connectivity Test
入力内容を確認してから、通信の経路を確認します。サーバー項目、設定ファイル、接続状態は、それぞれ別の確認対象です。
Step 01 / Add Server · Subscribe
サーバーの追加、または既存のサブスクリプションの読み込み
この手順の完了後、HomeのSERVERグループに選択可能なサーバー項目が表示されます。
Shadowrocketを開いてHomeに進み、SERVERグループのAdd Serverを探します。画面上部の追加ボタンからも開けます。Add Serverでは、Hostを入力する前にTypeを確認してください。Typeによって必要な項目が異なり、サブスクリプションの読み込みと手動追加もここで分かれます。読み込み中は接続スイッチをオフにしておくと、「情報を読み込めるか」と「サーバーに接続できるか」を分けて確認できます。
サブスクリプションURLがある場合:Subscribeを使用
TypeでSubscribeを選び、自分が利用するサブスクリプションURLをURL欄に貼り付け、見分けやすい名前を設定します。名前は端末内で識別するためのもので、URLの内容には影響しません。保存前に、URLの前後に空白や改行、チャットアプリが付けた説明文が混ざっていないか確認してください。案内ページのURLをサブスクリプションURLとして入力しないでください。サブスクリプションURLには個人用の認証情報が含まれる場合があります。パラメーターを含めてそのまま入力し、公開しないようにしてください。
保存後、Homeに戻り、サブスクリプションの取得が終わるまで待ってから該当するグループを開き、サーバー一覧を確認します。サブスクリプション名が表示されても、サーバーが正しく読み込まれたとは限りません。グループ内に実際の項目があることを確認してください。一覧が空の場合は、サブスクリプションURLにアクセスできるか、リンクが有効か、クライアントで認識できるデータが返されているかを確認します。再取得する場合は、そのサブスクリプションの操作メニューから更新します。画面構成によって場所が異なるため、現在のアプリ表示を確認してください。
サーバー情報がある場合:項目を順に入力
個別のサーバー情報がある場合は、Add Serverで提供された情報に合うTypeを選び、HostとPortを確認します。Hostには通常、サーバーのドメイン名またはIPアドレスを入力します。Webページのパスを追加しないでください。Portはサーバー設定と一致させます。スクリーンショットのPasswordとMethodは、特定のTypeで使う項目です。別のTypeを選ぶと認証や通信方式の項目も変わります。表示されていない項目を、名前欄やパスワード欄に入力しないでください。
Password、UUID、TLS、通信方式などは、自分のサーバー情報にある内容を項目ごとに入力してください。ほかの項目から無作為にコピーしないでください。対応するQRコードが提供されている場合は、Add ServerでScan QR Codeを使い、システムの案内に従って必要なアクセスを許可します。Import from Cloud JSONは対応する形式の設定データ用で、汎用的なサブスクリプション追加機能ではありません。通常のサブスクリプションURLがある場合は、Subscribeから追加してください。
保存後、Homeに戻って項目が表示されていることを確認し、今回使用するものを選択します。サブスクリプショングループには複数の項目が含まれることがありますが、このチュートリアルでは後の確認に使う1つを選べば十分です。この段階で複数のサーバー設定を何度も変更しないでください。不明な項目があれば、足りない情報を記録してから用語解説を確認します。選択後、Global Routingを確認し、通信にどの情報を使うかを決めます。
Step 02 / Global Routing · Config
Global Routingの3つのモードを選択
サーバー情報で決まるのは「どこに接続するか」、Global Routingとルールで決まるのは「通信をどう処理するか」です。
Homeに戻り、Global Routingをタップします。Config、Proxy、Directの違いを確認してください。選択後にHomeへ戻り、行に選択したモードが表示されていることを確認します。モードを切り替えてもサーバー情報が補われたり、無効な認証情報が修正されたりすることはありません。まず最初の手順を済ませてから切り替えてください。
Config:現在の設定ファイルに従って処理
Configでは、現在有効な設定ファイルに基づいてルールを照合します。Configを開き、実際に選択されているファイルを確認してください。ファイルを開くとGeneral、Ruleなどのセクションが表示されます。Rule内の個別ルールは通常、最終的なフォールバックルールより前に配置します。照合結果に応じて、通信にはPROXY、DIRECT、または定義済みの別のポリシーが適用されます。ポリシーグループを参照する設定の場合は、グループ内の選択も確認してください。Homeでサーバーを選んだだけでは、すべてのポリシーの接続先が正しいとは限りません。
以下はルールの順序を理解するための設定構文例です。完全な設定ファイルではなく、サーバー情報も含みません。例では、example.comに一致するドメインへの通信にPROXYを使い、それ以外の一致しない通信はFINAL,DIRECTで処理します。実際にテストする前に、自分の設定ファイルを確認してください。この説明用の例で上書きしないでください。
[Rule]
DOMAIN-SUFFIX,example.com,PROXY
IP-CIDR,192.168.0.0/16,DIRECT
FINAL,DIRECT
サブスクリプション一覧とルールファイルは別々に確認してください。Subscribeで取得できるのは通常サーバー項目であり、目的に合ったルールが有効になっているとは限りません。初めて使う場合は、現在の設定ファイルが内容を把握している提供元のものか確認し、テスト対象にどのルールが適用されるかを調べます。よく知らないルールを一度に大量に読み込むと、アクセスに失敗した際、原因がサーバーかルールの照合結果かを判断しにくくなります。
ProxyとDirect:確認する目的を区別
Proxyは、プロキシ処理の対象となる通信をプロキシ経由にし、選択中のサーバーが利用できるかを確認する際に使えます。ただし、システムで処理される通信の範囲やほかの設定も結果に影響するため、すべての通信が必ず同じ経路を通るわけではありません。Directは直接接続するため、プロキシサーバーの動作確認には適しません。2つのモードを比較する場合は、同じ接続先とネットワークを使い、ほかの条件を変えないでください。
日常的にルールで通信を振り分ける場合は、Configの内容を確認して次の手順に進みます。ルールの影響を切り分けたい場合は、一時的にProxyに切り替えて比較し、確認後に元のモードへ戻してください。初回接続時に設定ファイルのDNS、ルール、ポリシーグループをすべて調整する必要はありません。詳しく確認する場合はSettingsと設定の詳細ガイドをご覧ください。
Step 03 / Home · Connection
接続スイッチをオンにして、システムの許可を完了
システムのダイアログを操作する前に、Homeでサーバーとモードを確認します。
Homeに戻り、簡単な確認を行います。SERVERでテストするサーバーが選択され、Global Routingに前の手順で決めたモードが表示されていることを確認します。Configを使う場合は、現在の設定ファイルも確認してください。公式スクリーンショットの上部にあるNot Connectedは未接続を示します。下のサーバー一覧に項目が表示されていても、接続済みとは限りません。
Home上部の接続スイッチをオンにします。初回接続時は、ShadowrocketによるVPN構成の追加を許可するようシステムから求められる場合があります。これは、関連するネットワーク通信をクライアントで処理するために必要なシステムの許可です。ダイアログに表示されたアプリを確認してから案内に従い、デバイスの認証を完了してください。認証情報はシステム画面に入力し、Add ServerのPassword欄には入力しないでください。
許可が完了したらShadowrocketに戻り、画面上部の接続状態が変わったか確認します。ダイアログをキャンセルすると、スイッチがオフに戻る場合があります。その場合はサブスクリプションURLを変更せず、まず許可の手続きをやり直してください。ダイアログが表示されなくても、必ずしも異常ではありません。デバイスに該当する構成がすでにある可能性があります。現在の状態とシステムのVPN設定を確認し、ダイアログを表示させるために構成を何度も削除しないでください。
テストの前に、同種のネットワーク接続を制御している別の構成がデバイス上で有効になっていないか確認します。構成の切り替えが現在の接続に影響する場合は、まず現状を記録し、システム設定で実際に有効な項目を確認してください。会社や学校が管理するデバイスでは、VPN構成に追加の制限がある場合があります。デバイスの管理ルールに従ってください。システムの制限をサーバーのパスワード間違いとして扱わないでください。
接続状態が変わったら、アプリ内の選択はそのままにして次の手順で確認します。接続スイッチがオンになっていれば、端末側の接続処理が進んだことは分かりますが、サーバー側の認証、DNSによる名前解決、すべての接続先へのアクセスが正常だとは限りません。クライアントの状態と実際の通信をあわせて確認し、設定が想定どおりか判断してください。
Step 04 / Connectivity Test · Requests
テスト結果と実際のアクセスを確認
「テストの完了」「接続の確立」「接続先の利用可否」は分けて判断します。
HomeでConnectivity Testを実行し、現在のテストが終わるまで待ってから、各項目の結果を確認します。結果の意味はテスト方法によって異なります。接続の確立を中心に確認するものもあれば、指定した接続先への通信を確認するものもあります。明らかに到達できない項目を見つける手掛かりにはなりますが、アプリのすべての通信を確認できるわけではありません。数値だけで実際の使用感を判断しないでください。
続いてブラウザーを開き、利用できると分かっているページにアクセスして、ページ本体と必要なリソースが読み込まれるか確認します。プロキシ経由の通信を確認する場合は、現在の設定で実際にPROXYが適用される接続先を選んでください。Configを使っていて、たまたまDIRECTに一致するページが開けても、プロキシサーバーの動作確認にはなりません。テスト対象とルールの想定が一致していることが重要です。
比較する場合は、接続先とデバイスのネットワークを変えず、接続前後またはモード切り替え前後の状態を記録します。1回のテストで変更する条件は1つにしてください。たとえばConfigからProxyに切り替えて、同じ通信を再度試します。サーバー、ネットワーク、DNS、ルールを同時に変更すると、改善してもどの変更が影響したのか分からなくなります。
ブラウザーのキャッシュ、既存の長時間接続、アプリ固有のネットワーク動作が確認結果に影響する場合があります。ページを再読み込みし、必要であればいったん閉じてから開き直してください。古いページが表示されたままでも、新しい通信が成功したとは限りません。あるWebページが読み込めても、すべてのアプリやプロトコルが同じように処理されるわけではありません。最終確認は、対象アプリで実際に使う機能を試してください。
Connectivity Testの結果が出てもページにアクセスできない場合は、Global Routing、適用されたポリシー、DNS、接続先を確認します。テストも実際のアクセスも失敗する場合は、サーバー情報と現在のネットワークを優先して確認してください。スイッチを何度も切り替えるより、どの段階で失敗したかを記録することが大切です。テスト方法の違いはテストとPingの設定ガイド、用語は用語解説をご覧ください。
Step 05 / Settings · Diagnostics
失敗した段階に応じて設定を確認
まず問題が発生している箇所を特定し、設定を変更する必要があるか判断します。
読み込み後にサーバー項目が表示されない
最初の手順に戻り、SubscribeのURLが完全か、説明文を誤って貼り付けていないか、サブスクリプションから有効な内容が返されているかを確認します。サブスクリプションの取得とサーバーへの接続は別の通信です。一覧を更新できなくても、保存済みのサーバーがすべて使えないとは限りません。逆に、一覧を更新できても、各項目に接続できるとは限りません。URLの有効性を確認するときは、利用中のサービスの情報提供元に問い合わせてください。認証情報を含むURL全体を公開しないでください。
項目はあるがConnectivity Testに失敗する
手動で追加した項目は、Type、Host、Port、認証情報を1つずつ確認し、TLSや通信方式の設定も調べます。サブスクリプションの項目は、まず一度更新し、現在も有効な利用期間内か確認してください。内容が分からない項目を直接書き換えないでください。SettingsでTest Methodを確認する際は、現在の選択を記録します。テスト方法によって結果が異なる場合があります。方法を変更しても確認の仕方が変わるだけで、サーバー設定が自動的に修正されるわけではありません。
スイッチがオンのままにならない、または実際のアクセスが想定と異なる
スイッチがすぐにオフへ戻る場合は、システムでVPN構成を許可したか、デバイスでその構成を有効にできるかを確認します。スイッチがオンのままで一部の接続先にアクセスできない場合は、2つ目の手順に戻り、Global Routingと現在のルールを確認してください。Direct経由のアクセス結果で、プロキシサーバーの正常性を判断することはできません。特定の接続先だけで問題が起きる場合は、接続先サービス側の制限や障害も確認してください。すべての設定をすぐにリセットしないでください。
特定のネットワーク条件で接続状態が自動的に変わる場合は、SettingsのOn Demandを確認します。条件に応じて接続を開始する機能です。初回の手動テストでは、現在の条件が確認を妨げないか把握してください。接続を改善する万能の設定ではありません。Proxy、TCP、UDPなども、初回のトラブルシューティングでまとめて変更しないでください。変更前に元の値を記録し、同じ接続先で再テストします。改善しなければ設定を戻してください。
Diagnosticsを使う場合は必要な状況情報を残す
さらに原因を調べる場合は、SettingsでDiagnosticsの診断項目を確認し、失敗した時刻や接続先と照らし合わせて結果を読みます。ネットワーク、Global Routing、選択中の項目の種類、表示されたエラーメッセージを記録してください。ログにドメイン名、アドレス、認証情報、サブスクリプションの認証情報が含まれる場合は、共有する前に機密情報を取り除いてください。問い合わせのためにサブスクリプションURL全体や未確認の設定ファイル全体を送らないでください。
基本的な動作確認が終わったら、日常的に使うGlobal Routingのモードに戻し、実際のアクセスをもう一度確認します。その後、DNS、On Demand、ログ、同期を調整する場合も、「元の値を記録し、1項目だけ変更して、結果を確認する」方法で進めてください。設定の詳しい説明は設定の詳細、現象から問題を探す場合はよくある質問をご覧ください。このページでは初回の基本操作を扱いました。最初からすべての機能を有効にする必要はありません。
次に読む:まず問題を確認し、必要な設定を詳しく調べる