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

Shadowrocketで複数のサブスクリプションを読み込んだら、Homeの一覧でグループ分けや表示順の変更、無効な購読の削除ができます。重複ノードを整理して選択時の混乱を防ぐ方法を解説します。

この記事の概要

この記事では、利用するサービスとサブスクリプションをすでにお持ちの方を対象に、「提供元の確認、グループ名の設定、表示順の整理、グループごとの更新、削除と再確認」の順に説明します。サブスクリプションのリンク、そこから生成されたノード、現在の接続先を区別することが重要です。同じ名前のノードを誤って削除したり、更新が一度タイムアウトしただけで購読が無効になったと判断したりしないようにしましょう。

1. アプリと管理画面を確認する

ShadowrocketはAppleプラットフォーム向けのクローズドソースの商用アプリで、入手先はApp Storeのみです。購入前に製品ページでデベロッパーのShadow Launch Technology LimitedとアプリID 932747118を確認できます。アプリ本体は買い切りで、アプリの購入と接続サービスの契約は別です。この記事では主にiPhone / iPadでの操作を説明します。システム要件とデバイスの互換性はApp Storeの製品ページをご確認ください。

複数のサブスクリプションの整理は、主にHome(ホーム)で行います。Config(設定ファイル)はルールの設定、Settings(設定)はアプリの動作設定に使用します。ノード一覧が長いからといって、先にConfig内の設定を削除しないでください。サブスクリプションの提供元の整理とルーティングルールの変更は、別々の操作です。

3つの画面
Home / Config / Settings:一覧・設定ファイル・アプリ設定を個別に管理
2つの階層
サブスクリプションの提供元とノード項目:削除前にそれぞれ確認
4つのモード
Global Routing:Proxy / Direct / Config / Scene

要点:提供元を確認してから一覧を整理

似た名前のグループが2つある場合は、まずサブスクリプションの編集情報を開いてURL(リンク)を確認してください。表示名だけを見て削除するのは避けましょう。同じリンクを重複して読み込んだ場合と、名前が同じ別のノードがある場合では、整理方法が異なります。

2. 読み込み前に提供元を記録し、重複登録を防ぐ

サブスクリプションURLはノード情報を取得するためのリンクで、通常はアクセス認証情報も含まれています。名前は見分けるためのラベルであり、購読内容を決めるものではありません。異なる名前のグループが同じURLを使っている場合もあれば、同じドメインのリンクでもパスやパラメータが違えば内容が異なる場合もあります。

  1. Homeで既存のサブスクリプショングループを探し、編集情報を開いてURLを確認します。現在の提供元を手元に保存している購読情報と照合し、同じリンクを再登録しないようにしましょう。
  2. 新しく追加する必要がある場合は、Home右上の追加ボタンを使います。Type(タイプ)でSubscribe(サブスクリプション)を選び、自分のURLを入力し、Remarks(備考)に識別しやすい名前を付けて保存してください。
  3. 初回の読み込み後は、新しいグループだけを確認します。ノード項目が表示されていることを確認してください。エラーメッセージや空の一覧、判別できないテキストが表示されている場合は正常な読み込みではありません。
  4. 提供元ごとに、用途、識別名、最後に手動で確認した結果を記録しておきます。記録にアクセス用トークンをすべて書き写す必要はありません。また、リンクを公開ページに掲載しないでください。

以下は提供元を記録する形式の例であり、利用できるサービス情報ではありません。2つのカードに記載されたURLは架空の値です。実際には、ご自身がすでにお持ちの情報を入力してください。名前は提供元や用途が分かるものにし、「永久に使える」のように確認できない判断は記載しないでください。

メインの提供元の記録

Remarks(備考)
01-メインの提供元
Type(タイプ)
Subscribe(サブスクリプション)
URL(架空の値)
https://example.com/sub?token=xxxx
確認項目
提供元の名前、グループ内の項目、更新結果

完全なURLには認証情報が含まれる場合があります。ご自身のデバイス上だけで確認してください。

予備の提供元の記録

Remarks(備考)
02-予備の提供元
Type(タイプ)
Subscribe(サブスクリプション)
URL(架空の値)
https://example.com/backup?token=xxxx
確認項目
別の提供元か、重複して読み込まれているか

ドメインが同じでも内容が同じとは限りません。パスとパラメータも確認してください。

3. サブスクリプションごとにグループ化し、表示順を整理する

Homeのサブスクリプショングループはノードの提供元を識別するためのもので、Configのポリシーグループや自動フェイルオーバーの設定とは異なります。整理するときは、まず提供元ごとの区分を保ち、そのうえで各グループ内の順序を検討してください。複数の提供元のノードをすべて同じ名前にすると、更新時のトラブルを後から調べにくくなります。

  1. まずグループの備考を統一します。「01-メインの提供元」「02-予備の提供元」のような短い名前を使います。備考を変更したらHomeに戻り、ノードではなく意図したグループを変更したことを確認してください。
  2. 次にグループの位置を調整します。現在の画面に編集またはドラッグによる並べ替え機能がある場合は、その画面を開いて使用頻度に合わせてグループを移動し、編集を完了します。機能がない場合は、識別しやすいように提供元の名前に接頭辞を付けます。順序を試すために削除と再読み込みを繰り返さないでください。
  3. 最後にグループ内の順序を調整します。現在の画面で利用できる並べ替えメニューから、名前やテスト結果などの項目を選択します。メニューの場所と選択肢は実際の画面で確認してください。名前の接頭辞は識別を補助するだけで、自動的なアルファベット順を保証するものではありません。
  4. 並べ替え後に現在の選択を確認します。以前使用していたノードを見つけ、選択状態を示すマークを確認してください。一覧の先頭項目が変わっても、アプリの接続先が切り替わったとは限りません。

4. グループごとに更新し、リンクの無効化とネットワーク障害を見分ける

サブスクリプションを更新すると、提供元から内容を再取得し、その結果が該当するノード一覧に反映されます。既存のノード名を変更するだけの操作でも、Config内のルールを更新する操作でもありません。トラブルを調べるときは一度に1つのグループだけを更新し、どのサブスクリプションで問題が発生したかを特定できるようにします。

提供元を確認 内容を取得 項目を解析 グループを更新 選択状態を確認
  1. 対象グループで現在表示されているノード数と、使用中のノード名を記録します。パスワードなどの機密情報は記録しないでください。
  2. Homeで対象のサブスクリプションを更新し、完了するまで待ちます。グループごとの更新と一括更新の両方が表示される場合、最初のトラブルシューティングではグループごとの更新を選び、複数の提供元の結果が混ざらないようにします。
  3. 結果を確認します。項目が減ったか、以前の名前が置き換わったか、選択中の項目が残っているかを確認してください。名前が変わったのは購読内容の更新による可能性があり、すぐに読み込みエラーと判断する必要はありません。
  4. タイムアウトが発生した場合は、まずデバイスのネットワーク接続を確認し、次にURLが完全かどうかを確認します。そのリンクへのアクセスに現在のプロキシが必要な場合は、プロキシが使えることを確認してから再試行してください。復旧作業中で利用できない同じ提供元に、自身の更新を依存させないようにしましょう。
  5. 認証エラーや解析できない内容が表示された場合は、すでにお持ちのサービス情報でリンクの状態と形式を確認してください。トラブルシューティングの代わりに同じURLを何度も追加しないでください。重複したグループが増えるだけです。

更新後にノードが1つ消えた場合、提供元がその項目を返さなくなった可能性があります。グループ全体に利用可能な項目がない場合は、内容が空なのか、解析に失敗したのか、リクエストに失敗したのかを切り分ける必要があります。ノード数が減っただけでは、サブスクリプションの期限切れとは判断できません。購読から生成されたノードの名前やパラメータをローカルで変更していた場合、更新後に再確認してください。提供元の内容で変更が上書きされることがあります。

5. 無効なサブスクリプションと重複ノードを削除する手順

削除前に対象を確認してください。サブスクリプション項目は提供元を表し、ノード項目は個々の接続に必要な設定を表します。提供元を削除すると、その提供元が管理するノードも一緒に削除される場合があります。削除の範囲は確認メッセージをよく読んでください。グループ内のノードだけを削除しても、次回の更新時に再び表示されることがあります。

確認できた状況まず確認すること対処方法
同じURLを2回読み込んだ2つの提供元の完全なURLが一致するか一方のグループを残し、現在の接続先を確認してからもう一方のサブスクリプションを削除する
別々のグループに同じ名前のノードがある提供元、プロトコル、サーバー、ポート名前だけで重複と判断せず、接続パラメータを確認する
削除しても更新後に再び表示されるそのノードが引き続きサブスクリプションから返されているか提供元ごとに整理するか、使う頻度の低いグループを折りたたんで一覧の煩雑さを抑える
サブスクリプションの認証に繰り返し失敗するリンクの認証情報と、手元のサービス情報に記載された状態利用しないことを確認してから提供元を削除する。一度のタイムアウトだけを判断材料にしない

重複かどうかを判断する:名前の一致は手がかりにすぎない

ノードを比較するときは、少なくともプロトコル、サーバーアドレス、ポート、認証パラメータを確認してください。TLSを使用する接続ではServer Name(サーバー名)などの項目が関係する場合があります。異なるトランスポート方式を使う接続では、トランスポートの設定も比較してください。比較のためであっても、こうした機密情報をチャットの記録や公開スクリーンショットにコピーしないでください。

削除を実行する:接続先を切り替えてから範囲を確認する

  1. 削除する提供元に現在使用中のノードが含まれている場合は、先に検証済みの別の項目を選択してください。または、接続を手動で切断してから整理することもできます。
  2. 対象のサブスクリプション項目を削除します。一覧をスワイプして削除する場合は、サブスクリプションの提供元とグループ内のノードのどちらを操作しているかを確認してから、確認メッセージを読んでください。
  3. Homeに戻り、残っているグループを確認して、必要な提供元を誤って削除していないことを確かめます。残すサブスクリプションを再度更新し、同じURLのコピーがほかに残っていないか確認してください。
  4. 誤って削除した場合は、手元に保存してある有効なサブスクリプションURLを使って再読み込みします。再読み込みしても、以前のローカルでの並べ替えや手動の備考が復元されるとは限りません。必要な情報は事前に記録しておきましょう。

6. 一覧の整理後にルーティングと自動接続を確認する

グループを整理した後は、「一覧が正常であること」と「通信が意図どおりに処理されること」を分けて確認します。Global RoutingのProxy(プロキシ)とDirect(直接接続)は異なる処理方法です。Config(設定ファイル)では選択した設定のルールに従って処理され、Scene(シーン)はシーンごとの動作設定に使用されます。モード名はノードグループ名とは異なり、一覧の表示順を変えてもルーティング設定の代わりにはなりません。

7. 複数のサブスクリプション管理に関するよくある質問

グループ名が同じものが2つあります。片方をすぐ削除してもいいですか?

それぞれのサブスクリプションの編集情報を開いてURLを確認し、固有のノードが含まれていないか調べてください。名前が同じだけでは重複とは限りません。同じリンクを重複して読み込んだことを確認してから、一方を残してもう一方を削除します。

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

そのノードがサブスクリプションの内容に含まれているためです。ローカルで削除しても提供元のデータは変わりません。まず所属するグループを確認してください。サブスクリプションを引き続き使う場合は、グループを折りたたんで一覧の煩雑さを抑えられます。提供元全体が不要になった場合にのみ、該当するサブスクリプションを削除してください。

遅延順に並べたのに、次回は順序が変わっています。どうすればいいですか?

テストを再実行したか、並べ替え方法を切り替えたか、サブスクリプションを更新したかを確認してください。テスト結果はネットワーク環境に応じて変わり、提供元が返す順序も変わる場合があります。固定の備考で提供元を識別し、一度の並べ替え結果を恒久的な優先順位と見なさないでください。

更新がタイムアウトしました。サブスクリプションを削除して追加し直すべきですか?

既存のグループは残したまま、デバイスのネットワーク、URLの完全性、現在の接続経路を確認し、その提供元だけを再試行してください。削除して追加し直す場合も同じリンクへのアクセスが必要です。リンクに接続できない問題や認証の失効は解決できず、ローカルでの整理結果を失う可能性もあります。

App Storeで正規アプリを確認