利用中のサービスとサブスクリプションがある場合は、まずHomeで手動更新し、Settings → SubscribeでUpdate on Openの設定を確認します。更新できないときは、URLの認証情報、リクエスト時のネットワーク、応答内容を順に確認してください。更新できても接続できない場合は、接続パラメータやルーティング設定を確認します。両方の問題を混同しないようにしましょう。
サブスクリプション更新の範囲:リストの取得と接続は別
Shadowrocketのサブスクリプション更新では、保存済みのサブスクリプションURLを使ってサーバーにリクエストを送り、応答からサーバー情報を読み込みます。手動更新は、初回追加後の内容確認、サービス提供元から項目変更の案内があった場合、特定の更新失敗の確認に便利です。アプリ起動時の自動更新は、普段の利用時にリストの変更を確認するための設定です。
更新リクエストが成功しても、取得した内容を処理できたことがわかるだけです。すべてのサーバーに接続できることや、アカウントの残りデータ量、サーバー証明書、接続先ポートが正常であることは保証されません。反対に、保存済みの項目で接続できても、サブスクリプションURLが有効とは限りません。サブスクリプションの認証と接続情報は別々に管理されている場合があります。
- Home:サブスクリプションのグループ、サーバー一覧、選択中の項目を確認し、手動更新を実行します。
- Settings → Subscribe:Update on OpenやUpdate via Proxyなど、サブスクリプションの更新設定を確認します。
- Config:構成ファイルとルールを管理します。サーバーのサブスクリプション更新と、リモート構成ファイルの更新は別の操作です。
- 接続スイッチ:接続状態を切り替えるもので、サブスクリプション更新の成功を示すものではありません。
手動更新:グループを確認してから結果を確認
初めて追加するときは、サービス提供元から案内されたサブスクリプションURL全体をコピーします。アカウントのログインページや決済ページ、個別サーバーの共有リンクとは異なります。URL末尾のクエリパラメータには認証情報が含まれることがあるため、長いからといって削除しないでください。以下はURLの構造を示す架空の例で、接続には使えません。
https://example.com/sub?token=xxxx
-
取得元を確認
利用中のサービス提供元のアカウントページからサブスクリプションURLをコピーします。スキーム、パス、クエリパラメータを残し、先頭や末尾に空白、改行、チャットの句読点が混入していないか確認してください。
-
サブスクリプションを保存
初回追加時はHome → 右上の「+」→ Type → Subscribeの順に進み、URL欄にリンク全体を貼り付けて保存します。すでに追加済みの場合は既存のグループを使い、重複して追加する必要はありません。
-
下に引いて更新
Homeに戻り、リストを下に引いて更新を開始し、リクエストが完了するまで待ちます。確認中に何度も連続して更新すると、複数回の結果が混在するため避けてください。
-
内容を確認
対象のサブスクリプショングループを開き、項目名や件数、想定される変更内容を確認します。リストに変化がない場合は、まずサーバー側で新しい内容が公開されたかを確認し、そのうえで追加のトラブルシューティングが必要か判断してください。
1回の更新で複数の保存済みサブスクリプションが対象になることがあります。あるグループの更新に失敗しても、ほかのグループも失敗したとは限りません。グループ名と表示されたメッセージを記録してください。リストの件数が変わらなくても、サーバー側で名前や件数を変えずにアドレス、ポート、接続パラメータだけを変更している場合があります。
更新を確認するために、何度も削除して追加し直すのは避けてください。更新前後の比較ができなくなり、同じ名前のグループが重複することもあります。既存の項目を残したまま、新しいサブスクリプションURLが正しく読み込まれることを確認してから、古いグループを整理しましょう。
アプリ起動時の自動更新:設定場所と動作条件
Settings → Subscribeを開き、Update on Openを有効にします。この設定はアプリを開いたときにサブスクリプション更新を開始するもので、一定間隔でバックグラウンド更新を繰り返す設定ではありません。有効にした後も、実際のリクエスト結果を確認してください。スイッチがオンであるだけでは、リストが更新済みとは判断できません。
- まず手動で確認:Homeでの手動更新が成功してから自動更新を有効にすると、無効なURLを自動更新の不具合と誤認しにくくなります。
- 次に動作を確認:次回アプリを開いたときに、リクエストが完了するまで待ち、対象グループの内容とエラーメッセージの有無を確認します。
- 手動更新も利用:サービス提供元からリスト変更の案内が届いたら、次にアプリを開くのを待たずに手動更新できます。
- 接続の動作とは別:Settings → On Demandはオンデマンド接続を管理する設定で、サブスクリプション更新のスケジュールには関係しません。アプリを開いても、プロキシ接続が確立されるとは限りません。
自動更新に失敗して後から手動更新すると成功する場合は、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リクエスト自体が成功していても、サブスクリプションとして解析できる内容とは限りません。
- URLが無効:アカウントページに表示されるURLとアプリに保存したURLが一致するか確認します。認証情報がリセットされている場合は、通常、古いURLを新しいものに置き換える必要があります。
- ネットワークの制限:現在のWi-FiでWebログインが必要か確認します。iPhoneではモバイル通信に切り替えて比較できますが、通信料に注意してください。
- 応答形式が不適合:ログインページ、Web認証ページ、JSON形式のエラー説明、空の応答ではなく、クライアントが読み込めるサブスクリプション情報が返されているか確認してください。
- サーバーの一時的な障害:発生時刻とエラー内容を記録し、時間をおいて再試行してから、利用中のサービス提供元に報告してください。短時間に大量のリクエストを送るのは避けましょう。
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で利用できるサブスクリプション形式をサービス提供元に確認してください。
- Webページはサーバー一覧ではありません:応答に
<!DOCTYPE html>、ログインフォーム、Web認証の説明が含まれる場合は、まずURLとアクセス条件を確認してください。 - HTTPステータスが正常でも形式が正しいとは限りません:
HTTP 200が示すのはHTTPリクエストの結果だけで、応答本文がサブスクリプション形式に合っていることまでは保証しません。 - プロトコルのパラメータを確認:Shadowsocks、VMess、VLESS、Trojan、Hysteria2、WireGuardでは必要なフィールドが異なります。名前やアドレスだけで項目が完全かどうかは判断できません。
- ポートは指定値と照合:サービス提供元がリモートポートとして
443を指定している場合は、その項目に保存されている値と比較してください。すべての項目を443に変更しても、一般的な解決策にはなりません。
リストを正常に取得できても接続テストに失敗する場合は、アカウントの状態、サーバーへの到達性、認証情報、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でリストを下に引いて行います。
更新後に項目がいくつか減りました。再インストールが必要ですか?
まず利用中のサービス提供元に、返されたリストから項目が削除または改名されていないか確認し、正しいグループを表示しているかも確認してください。再インストールしてもサーバー側で削除された内容は戻りません。必要に応じて個人用の構成情報を保存してから対応しましょう。