Shadowrocketのサブスクリプション更新方法|手動更新・起動時の自動更新・更新できないときの対処法

ShadowrocketのサブスクリプションをHomeで手動更新する方法と、アプリ起動時の自動更新設定を解説。更新できない場合は、URLや通信、応答内容、形式を順に確認します。

この記事の要点

この記事は、利用中のサービスとサブスクリプションURLがあり、Shadowrocketでサーバー一覧を更新したい方を対象としています。まずHomeで手動更新して結果を確認し、その後、アプリ起動時の更新を有効にします。失敗した場合は、URL、通信、応答内容、解析結果の順に確認し、サブスクリプションの更新と接続の問題を切り分けましょう。

サブスクリプション・アプリ・構成ファイルの更新を区別する

サブスクリプションの更新では、保存済みのURLに再度リクエストを送り、返された内容をHomeのサーバー項目として解析します。サービス提供元がサーバーのアドレス、ポート、認証情報を変更した場合は、新しいサブスクリプション情報を取得する必要があります。VPNを切断して再接続するだけでは、サブスクリプションは更新されません。

アプリの更新はApp Storeから行い、Shadowrocket本体を更新します。Configの構成ファイルにはルールやDNSなどの設定が含まれ、そのリモート更新はHomeのサーバーサブスクリプション更新とは別の操作です。確認を始める前に、どれを更新したいのか整理しましょう。

Home
サーバーのサブスクリプションと項目を確認する
Config
現在の構成ファイルとルールを確認する
App Store
クライアントアプリを入手・更新する

Homeでサブスクリプションを手動更新する

初めて追加する場合は、サービス提供元から案内されたサブスクリプションURLを使います。アカウントのログインページ、注文ページ、Webページの共有URLではありません。すでに登録済みの場合は、比較用に以前の状態を残すため、更新のたびに削除して追加し直すのは避けてください。

  1. サブスクリプションを確認する

    Homeを開き、更新するサブスクリプショングループを見つけ、自分が利用しているサービスのものか確認します。まだ追加していない場合は、Home右上の「+」から追加画面を開き、TypeでSubscribeを選択します。自分のサブスクリプションURLをURL欄に入力して保存してください。

  2. 更新前の状態を記録する

    対象グループの現在の項目数と、既知のサーバー1件の名前またはポートを記録します。完全なURL、パスワード、認証パラメーターをスクリーンショットに含めないでください。公開用の比較には必要ありません。

  3. 下に引いて更新する

    Homeに戻り、一覧を下に引いてサブスクリプションを更新し、リクエストが完了するまで待ちます。複数のサブスクリプションがある場合は、グループごとに結果を確認してください。1つのグループが成功しても、すべて成功したとは限りません。

  4. 更新結果を確認する

    エラー表示の有無、対象グループに項目が残っているか、サービス提供元が告知した変更が反映されているかを確認します。項目数が変わらなくても、更新に失敗したとは限りません。返された内容では、アドレス、ポート、認証情報だけが変更されている場合もあります。

  5. 接続を個別に確認する

    使用するサーバーを選択してから、接続とアクセスをテストします。更新成功が示すのは、サブスクリプションの取得と解析が完了したことだけです。返されたすべてのサーバーへの接続を保証するものではありません。

以下はサブスクリプションURLの構造を確認するための架空の例です。インポートせず、自分のURLの代わりに使用しないでください。実際のリンクでは、クエリパラメーターが認証に使われることがあります。コピーする際は全体を保持し、空白、改行、日本語の句読点が混入しないようにしてください。

https://example.com/sub?token=xxxx

アプリ起動時の自動更新を有効にする

手動更新が成功したら、Settings → Subscribeを開き、Update On Openを見つけて有効にします。画面の言語やアプリのバージョンによって表示や大文字・小文字が異なる場合があります。現在のサブスクリプション設定画面で「アプリ起動時に更新」に相当する項目を確認してください。

リクエストの流れから更新失敗の箇所を特定する

更新には少なくとも以下の手順があります。まずどの段階で失敗したかを特定してから、該当する設定を変更しましょう。DNS、サーバー、構成ファイルを一度に変更するより、原因を確認しやすくなります。

サブスクリプションURLを読み込む サブスクリプションのドメインを名前解決する ネットワーク接続を確立する 応答内容を取得する サーバー一覧を解析する
確認された状況優先して確認する項目次の手順
すぐに401または403が返る認証パラメーター、URLの有効性、アクセス制限現在のサブスクリプションURLとアクセス条件をサービス提供元に確認する
待機後にタイムアウトする現在のネットワーク、ドメインの名前解決、サーバーの応答URLは変更せず、利用可能な別のネットワークに切り替えて再試行する
成功応答が返るが解析できない応答がログインページ、認証ページ、または非対応の内容ではないかクライアントにインポートできるサブスクリプションURLか確認する
更新は完了したが項目に変化がないサービス提供元が実際に内容を変更したか項目数だけでなく、既知の名前、アドレス、ポートを比較する
更新は成功したが接続できない選択中のサーバー、認証情報、接続経路接続の問題を調べ、サブスクリプションの更新を繰り返さない

まとめ:取得の失敗と接続の失敗を区別する

一覧の解析に成功している場合は、選択中のサーバーと接続ログを確認します。サブスクリプションの応答を取得できていない場合は、まずURLとネットワークを確認してください。異なる段階の問題を同じ「更新失敗」として扱わないようにしましょう。

よくあるエラーと対処の順序

以下はネットワークリクエストで表示されることのある原文またはHTTPステータスの表現です。表示内容はシステム言語、サーバー、アプリの画面によって異なる場合があります。「使えない」とだけ記録せず、実際に表示されたエラー全文を残してください。

HTTP 401 Unauthorized

原因:サーバーが今回のリクエストの認証情報を受け付けていません。tokenの有効期限切れ、パラメーターの不足、古いURLのコピーなどが考えられます。

対処法:利用中のサービスのアカウントで有効なサブスクリプションURLを確認し、元のURLを完全に置き換えてから手動更新します。認証パラメーターを推測したり、自分で組み立てたりしないでください。

HTTP 403 Forbidden

原因:サーバーが今回のアクセスを拒否しています。アカウントの状態、接続元ネットワークの制限、サーバー側のアクセス方針などが考えられます。ステータスコードだけでURLの期限切れとは判断できません。

対処法:発生時刻、接続中のネットワークの種類、ステータスコードを記録し、利用中のサービス提供元に制限条件を確認します。短時間に何度も再試行しないでください。

HTTP 404 Not Found

原因:サブスクリプションのパスが存在しません。URLの途中欠落、サブスクリプション提供先の移転、誤ったパスのコピーなどがよくある原因です。

対処法:完全なURLのドメイン、パス、クエリパラメーターを確認します。アカウント画面に現在表示されているURLを使ってから更新してください。

The request timed out.

原因:制限時間内にリクエストが完了しませんでした。接続の確立、ネットワーク通信、サーバーの応答待ちのいずれかで発生する可能性があります。

対処法:まずデバイスがインターネットに接続できることを確認し、Wi-Fiとモバイル通信を一度ずつ比較します。一方のネットワークだけで失敗する場合は、そのネットワークのアクセス条件を優先して確認してください。

URLを開けるのに利用可能なサーバー項目が表示されない

ブラウザーでWebページが表示されても、何らかの応答を取得できたことしか確認できず、内容がサブスクリプションとは限りません。ログインページ、アカウント残高ページ、アクセス認証ページもHTTP 200を返す場合がありますが、サーバー一覧としては使用できません。

Shadowsocks、VMess、VLESS、Trojan、Hysteria2、WireGuardはプロトコル名であり、通常のWebページをサブスクリプションに変換するスイッチではありません。ポートは応答内容またはサービス提供元が案内する値を使用してください。サブスクリプションURLで一般的に使われるHTTPSのポートが443でも、含まれるすべてのサーバーが443を使用するとは限りません。

更新後の接続確認と問題の記録

更新後は、Homeで想定したサーバーが選択されていることを確認し、Global Routingも確認します。Proxy、Direct、Config、Sceneはそれぞれ通信の処理方法が異なり、現在の設定がアクセス確認の結果に影響します。これらはサブスクリプション更新ボタンではありません。

  1. 選択中の項目を確認:サービス提供元によって項目が削除または改名された場合は、現在も存在する項目を選び直します。以前の選択のまま判断しないでください。
  2. ルーティング設定を確認:本来の用途に合わせてGlobal Routingを確認します。Configを使用している場合は、Configで現在有効な構成ファイルを確認してください。ルールによってテスト通信が選択中のプロキシではなくDIRECTに振り分けられることがあります。
  3. 実際のアクセスを確認:接続後、普段利用していてアクセスが許可されている宛先にアクセスし、接続ログと合わせて結果を確認します。遅延テストに応答があっても、すべての通信が正常とは限りません。
  4. 必要最小限の情報を記録:更新時刻、エラーの原文、ネットワークの種類、対象グループの変更有無、接続確認の実施状況を記録します。再現しやすくするため、一度に変更する条件は1つにしてください。
App Storeで正規版を確認 →