公式マニュアル · iPhone / iPad

Shadowrocketの使い方

まず既存の接続情報を追加し、次にGlobal Routingを選択します。最後にスイッチをオンにし、実際のアクセスを確認してください。このページでは初回設定の順に手順を説明します。済んでいる手順は目次から飛ばせます。iPhoneとiPadでは、画面上の英語表記を目印にしてください。画面のレイアウトは現在のアプリ表示により異なる場合があります。

必要な情報がそろったら、入力方法を確認します。サブスクリプションURLは接続先の一覧を取得するためのもの、単一サーバーの情報は接続先を1件手動で追加するためのものです。両方を重複して登録する必要はありません。また、サブスクリプションとルール設定ファイルは別のものです。前者はサーバー情報を提供し、後者はリクエストの振り分け方法を決めます。初回は、内容を確認できる接続を1つ設定してから、複雑なルールを扱いましょう。

Home → Add Server

手順1:サーバー情報を追加するかSubscribeを読み込む

手元にある情報に合わせて、いずれかの方法で追加します。保存したら、HomeにSERVERの項目が表示されていることを確認してから、モードを選択します。

サーバー情報が1件ある場合:Add Serverに入力

Homeを開き、SERVERセクション付近のAdd Serverをタップします。編集画面でまずTypeをタップし、情報に記載されたプロトコルを選択します。選択したTypeに応じて入力項目が変わります。スクリーンショットにあるHost、Port、Password、Methodは入力項目の一例で、すべてのプロトコルで同じ内容が必要という意味ではありません。

サーバーアドレスをHostに、ポート番号をPortに入力し、認証と暗号化の項目は手元の情報に従って入力します。Hostには通常、ドメイン名またはIPアドレスを指定し、Webページのパスは追加しません。Passwordは大文字・小文字や記号もそのまま入力し、貼り付け後に前後の空白がないか確認してください。Methodはサーバー情報と一致させます。保存するために適当な値へ変更しないでください。ほかの認証項目や通信パラメータがある場合も、画面の各項目に対応させて入力します。不明な点は自分のサービス提供元に確認してください。

情報がQRコードで提供されている場合は、Scan QR Codeを使えます。読み取り後も、Type、Host、Portが元の情報と一致していることを確認してから保存してください。Import from Cloud JSONは特定形式のインポート機能です。通常のサブスクリプションURLを入力しないでください。内容を読み取れない場合は、プロトコルを何度も切り替えるのではなく、まず情報の形式を確認します。

自分のサブスクリプションURLがある場合:Subscribeを選択

同様にAdd Serverを開き、TypeをタップしてSubscribeを選び、URL欄に自分のサブスクリプションURLを省略せずに貼り付けます。URLにはクエリパラメータが含まれる場合があり、それらもURLの一部です。コピー時にパラメータを削除したり、改行で途中を切ったり、末尾の文字を落としたりしないでください。識別しやすい名前を入力して保存し、Homeに戻ってサブスクリプションが正常に取得され、サーバー項目が表示されることを確認します。

保存後にサブスクリプションのグループだけが表示され、選択可能なサーバーがない場合は、グループ内で更新が必要か、取得エラーが表示されているかを確認してください。サブスクリプションを更新するには、現在のネットワークからURLにアクセスでき、URLが有効である必要があります。アクセス情報が含まれる可能性があるため、サブスクリプションURLを通常のWebページのURLのように公開しないでください。期限切れ、認証、応答形式の問題についてはトラブルシューティングをご覧ください。

保存したら、HomeのSERVERから今回使用するサーバーを選択し、選択状態を示すマークを確認します。追加に成功しただけでは、情報がアプリに保存されたことしか分からず、サーバーに接続できるとは限りません。次に、リクエストの処理方法を選びます。その後、テストと実際のアクセスで結果を確認してください。

Shadowrocket公式のAdd Server画面。Type、Host、Port、Password、Methodとインポート項目を表示
App Store公式スクリーンショット:Add Server。項目はTypeによって異なります。手元のサーバー情報に従って入力してください。

Global Routing · Config / Proxy / Direct

手順2:Global Routingのモードを選択

Config、Proxy、Directは、それぞれルール、プロキシ経路、直接接続のどれでリクエストを処理するかを決めます。

Homeに戻り、Global Routingをタップして選択肢を確認します。ここで変わるのはリクエストの処理方法であり、インポート元やサーバーの認証情報ではありません。初回設定では、選択肢の意味を確認してから接続スイッチをオンにしてください。ページが一時的に開かないからといって、モード、サーバー、DNSを同時に変更しないでください。

Config:現在のルールに従って振り分け

Configを選択すると、リクエストは現在の設定ファイルに含まれるルールに従って処理されます。Configページを開き、ファイルが一覧にあるだけでなく、実際にどの設定が有効になっているか確認してください。該当するファイルを開き、Ruleの内容と参照先のポリシーを確認します。設定編集画面のGeneral、Rule、Hosts、URL Rewrite、HTTPS Decryptionにはそれぞれ用途があります。初回接続時に各項目を変更する必要はありません。

ルールは通常、上から順に判定され、一致した時点で対応するポリシーが使われます。以下の例は、ドメインサフィックスと最終ルールの書き方を説明するもので、利用環境に合わせた完全な設定ではありません。現在のファイルにそのまま置き換えないでください。example.comは例示用のドメインです。実際のアクセス先にプロキシを使うかどうかは、ルールと利用目的に応じて判断してください。

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

1行目のルールはexample.comとそのサブドメインに一致し、PROXYを使います。前のルールに一致しないリクエストはFINALに進み、DIRECTで処理されます。そのため、スイッチがオンでも一部のリクエストが直接接続されることがあります。ルールを変更する場合は、Add Ruleから追加するか、既存の項目を編集します。元の設定を保存し、1項目ずつ確認してください。詳しい手順は応用設定マニュアルをご覧ください。

ProxyとDirect:接続経路を確認

Proxyは、選択したプロキシ経路が使えるか一時的に確認する場合に便利ですが、実際の処理はほかの関連設定にも左右されます。Directは直接接続する経路であり、リモートのプロキシサーバーの検証には使いません。Configでは特定の宛先に接続できず、Proxyではアクセスできる場合、まず対象にどのルールが適用されたかを確認してください。プロキシ経路自体が使えない場合は、サーバー情報とテスト手順を見直します。最初から振り分けルールを追加しないでください。

選択後にHomeへ戻り、Global Routingが意図したモードになっていることを確認します。日常的にルールで振り分ける場合は、検証後にConfigへ戻し、有効な設定ファイルも再確認してください。サーバーとモードを確認できたら、接続許可の手順に進みます。

Shadowrocket公式のConfig設定編集画面。General、Rule、Hosts、URL Rewrite、HTTPS Decryption、Add Ruleを表示
App Store公式スクリーンショット:Config設定編集画面。Configを選ぶ前に、現在使うルールファイルを確認してください。

Home · Not Connected

手順3:スイッチをオンにしてシステムの許可を完了

選択中のサーバーとGlobal Routingを確認してから、Home上部の接続スイッチをオンにします。

Homeで次の3点を確認します。SERVERに選択可能な項目があること、使用するサーバーが選択されていること、Global Routingが意図したモードになっていることです。スクリーンショット上部のNot Connectedは、その時点でアプリの接続が確立していないことを示します。横のスイッチをタップして接続してください。Add Serverを開き直して情報を保存する必要はありません。

初回接続時、ShadowrocketにVPN構成の追加を許可するようシステムから求められる場合があります。これはアプリがシステムのネットワーク拡張機能を使うために必要な許可です。画面に表示されたアプリ名を確認し、システムの案内に従って許可して、デバイスで求められる認証を完了してください。許可を取り消すと、接続スイッチをオンにしても接続は有効になりません。アプリに戻って操作をやり直し、許可を完了してください。

許可したらHomeに戻り、上部の状態とスイッチがオンのままか確認します。アプリに接続済みと表示されても、ローカルの接続機能が起動したことを示すだけで、すべてのリモートサーバー、DNSリクエスト、アクセス先のWebページが検証済みという意味ではありません。リクエストをProxyとDIRECTのどちらで処理するかはルールによって決まります。接続状態と実際の利用可否は、それぞれ確認してください。

スイッチをオンにしてすぐオフになる場合は、システムの通知やアプリのエラーがないか確認してください。スイッチを短時間に何度もタップしたり、すべての設定をすぐに削除したりしないでください。まず許可が完了しているか、デバイスで別のVPN構成が使われていないか、デバイス管理による制限がないかを確認します。管理対象デバイスの制限については、該当する管理者に確認してください。既存の情報を残し、以下の手順で問題箇所を特定します。

iPadでは利用できる画面領域やレイアウトが異なる場合がありますが、Home、SERVER、Global Routingなどの表示を目印にしてください。別のデバイスに切り替えた場合は、そのデバイスの接続許可と現在の設定を個別に確認する必要があります。アプリがインストール済み、または購入済みであっても、サーバー情報や選択状態が同期済みとは限りません。

接続が維持されていることを確認してから、ブラウザで動作を確認します。検証中は現在のネットワーク環境を保ち、Wi-Fiからモバイル通信へ同時に切り替えないでください。設定変更によるものか、接続ネットワークの変化によるものか判断しにくくなります。1回確認した後、必要に応じて別のネットワーク環境も個別に試してください。

Shadowrocket公式のHome画面。上部にNot Connectedと接続スイッチ、下部にGlobal Routing、Connectivity Test、SERVER、Add Serverを表示
App Store公式スクリーンショット:Home。接続スイッチ、Global Routing、Connectivity Testをこの画面で確認できます。

Connectivity Test → 実際のアクセス → リクエスト経路

手順4:接続とルールの動作を確認

確認するのは、選択したサーバーがテストに応答するか、アクセスしたい宛先が想定した経路で動作するかの2点です。HomeでConnectivity Testを開き、選択中のサーバーの結果を確認します。結果は、現在のテスト方式に応じた確認項目を示します。すべてのWebページにアクセスできること、あらゆるプロトコルが正常であること、実際の通信速度を保証するものではありません。

テスト結果が表示されたら、ブラウザで以前アクセスしようとしたページを開きます。問題を再現できる宛先を1つ選び、一度に多くのページを開かないでください。ドメイン名を解決できたか、読み込みが始まったか、どの段階で止まったかを記録します。1回再読み込みして妥当な時間待てば十分です。何度も連続で再読み込みすると接続数が増えるだけで、原因の特定には役立ちません。

ルールによる振り分けを確認する場合は、アプリで確認できる接続記録やログを開き、宛先ドメイン、適用されたルール、使用されたポリシーを確認します。Configで対象がDIRECTになるのは、ルールが意図した結果かもしれません。システムにVPNの状態が表示されているだけで、すべての通信がプロキシ経由だと判断しないでください。Dataの通信量の変化は参考になりますが、統計が増えたことだけでは特定のルールに一致した証拠になりません。

結果に応じて次の手順を選ぶ

  1. テストも実際のアクセスも成功:現在のサーバーと設定を維持します。一時的にProxyを使っていた場合はConfigに戻し、同じ宛先で再確認してください。
  2. テストは失敗したが、一部のページにはアクセスできる:まずテスト方式と、ページが実際に使用した経路を確認します。ページにはDIRECTが適用されている場合があり、テストの宛先と実際のアクセス先が異なる場合もあります。
  3. テストは成功したが、ページが開かない:そのページのDNS、ルールのポリシー、接続記録を確認してください。サーバー情報に問題がないとすぐに判断しないでください。
  4. ネットワークを切り替えると結果が変わる:それぞれのネットワークでの状態を記録し、接続先ネットワークの制限や名前解決の違いを確認します。すべての問題をサブスクリプションの不具合と決めつけないでください。

比較する場合は、一度に変更するのは1項目だけにします。たとえばConfigを一時的にProxyへ切り替え、ほかの設定は変えずに同じページへアクセスします。結果が変われば、ルールを確認する根拠になります。テスト後は普段使うモードに戻してください。タイムアウトが続く、名前解決に失敗する、動作が遅いといった問題はトラブルシューティングで該当する症状を確認してください。基本設定の段階で高度な設定をすべて変更する必要はありません。

Settings · Test Method / On Demand / Diagnostics

手順5:問題が起きた箇所に応じてSettingsを確認

まず、インポート、テスト、許可、実際のアクセスのどこで問題が起きたかを特定します。元の設定を残し、関連する項目を一度に1つだけ変更してください。

追加後にサーバーが表示されない:まず情報の入手元を確認

Add Serverに戻り、サブスクリプションにはSubscribeを使っていることを確認します。URLを通常のサーバー情報のHost欄に入力しないでください。URLが省略されていないか、サブスクリプションが有効か、更新時に認証エラーや形式エラーが表示されていないか確認します。手動で追加した場合は、Type、Host、Port、認証項目をもう一度照合してください。保存できても、入力情報がサーバーの要件に合っているとは限りません。不足している情報は自分のサービス提供元に確認し、スクリーンショットから値を推測しないでください。

Connectivity Testがタイムアウトする:テストと接続を分けて確認

Settingsを開き、Test Methodで現在のテスト方式を確認します。方式によって確認する段階が異なるため、テスト結果をアプリでの閲覧速度と直接比較することはできません。選択中のサーバーとポートを確認し、現在のネットワークからサーバーに到達できるか調べてください。自分がすでに持っている別の接続情報と比較する場合は、サーバーだけを切り替え、モードとネットワークを変えないでください。問題が特定の項目に限られるか判断しやすくなります。

接続が維持されない・自動で切り替わる:On Demandを確認

ネットワークの状態に応じて接続が開始・停止する場合は、On Demandが有効か、どの条件が設定されているかを確認します。オンデマンド接続は条件に応じて接続を開始する機能で、速度を上げるスイッチではありません。初回のトラブルシューティングでは、元の状態を記録してから一時的にオフにし、手動で接続して、自動起動と手動操作を切り分けられます。原因が分かったら、必要な条件を元に戻してください。Today Widgetはショートカット操作に関する設定であり、サーバーの利用可否を判断する基準にはなりません。

テストは正常だがWebページが開かない:診断情報を確認

Diagnosticsやアプリで利用できるログから問題が起きた段階を確認し、DNSの名前解決、リモート接続、ルールのポリシーを区別します。特定のドメインだけで失敗する場合は、まずその宛先の記録を確認し、DNS設定をすべて変更しないでください。SettingsのProxy、TCP、UDPは接続方法に関わる別々の設定です。初回のトラブルシューティングで、名称だけを見て一括変更しないでください。変更前に用途を確認し、元の値を記録して戻せるようにします。

更新後の不具合、バッテリー消費の変化、iPad特有の問題が起きた場合は、現在のネットワーク、Global Routing、選択中のサーバー、再現手順を記録します。最初に再インストールするのではなく、必要な情報を保存して設定と許可を確認してください。元の調査に必要な情報が失われるのを防げます。アプリの更新情報とシステム要件はApp Storeのページで確認してください。スクリーンショットの見た目からアプリのバージョンを推測しないでください。

ここまでの手順で、問題が起きた箇所を特定できるはずです。インポートしても項目が作成されない、サーバーのテストに失敗する、システムの許可が完了していない、またはルール適用後のリクエストに失敗する、のいずれかを確認してください。その結論をもとにトラブルシューティングを参照し、段階ごとの確認が必要な場合はトラブル対処マニュアルへ進んでください。普段使いを始める前に、Homeの接続状態、選択中のサーバー、Configファイルが意図した状態になっていることを確認します。

Shadowrocket公式のSettings画面。Language、Test Method、Today Widget、On Demand、Diagnostics、Proxy、TCP、UDPを表示
App Store公式スクリーンショット:Settings。問題が起きた箇所に関係する設定を確認します。すべての項目を変更する必要はありません。