Shadowrocketのサブスクリプション更新方法|手動更新・起動時の自動更新とエラー対処

Shadowrocketのサブスクリプションを手動またはアプリ起動時に更新する方法と、更新できない場合の原因を解説。URL、ネットワーク、応答形式の確認手順も紹介します。

この記事の要点

利用中のサービスとサブスクリプションがある場合は、まずHomeで手動更新し、Settings → SubscribeでUpdate on Openの設定を確認します。更新できないときは、URLの認証情報、リクエスト時のネットワーク、応答内容を順に確認してください。更新できても接続できない場合は、接続パラメータやルーティング設定を確認します。両方の問題を混同しないようにしましょう。

サブスクリプション更新の範囲:リストの取得と接続は別

Shadowrocketのサブスクリプション更新では、保存済みのサブスクリプションURLを使ってサーバーにリクエストを送り、応答からサーバー情報を読み込みます。手動更新は、初回追加後の内容確認、サービス提供元から項目変更の案内があった場合、特定の更新失敗の確認に便利です。アプリ起動時の自動更新は、普段の利用時にリストの変更を確認するための設定です。

更新リクエストが成功しても、取得した内容を処理できたことがわかるだけです。すべてのサーバーに接続できることや、アカウントの残りデータ量、サーバー証明書、接続先ポートが正常であることは保証されません。反対に、保存済みの項目で接続できても、サブスクリプションURLが有効とは限りません。サブスクリプションの認証と接続情報は別々に管理されている場合があります。

手動更新:グループを確認してから結果を確認

初めて追加するときは、サービス提供元から案内されたサブスクリプションURL全体をコピーします。アカウントのログインページや決済ページ、個別サーバーの共有リンクとは異なります。URL末尾のクエリパラメータには認証情報が含まれることがあるため、長いからといって削除しないでください。以下はURLの構造を示す架空の例で、接続には使えません。

https://example.com/sub?token=xxxx
  1. 取得元を確認

    利用中のサービス提供元のアカウントページからサブスクリプションURLをコピーします。スキーム、パス、クエリパラメータを残し、先頭や末尾に空白、改行、チャットの句読点が混入していないか確認してください。

  2. サブスクリプションを保存

    初回追加時はHome → 右上の「+」→ Type → Subscribeの順に進み、URL欄にリンク全体を貼り付けて保存します。すでに追加済みの場合は既存のグループを使い、重複して追加する必要はありません。

  3. 下に引いて更新

    Homeに戻り、リストを下に引いて更新を開始し、リクエストが完了するまで待ちます。確認中に何度も連続して更新すると、複数回の結果が混在するため避けてください。

  4. 内容を確認

    対象のサブスクリプショングループを開き、項目名や件数、想定される変更内容を確認します。リストに変化がない場合は、まずサーバー側で新しい内容が公開されたかを確認し、そのうえで追加のトラブルシューティングが必要か判断してください。

1回の更新で複数の保存済みサブスクリプションが対象になることがあります。あるグループの更新に失敗しても、ほかのグループも失敗したとは限りません。グループ名と表示されたメッセージを記録してください。リストの件数が変わらなくても、サーバー側で名前や件数を変えずにアドレス、ポート、接続パラメータだけを変更している場合があります。

更新を確認するために、何度も削除して追加し直すのは避けてください。更新前後の比較ができなくなり、同じ名前のグループが重複することもあります。既存の項目を残したまま、新しいサブスクリプションURLが正しく読み込まれることを確認してから、古いグループを整理しましょう。

アプリ起動時の自動更新:設定場所と動作条件

Settings → Subscribeを開き、Update on Openを有効にします。この設定はアプリを開いたときにサブスクリプション更新を開始するもので、一定間隔でバックグラウンド更新を繰り返す設定ではありません。有効にした後も、実際のリクエスト結果を確認してください。スイッチがオンであるだけでは、リストが更新済みとは判断できません。

自動更新に失敗して後から手動更新すると成功する場合は、2回のリクエスト時のネットワーク状況を比べてください。たとえばアプリを開いた時点でWi-Fiのログインが完了していなかったり、プロキシ接続が確立していなかったりすると、最初と後のリクエストで結果が異なることがあります。まずこの違いを再現してから設定を変更すると、複数のスイッチを同時に変えるより原因を特定しやすくなります。

更新できないとき:認証・ネットワーク・応答内容を切り分ける

表示されたメッセージ、発生時刻、接続中のネットワークを記録してください。以下は原因を絞り込む際に参考になるメッセージやHTTPステータスです。実際の表示言語や詳細は異なる場合があり、HTTPステータスがサーバー応答や診断記録にしか表示されないこともあります。一般的な読み込みエラーだけで、サブスクリプションの期限切れと決めつけないでください。

Failed to load subscription

原因と対処:これは読み込み失敗を示す一般的なメッセージで、認証、ネットワーク、形式のどれが原因かは特定できません。まずURL全体を確認し、タイムアウト、HTTPステータス、解析エラーなどが併せて表示されていないか調べてください。

The request timed out.

原因と対処:制限時間内にリクエストが完了しなかった状態です。現在のネットワーク、接続経路、サーバーの応答が関係している可能性があります。まず利用可能な別のネットワークで再試行し、必要に応じてUpdate via Proxyを確認してください。

401 Unauthorized

原因と対処:サーバーが今回のリクエストを認証しませんでした。利用中のサービス提供元のアカウントページから現在のサブスクリプションURLをコピーし直し、tokenの欠落、期限切れ、リセットがないか確認してください。

403 Forbidden

原因と対処:サーバーがアクセスを拒否しました。アカウントの権限やアクセス制限が関係している可能性があります。利用中のサービス提供元に制限条件を確認してください。何度も更新しても権限の制限は解除されません。

404 Not Found

原因と対処:リクエスト先に該当するリソースが見つかりませんでした。URLが途中で切れていないか、パスが変更されていないか確認し、元のアカウントページからサブスクリプションURLを取得し直してください。

HTTPステータスは原因を絞り込む手がかりになりますが、アカウントの確認に代わるものではありません。無効なURLでもエラーステータスが返る場合があれば、ステータスが200の案内ページが返る場合もあります。後者はHTTPリクエスト自体が成功していても、サブスクリプションとして解析できる内容とは限りません。

Update via Proxy:既存の接続が使える場合に確認

Settings → Subscribe → Update via Proxyでは、サブスクリプションリクエストの接続経路を変更できます。無効なtokenの修復やサブスクリプション形式の変換をする設定ではありません。現在のネットワークからサブスクリプションのドメインに直接アクセスできず、保存済みの項目でプロキシ接続できる場合に、比較テストとして利用してください。

状況 次の操作 結果の見方
現在のネットワークから直接更新できる 動作確認済みの設定を維持し、自動更新を確認する トラブルシューティングのためにリクエスト経路を変更する必要はありません
直接リクエストはタイムアウトするが、既存のプロキシは利用できる 接続を確立してからUpdate via Proxyを有効にし、手動更新する この経路でのみ成功する場合は、サブスクリプションのドメインに接続できるかを重点的に確認する
どちらの経路でも401または403が返る 繰り返し更新せず、認証とアクセス制限を確認する 経路を変えても、サーバーからのアクセス許可が不要になるわけではありません
利用できる接続項目がない まず別の利用可能なネットワークで試し、利用中のサービス提供元に問い合わせる まだ確立していないプロキシ接続を使って、最初の取得を行うことはできません

ポイント:一度に変更する条件は1つだけ

同じサブスクリプションURLを使い、まずネットワークを比較してからUpdate via Proxyを比較します。その都度、表示されたメッセージを記録してください。URL、ネットワーク、構成を同時に変えると、どの変更で解決したのか特定できません。

Home → Global Routingで現在選択されている項目も確認してください。Directは直接接続の設定で、Proxy、Config、Sceneにもそれぞれ異なる用途があります。接続スイッチをオンにしても、すべてのリクエストがプロキシ経由になるとは限りません。実際に選択されているルーティング設定、構成、利用可能な接続を踏まえて確認し、サブスクリプション更新のためにConfig全体をむやみに書き換えないでください。

形式と接続の確認:更新後に調べる項目

サブスクリプションURLは、Shadowrocketが認識できる内容を返す必要があります。サービス提供元のログインページをURLとして使ったり、ブラウザーのセッションがないとアクセスできない一時ページをコピーしたりすると、ブラウザーに文字が表示されても、アプリがサーバー情報を解析できるとは限りません。エンコードを推測したり内容を編集したりせず、Shadowrocketで利用できるサブスクリプション形式をサービス提供元に確認してください。

リストを正常に取得できても接続テストに失敗する場合は、アカウントの状態、サーバーへの到達性、認証情報、TLS、トランスポートのパラメータを確認してください。同じ内容を繰り返し更新しても、通常は結果は変わりません。Config内のDOMAIN-SUFFIX、GEOIP、IP-CIDR、FINALはルールの照合に使うもので、サーバーから返されたサブスクリプション形式の誤りは修正できません。

よくある質問:自動更新、リストの変更、失敗時の対処

アプリを開いてもリストに変化がありません。更新されていないのでしょうか?

Settings → SubscribeでUpdate on Openを確認し、Homeから手動更新も試してください。サーバー側の内容に変更がなければ、更新に成功していてもリストは変わらないことがあります。リクエストのメッセージと、サービス提供元が案内した変更内容を合わせて確認しましょう。

更新に失敗したら、元のサブスクリプションを先に削除すべきですか?

まず削除せず、元のグループとエラー内容を記録してください。現在のURLとアカウントの認証を確認してから、ネットワークと形式を調べます。削除しても期限切れの認証は修復できず、保存済みで接続できていた項目との比較もできなくなる可能性があります。

ブラウザーでURLを開けるのに、更新に失敗するのはなぜですか?

ブラウザーに表示されるのがサブスクリプションの内容か、ログインページや認証ページかを確認してください。ブラウザーにはログイン済みのセッションがあり、アプリからのリクエストとは条件が異なる場合があります。Webページを表示できたことと、サブスクリプションを正常に解析できたことは別です。

On Demandを有効にすると、サブスクリプションも自動更新されますか?

On Demandではサブスクリプションの更新は設定できません。Settings → On Demandはオンデマンド接続の設定です。アプリ起動時の更新はSettings → Subscribe → Update on Openで設定し、手動更新はHomeでリストを下に引いて行います。

更新後に項目がいくつか減りました。再インストールが必要ですか?

まず利用中のサービス提供元に、返されたリストから項目が削除または改名されていないか確認し、正しいグループを表示しているかも確認してください。再インストールしてもサーバー側で削除された内容は戻りません。必要に応じて個人用の構成情報を保存してから対応しましょう。

App Storeで公式アプリを確認 →