Shadowrocketの複数サブスクリプション管理|グループ分け・並べ替え・重複サーバーの整理

複数のサブスクリプションを使っている場合に、備考で登録元を見分ける方法、サーバーの並べ替え、重複項目の整理、削除前にバックアップすべき内容を解説します。

この記事の概要

この記事では、自分で契約したサービスとサブスクリプションがあることを前提に、「登録元の識別、グループごとの更新、順序の整理、重複の確認、削除前のバックアップ」の順でHomeの一覧を整理します。サブスクリプションURL、サーバー項目、Configのルールによる振り分けを区別し、同じ名前のサーバーを誤って削除したり、一覧の並び順を自動切り替えの設定と取り違えたりしないようにしましょう。

1. サブスクリプション、サーバー、Configの違い

Shadowrocketのサブスクリプションは、サーバー設定を取得するための情報源です。1つのサブスクリプションから複数のサーバー項目が返されることがあり、2つのサブスクリプションに名前は同じでも設定が異なる項目が含まれる場合もあります。複数のサブスクリプションを整理するときは、まず登録元を把握し、その後で項目数を確認してください。一覧に表示された名前だけで重複かどうかを判断しないようにしましょう。

Homeではサーバーを確認して接続先を選び、Configでは設定ファイルとルールを管理します。Homeからサブスクリプションを削除しても、Configにあるサーバー名やポリシーへの参照まで削除されるわけではありません。反対に、Configを切り替えても、登録済みのサブスクリプションURLは置き換わりません。

Home
サブスクリプションの登録元、サーバー項目、現在の選択を確認する
Config
ルールやポリシーから参照されているサーバー名を確認する
Settings → Subscribe
サブスクリプションの更新設定を確認する

この記事でいうグループ分けとは、サブスクリプションごとにサーバーを識別することです。速度を自動測定したり、自動で切り替えたりするポリシーグループを作ることではありません。一覧の順序、現在選択中のサーバー、ルールで最終的に使われるポリシーは、それぞれ分けて確認する必要があります。

2. 登録済みサブスクリプションに登録元を記し、1つずつ更新する

それぞれのサブスクリプションに、用途と登録元が分かる名前を付けます。たとえば「個人用-普段使いA」「外出用-予備B」のように記載します。備考にはサブスクリプションURL全体、パスワード、アカウント情報を含めないでください。名前は識別しやすくするためのもので、プロトコル、ポート、接続の優先順位は変わりません。

  1. 現在の状態を記録する

    Homeを開き、登録済みサブスクリプションの名前、各グループの項目数、現在選択中のサーバーを記録します。名前を変更するためだけに既存のサブスクリプションを再登録しないでください。同じ登録元が重複して追加されるおそれがあります。

  2. URLを確認する

    対象のサブスクリプションの編集画面を開き、URLが手元にある元の記録と一致するか確認します。例の https://example.com/sub?token=xxxx はURLの形式を示すもので、利用できるサブスクリプションではありません。

  3. 備考を入力する

    サブスクリプションの編集画面でRemarksに短い識別名を入力し、保存します。既存のサブスクリプションを追加する場合は、Home → 右上の「+」→ Type → Subscribeの順に進み、URLとRemarksを入力します。

  4. グループごとに更新する

    対象のサブスクリプションに対応する更新操作を使い、毎回1つずつ処理します。Homeで下にスワイプして複数のサブスクリプションが同時に更新される場合は、更新後に各グループの結果を個別に確認してください。1つのグループが成功しても、すべて成功したとは限りません。

  5. 変更内容を確認する

    更新前後の項目数、名前、現在の選択を見比べます。更新後に項目が減った場合は、まず登録元から返された内容と更新結果を確認してください。すぐに何度も再登録して補おうとしないでください。

サブスクリプションURLのクエリパラメーターは、認証情報として使われる場合があります。ドメインとパスが同じでも、tokenが異なるURLを同一のサブスクリプションと判断することはできません。確認は自分のデバイス上でURL全体を見比べ、問題を第三者に説明するときは認証パラメーターを隠してください。

3. 登録元ごとの順序を決めてから、サーバーを並べ替える

複数のサブスクリプションを整理する際は、2段階に分けると効率的です。最初に登録元と用途で分類し、次に各グループ内のサーバーを整理します。まず更新を済ませてから並べ替えれば、更新による項目の追加・削除や名前の変更で、確認済みの順序が崩れるのを防げます。

遅延が最も小さい項目が、あらゆる用途で最適とは限りません。遅延テストとWebページの読み込みや継続的なダウンロードでは測定対象が異なり、結果は使用中のWi-Fiやモバイル回線、サーバーの負荷にも左右されます。この記事では実測ランキングを掲載していません。整理の際は、同じ条件で自分が測定した記録を参考にしてください。

4. 重複サーバーの整理:名前だけでなく設定を比較する

重複項目には、同じサブスクリプションを重複して登録したケースと、異なるサブスクリプションから似たサーバーが返されるケースがあります。前者はまず重複した登録元を整理し、後者は接続設定を確認してください。名前や地域が同じ、あるいは同じIPアドレスに名前解決されるという理由だけでは、互いに置き換えられる項目だとは判断できません。

確認項目具体例判断と対応
サブスクリプションの登録元URL全体が一致し、2回登録されているバックアップしてから、不要な登録元を削除するか検討する
Typeと接続先同じ名前の項目で、一方はTrojan、もう一方はVLESSを使用プロトコルが異なるため、名前だけで統合しない
AddressとPort同じAddressで、ポートが443と8443に分かれているポートが異なるため、接続先は別
認証情報AddressとPortは同じだが、UUIDまたはPasswordが異なる認証設定が異なるため、同等の項目として扱えない
トランスポートとTLS接続先は同じだが、トランスポート方式、Host、Path、SNIが異なるこれらの違いが接続の可否を左右する場合がある

まとめ:まず登録元の重複を解消し、次に各項目の設定を確認する

同じURLを重複して登録したと確認できた場合は、備考で登録元が分かり、動作確認済みのものを1つ残します。設定に違いがある同名サーバーは、名前だけを根拠に一括削除せず、ひとまず残してください。

接続設定が完全に同じ2つの項目でも、それぞれがどのサブスクリプションに属するかを確認してください。サブスクリプション内のサーバーを1つ削除しても、配信元の内容は変わりません。次回の更新で同じ項目が再び表示されることがあります。そのため、ローカルでの削除は現在の一覧を整理する方法であり、サブスクリプションの内容を恒久的に変更するものではありません。

サーバー名はConfig内のポリシーから参照されている場合もあります。名前を一括変更または削除する前に、使用中の設定を開き、該当する名前が明示的に参照されていないか確認してください。DOMAIN-SUFFIX、GEOIP、IP-CIDRのマッチ条件だけでなく、ルール末尾のポリシーの指定先と、FINALの参照先も確認しましょう。

5. 整理後の確認:一覧の問題とGlobal Routingを切り分ける

サーバーを選択しても期待どおりに接続できない場合、並べ替えやサブスクリプションが原因とは限りません。まずHomeで現在のサーバーを確認し、次にGlobal Routingを確認してください。以下では、よく使われる3つのモードで何を確認できるかを説明します。サブスクリプションを整理するために、設定を何度も切り替える必要はありません。

Config

推奨

現在の設定にあるルールとポリシーに従って接続を処理します。ルールによって直接接続、プロキシ、その他のポリシーが指定される場合があるため、Homeで選択中のサーバーだけから各リクエストの接続先を判断することはできません。

適している場面:整理後、普段の設定で実際にどう動作するかを確認する

Proxy

Shadowrocketが処理する接続をプロキシ経由にします。ルールによる振り分けが問題の原因かを比較する際に使えますが、現在のプロキシ接続先も確認が必要です。

適している場面:短時間の切り分けで、サーバー自体の問題とルール選択の影響を比較する

Direct

接続を直接接続として処理します。この状態でWebページが開いても、選択したプロキシサーバーが使えることの証明にはなりません。

適している場面:現在のネットワークで直接接続できるかを比較する

検証中は同じネットワークを使い、接続先が明確なサーバーを1つ選択して接続スイッチをオンにし、Connectivity Testを実行します。その後、実際に使いたい接続先にアクセスして動作を確認してください。一時的にモードを切り替えた場合は、確認後にGlobal Routingを元の設定に戻し、診断用の状態を普段の設定として残さないようにします。

6. サブスクリプションを削除する前にバックアップし、削除後に参照を確認する

削除は整理作業の最後に行います。有効なサブスクリプションURLを再取得できることを確認し、ローカルで変更した内容を記録してください。サーバー名だけのスクリーンショットでは接続設定全体を復元できず、サブスクリプションURLのバックアップにもなりません。認証情報を含む記録は、自分が管理する安全な場所に保管してください。

Homeで対象のサブスクリプションを探し、その項目にある削除操作を使います。一覧で左スワイプのメニューが使える場合は、対象のサブスクリプション行を左にスワイプしてDeleteを表示します。削除対象がサブスクリプションの登録元であり、内部のサーバー項目ではないことを確かめてから、確認画面の指示に従ってください。削除範囲が想定と異なる場合は、いったんキャンセルします。何度も操作して試すのは避けてください。

ローカルのサブスクリプションを削除しても、サービス提供元との契約が解約されるわけではなく、URLに付与された認証権限が自動で取り消されるわけでもありません。サブスクリプションURLが漏えいした場合は、自分のサービスアカウントで、対応している方法を使って認証情報をリセットしてください。Homeから項目を削除しただけでは、古いURLは無効になりません。

削除したサーバーが更新後にまた表示されるのはなぜですか?

配信元のサブスクリプションが、その項目を引き続き返しています。削除したのがサーバー1件なのか、サブスクリプション全体なのかを確認してください。重複した登録元だけを整理したい場合は、バックアップ後に不要なサブスクリプションを削除します。更新のたびにサーバーを1件ずつ削除し直す必要はありません。

名前が同じサブスクリプションが2つあります。片方を削除してもいいですか?

それぞれの編集画面を開いてURL全体を見比べ、グループ内のプロトコル、アドレス、ポート、認証情報も確認します。名前が同じなのは表示情報が一致しているだけで、削除の根拠にはなりません。

1つのサブスクリプションだけ更新がタイムアウトします。再インストールが必要ですか?

まず該当するURLがまだ有効かを個別に確認し、次にSettings → Subscribe → Update via Proxyを確認します。プロキシ経由で更新する場合は、動作確認済みのサーバーに接続してから再試行し、結果を確かめてください。1つのサブスクリプションの失敗を理由に、一覧全体を削除しないでください。

誤って削除した場合、元の備考や順序を復元できますか?

バックアップしたURLを使ってSubscribeから再追加すると、配信元の項目を再取得できます。ローカルの備考、手動で変更した設定、並び順はそのまま復元されるとは限りません。削除前の記録をもとに設定し直し、Config内の参照も再確認してください。

App Storeで正規アプリを確認