Shadowrocketの追加方法は、ボタン名だけで選ぶのではなく、手元の情報がサーバーのサブスクリプション、個別サーバーの共有情報、リモート設定ファイルのどれにあたるかを先に確認することが大切です。利用するサービスとサブスクリプションをすでにお持ちの方向けに、4つの取り込み方法の選び方、保存後の確認場所、更新に失敗した際にURL・応答形式・接続設定のどこに問題があるかを切り分ける方法を解説します。当サイトではサーバーやサブスクリプションを提供・販売・推奨していません。
1. まず内容を確認:サブスクリプションURLと設定ファイルは別物
サーバーのサブスクリプションは、通常、アドレスやポート、認証情報を含むサーバー情報を取得するためのものです。リモート設定ファイルは、ルールやDNS、ポリシーなどの設定を読み込むために使います。どちらもHTTPSのURLで提供される場合がありますが、https://で始まるというだけで同じ場所に入力できるとは限りません。提供元の説明を確認し、Shadowrocketで利用できる形式かどうかを確かめてください。
サーバーや接続状態を確認する主な場所はHome、設定ファイルを管理する場所はConfigです。サーバー一覧に項目が表示されても、Configのルールが更新されたとは限りません。Configのダウンロードが成功しても、利用可能なサーバーが取得できたことにはなりません。「取り込みは成功したのにサーバーがない」「サーバーはあるのにルールどおり振り分けられない」という混同を防ぐため、それぞれ別々に確認しましょう。
| 手元にある情報 | 主な入口 | 取り込み後の確認場所 |
|---|---|---|
| サーバーのサブスクリプションURL | Home → + → Type → Subscribe | Homeのサブスクリプショングループとサーバー一覧 |
| リモート設定ファイルのURL | Config → + → Download from URL;必要に応じてSubscribeを設定 | Config内のファイル、内容、選択状態 |
| 個別サーバーのパラメーター | Home → + → Add Serverの編集画面 | Homeに追加されたサーバー |
| QRコードまたはクリップボードのテキスト | HomeのQRコード読み取り入口、またはクリップボードの認識通知 | 認識された内容の種類を確認してから、該当する一覧を確認 |
2. Subscribe:Configのサブスクリプションとサーバーのサブスクリプションを区別
ConfigのSubscribeは、リモート設定ファイルの購読と更新に使います。任意のサーバーサブスクリプションURLを入力する場所ではありません。リモート設定を初めて追加する場合は、Configの追加メニューからDownload from URLを選び、設定ファイルの完全なURLを入力します。ダウンロード後は内容を確認してから使用するかどうかを選択してください。リモート設定を継続して更新する場合は、そのファイルのSubscribe設定と取得元も確認しましょう。
提供元からサーバーのサブスクリプションURLを受け取った場合は、Home → 右上の + → Type → Subscribeを選びます。ここで選択するSubscribeはAdd Serverの編集画面にある項目で、Configからリモート設定を取得する用途とは異なります。URLを入力して保存したらHomeに戻り、サブスクリプショングループが作成され、サーバー項目を取得できているか確認してください。追加されたルールを探すためにConfigを確認する必要はありません。
-
用途を確認
提供元の説明を読んで、URLがサーバー一覧を返すものか、設定一式を返すものかを確認します。URLの末尾だけで判断しないでください。
-
入口を選択
サーバーのサブスクリプションはHome → + → Type → Subscribe、リモート設定はConfig → + → Download from URLから追加します。
-
URLを貼り付け
URL全体を貼り付けます。クエリパラメーターや大文字・小文字をそのまま保ち、前後の空白や改行、チャットアプリが付けた句読点がないことを確認してください。
-
保存して確認
保存後、該当する一覧を確認します。サーバーのサブスクリプションはHomeで項目を確認し、設定ファイルはConfigで内容と選択中の項目を確認してください。
-
個別に更新
最初の切り分けでは対象のサブスクリプションだけを更新し、エラーメッセージを記録します。同じ取得元の項目を複数同時に追加すると、結果との対応が分かりにくくなります。
更新前にローカルの変更を保存リモート設定を更新すると、リモートから取得した内容が置き換わる場合があります。サーバーのサブスクリプション更新でも、関連する一覧が再作成されることがあります。重要なルールや手動での変更は事前にバックアップし、更新後もローカル編集が必ず維持されるとは考えないでください。
3. Add Server:パラメーターの手入力とサブスクリプションの追加
Home右上の+をタップすると、Add Serverの編集画面が開きます。Typeの選択によって、以降の入力欄の意味が変わります。Subscribeを選ぶとサブスクリプション情報を入力し、Shadowsocks、VMess、VLESS、Trojan、Hysteria2、WireGuardなどを選ぶと、それぞれのプロトコルのサーバーパラメーターを入力します。実際にお持ちの設定に合わせて選び、入力欄を通すために適当なプロトコルを選ばないでください。
手入力は、サーバー情報が1件だけの場合、項目を確認したい場合、または共有テキストを認識できない場合に適しています。サブスクリプション更新の代わりにはなりません。サーバーを1台だけ登録しても、提供元が今後一覧を変更した際に、そのローカル項目が自動でサブスクリプション更新されるわけではありません。
- アドレスとポート:サーバーアドレスにウェブページのパスを含めないでください。元の設定でポートが
443と指定されている場合は、443を入力します。ポートは接続先の一部にすぎず、それだけで使用プロトコルやTLSの有効化を判断することはできません。 - 認証情報:プロトコルに応じて、パスワード、UUID、鍵などの項目を入力します。提供元が同じパラメーターを明示していない限り、サブスクリプションURLのtokenをサーバーのパスワードとして使わないでください。
- TLSとトランスポート:TLS、SNI、Host、Pathなどの項目は、元の設定どおりに一つずつ入力します。サーバーアドレス、TLSのサービス名、トランスポートのHostは異なる場合があります。同じ値に統一しないでください。
- メモ:取得元や用途を区別できる名前を付けます。名前は管理用であり、誤ったプロトコル、認証情報、ポートを修正するものではありません。
保存後はまずHomeに項目があることを確認してから、接続をテストしてください。編集画面で保存できたことが示すのは、ローカルに項目が作成されたということだけで、サーバー側の認証成功を保証するものではありません。遅延テストの結果だけで、すべてのサイトやルールが正常だと判断することもできません。
4. QRコードとクリップボード:認識された内容を確認してから取り込む
QRコードとクリップボードは、情報をShadowrocketに渡す方法を変えるだけで、情報そのものの種類を変えるものではありません。QRコードには個別サーバーの共有テキストが含まれている場合も、HTTPSのURLだけが含まれている場合もあります。クリップボードにも、サブスクリプションURL、個別サーバーの共有情報、サービス提供元のウェブページURLなどが入っていることがあります。「QRコードを読み取れた」ことより、認識した内容の種類を確認することが重要です。
手元の情報に合わせて入力方法を選ぶ
QRコード
- Home上部のQRコード読み取り入口を使います。初回はカメラへのアクセスを許可してください。
- QRコード全体が読み取り範囲に入るようにし、反射、端の欠け、過度な拡大を避けます。
- 認識された内容がサーバー情報かURLかを確認してから、保存に進みます。
- 同じデバイス上にあるQRコードは、提供元が用意しているテキストを使う方法を優先してください。写真アプリから必ず読み取れるとは限りません。
クリップボード
- URLまたは共有テキスト全体だけをコピーし、説明文を一緒にコピーしないでください。
- Shadowrocketに戻ります。クリップボードからの取り込み通知が表示されたら、内容を確認してから確定します。
- システムからペーストの許可を求められた場合は、現在の操作に応じて許可してください。
- 認識通知が表示されない場合は、該当する編集画面を開き、URLまたはパラメーター欄に手動で貼り付けます。
QRコードとクリップボードは入力方法にすぎません。保存された項目をHomeまたはConfigで必ず確認してください。
QRコードを読み取った後にサーバーが1件だけ追加された場合、QRコードにはサブスクリプション全体ではなく個別の共有情報が含まれていた可能性があります。再度読み取ってもサブスクリプショングループには変わりません。クリップボードの通知が出なくても、何度もコピーし直す必要はありません。まず手動で貼り付けてテキスト全体があることを確認し、形式とシステムのペースト許可を確認してください。
サブスクリプションURLは認証情報として管理QRコード、クリップボード、URLのクエリパラメーターにはアクセス認証情報が含まれる場合があります。問題の報告に使う情報ではtoken、パスワード、鍵をすべて隠してください。サブスクリプションURLをそのまま公開スクリーンショットや公開テキストに載せないでください。
5. URLの形式と取り込み失敗時の確認
サブスクリプションURLに決まったパス形式はありません。アクセス認証情報がクエリパラメーターに含まれる場合もあれば、パスに識別子が含まれる場合もあります。.confの拡張子の有無も、判断基準の一つにすぎません。以下の2つのURLは構造を説明するための例で、取り込みには使用できない架空の値です。
https://example.com/sub?token=xxxx
https://example.com/sub/xxxx?format=shadowrocket
例にあるformat=shadowrocketを独自に追加しないでください。このパラメーターは、元のインターフェースが対応している場合にだけ意味があります。コピー時には、&がHTMLのエスケープ文字列として残っていないか、チャットアプリによってパラメーターが途中で切れていないか、末尾に日本語の句点が余計に付いていないかも確認してください。パーセントエンコードされた値は全体をそのまま保ち、勝手にデコードして貼り付けないでください。
| 確認できた現象 | まず確認する点 | 次に行うこと |
|---|---|---|
| 保存できない、または認識結果が表示されない | コピーした内容に説明文、空白、欠落が含まれていないか | 完全なURLだけを貼り付けます。個別サーバーの共有テキストには対応する入口を使います。 |
| リクエストがタイムアウトする | 現在のネットワークからサブスクリプションURLにアクセスできるか | 現在の設定を残したまま、利用可能な別のネットワークに切り替えて対象のサブスクリプションだけを再試行します。 |
| HTTP 401または403が返る | tokenが有効か、アクセスが制限されていないか | 利用中のサービス提供元のアカウントページで利用権限を確認します。URL全体は公開しないでください。 |
| HTTP 404が返る | パス全体をコピーできているか、元のURLが変更されていないか | 元の提供元からURLをコピーし直し、すべてのパラメーターを保持します。 |
| リクエストは成功するが、解析エラーが表示される | 応答がログインページ、エラーページ、または非対応形式ではないか | Shadowrocketで利用できる形式か確認し、アカウントページをサブスクリプションとして扱っていないか確認します。 |
| 更新後に一覧が空になる | リモートから空の内容が返されていないか、フィルター条件が設定されていないか | 該当するサブスクリプションのフィルター設定と元の提供元の状態を確認します。ほかの利用可能な項目は、まず削除しないでください。 |
ブラウザーでURLを開けても、Shadowrocketがサーバー情報を解析できるとは限りません。表示内容がアカウントのログインページ、アクセス確認ページ、エラーの説明文である可能性があります。HTTPリクエストが成功したかどうかと、内容の形式が正しいかどうかは別々に確認する必要があります。問題を切り分ける際は、エラーメッセージと発生した段階を記録すれば十分です。認証情報をすべて含む応答を他の人に送る必要はありません。
6. 取り込み後の確認:更新、接続、ルールを分けて確認
取り込み後は、「一覧が正しいか」「サーバーに接続できるか」「ルールが適用されているか」の順に確認します。まずHomeで取り込んだサーバーを選び、接続を有効にして、システムの案内に従いVPN構成の追加を許可します。その後、自分にアクセス権のある接続先でテストしてください。サーバーに接続できない場合は、先にプロトコルと認証情報を確認し、同時にルールまで変更しないでください。
Global Routing → Config
推奨現在選択中の設定ファイルに従って通信を処理します。実際の接続先はルール、ポリシー、選択中のサーバーによって決まり、サブスクリプション名だけでは決まりません。
適したケース:明確なルールが設定済みで、日常の振り分けを確認したい場合。
Global Routing → Proxy
ルールに基づく通常の振り分けを使わず、プロキシ経由で通信を処理します。ルールに関する問題の切り分けには使えますが、接続先のサービスが利用可能であることを保証するものではありません。
適したケース:サーバー接続の問題とルール照合の問題を一時的に切り分けたい場合。
Global Routing → Direct
通信を直接接続で処理します。この状態でウェブサイトにアクセスできても、取り込んだサーバーが正常に動作している証明にはなりません。
適したケース:問題を切り分ける際の比較対象として、現在のネットワークの直接接続を確認したい場合。
Global RoutingのSceneはシーンに応じた選択に使うもので、5つ目の取り込み方法ではありません。Settings → On Demandはオンデマンド接続の動作を管理する機能で、サーバーを取得するものではありません。切り分け中に接続状態が自動で変わらないよう、現在のOn Demand設定を先に確認してください。接続できると確認する前に、自動接続の条件も同時に変更しないでください。
- サブスクリプションを確認:Homeで対象のサブスクリプションを更新し、追加・削除された項目や名前の変更が元の提供内容と一致しているか確認します。同じURLを再度取り込まなくても、更新できます。
- 設定を確認:Configで現在使用中のファイルを確認します。ファイルが複数ある場合、ダウンロードが完了してもそのファイルが選択されているとは限りません。
- ルールを確認:
DOMAIN-SUFFIXは指定したドメインとそのサブドメインに一致します。IP-CIDRはアドレス範囲に一致し、GEOIPはIPアドレスの地理的位置に基づいて一致します。FINALは、それまでに一致しなかった通信に適用する最終ポリシーです。ルールの確認をサブスクリプション更新で代用しないでください。 - 重複を確認:同じURLをQRコードとクリップボードの両方から取り込むと、項目が重複する場合があります。取得元を確認し、必要なサブスクリプションを残して不要な項目を整理してください。異なるサブスクリプションに同じサーバー名があっても、接続パラメーターまで同じとは限りません。
Shadowrocketはクローズドソースの商用アプリです。主な利用デバイスはiPhoneとiPadで、入手先はApp Storeのみです。システム要件やその他の互換性情報は、App Storeの掲載内容をご確認ください。アプリの買い切り購入に回線プランは含まれません。アプリの購入と、すでにお持ちのサブスクリプションの利用は別々の手続きです。