利用中のサービス提供元とサブスクリプションがあり、Shadowrocketで更新できない、またはノードが表示されない場合の確認方法です。既存の設定は残したまま、リクエスト失敗・応答の解析失敗・空の応答を切り分け、URL、アカウントの状態、更新に使うネットワークを確認します。原因を見失わないよう、1回の確認で変更する条件は1つにとどめ、サブスクリプションの削除や連続更新は避けてください。
サブスクリプションの更新失敗とノードの接続失敗を切り分ける
サブスクリプションの更新ではURLにアクセスしてサーバー設定を取得します。一方、接続テストでは、すでに追加済みのサーバーを使ってネットワークに接続します。この2つは別の通信です。以前追加したノードに接続できても、サブスクリプションURLが有効とは限りません。更新に成功しても、含まれるすべてのサーバーに接続できるとは限りません。まずHomeで問題が起きているサブスクリプショングループを確認し、発生時刻、ノード数、表示されたメッセージを記録してください。
「一覧が空」の場合は、既存の項目が実際に消えたのか、現在の画面に表示されていないだけなのかを切り分けます。まずHomeの検索条件を解除し、サブスクリプショングループを展開して、別のグループを見ていないか確認してください。ノードの有無をConfigのルールファイル一覧で判断しないでください。ルール設定とサーバーのサブスクリプションは役割が異なります。
- 更新前のノード数を記録します。利用できるノードがある場合は、サブスクリプショングループを削除せずに残してください。
- Homeから対象のサブスクリプションを1回更新します。下に引いて更新する画面では、プルダウンして更新し、対象グループの結果を確認してください。
- 結果を、リクエスト失敗・解析失敗・更新成功だが空・ノード表示後の接続失敗に分類し、それぞれの確認手順に進みます。
サブスクリプションURLを確認:完全なURLとウェブページのURLは別物
利用中のサービス提供元のアカウントページに戻り、Shadowrocket対応と明記されたサブスクリプションURLをコピーし直してください。チャットのプレビュー、途中で切れた通知、スクリーンショットからURLを復元しないでください。ウェブページ上の省略記号はURLの一部ではありません。また、アカウントのログインページやプランの説明ページはサブスクリプション用の接続先ではありません。
サブスクリプションURLにはクエリパラメーターが含まれていることが多く、認証や形式の指定に使われます。貼り付けた後、引用符、空白、改行、全角の句読点が混ざっていないか確認してください。特に?、&、=以降がすべて含まれているか注意します。パラメーターの値は大文字・小文字を区別する場合があります。自分で書き換えたり、「短くする」ために末尾のパラメーターを削除したりしないでください。
https://example.com/sub?token=xxxx
上記は実際のサブスクリプションには使えないダミー値で、URLの構造を示すものです。実際のtokenは認証情報として扱い、公開コメントやスクリーンショット、オンライン変換ページに貼り付けないでください。サブスクリプションによってはtokenパラメーターではなくURLのパスに認証情報が含まれます。そのため、このパラメーターがなくてもURLが誤っているとは限りません。利用中のサービス提供元から案内されたURLを確認してください。
https://で始まるURLはサブスクリプションの場合も、通常のウェブページの場合もあります。応答内容を確認してください。ss://、vmess://、vless://、trojan://は通常、単一サーバーの設定を表します。定期更新するHTTPサブスクリプションURLとしては使えません。- QRコードをコピーした場合は、その内容がサブスクリプションなのか、単一の設定なのかを確認してください。読み取りに成功しても、一覧全体の更新に使えるとは限りません。
- サービス提供元がサブスクリプションの認証情報をリセットした場合は、既存のサブスクリプションURLを新しいものに置き換えてから1回更新してください。アプリを再インストールしても古いURLは有効に戻りません。
エラーの種類ごとに失効・アクセス制限・応答内容を確認
以下はネットワーク層またはHTTP層でよく見られるエラー識別子です。すべてのプラットフォームで同じ文言が表示されるとは限りません。実際のメッセージを記録し、「失敗」と表示されただけでアカウントの期限切れと判断しないでください。一般的なエラーしか表示されない場合は、発生時刻とサービス提供元側のアクセス記録もあわせて確認します。
HTTP 401 Unauthorized
原因と対処:認証に失敗しています。認証情報の不足、リセット、失効が考えられます。アカウントに表示されている有効なサブスクリプションURLをコピーし直し、認証情報の状態を利用中のサービス提供元に確認してください。
HTTP 403 Forbidden
原因と対処:サーバーがアクセスを拒否しています。アカウントの権限、接続元のアドレス、アクセス方針が関係している可能性があります。利用可能なサブスクリプションがあるか確認し、現在のネットワークやリクエスト方法が制限されていないか、サービス提供元に問い合わせてください。
HTTP 429 Too Many Requests
原因と対処:リクエスト頻度がサーバー側の制限を超えています。連続更新を中止してください。応答にRetry-Afterがある場合はその指示に従い、ない場合はサービス提供元が案内する間隔を空けてから再試行します。
HTTP 200 OKなのに解析に失敗する、または項目が0件
原因と対処:HTTPリクエストに成功しても、有効なサブスクリプションが返されたとは限りません。応答がログインページ、認証ページ、または空の内容である可能性があります。実際の応答データとShadowrocketへの対応状況を、サービス提供元に確認してください。
サブスクリプションはエンコードされたテキストや、ほかの対応形式で返される場合があります。ブラウザーで文字化けして見えるだけで、破損しているとは判断できません。一方、整ったウェブページが開けても、サブスクリプションが有効とは限りません。確認すべきなのは、ページが正常に表示されるかではなく、応答にクライアントが認識できるサーバー設定が含まれているかどうかです。
ポイント:ステータスコードがある場合は、まずサーバー側の拒否理由を確認
記録に401、403、429が明記されている場合は、まず認証情報、権限、更新間隔を確認してください。Global Routingを何度切り替えても、無効なtokenは直らず、サーバー側のアクセス制限も解除されません。
更新時のネットワークとUpdate via Proxyを確認
HTTP応答がなくタイムアウトやドメイン名の解決エラーだけが表示される場合は、ネットワーク経路を確認してください。まずシステムのネットワークが利用できるか確認します。ウェブ認証が必要なWi-Fiでは、先に認証を完了してください。その後、同じサブスクリプションURLを使って条件を絞ったテストを1回行います。DNS、ルーティング設定、サブスクリプションのパラメーターを同時に変更しないでください。
この項目がある画面では、Settings → Subscribe → Update via Proxyを開き、サブスクリプションがプロキシ経由で更新されるか確認できます。有効にする前に、Homeで選択中の既存サーバーに接続できることを確認してから、対象のサブスクリプションを更新してください。メニューの場所や表示名は、使用中のプラットフォームの画面で確認してください。すべてのプラットフォームで同じ配置とは限りません。
| 確認結果 | 次の操作 | 判断の目安 |
|---|---|---|
| 通常のウェブページも開けない | Wi-Fiまたはモバイル通信を復旧し、ネットワーク認証を完了する | サブスクリプションURLやルールはまだ変更しない |
| 直接更新はタイムアウトするが、既存サーバーには接続できる | Update via Proxyを有効にして1回だけ再試行する | 成功しても、2つのネットワーク経路で接続状況が異なることを示すだけ |
| 有効にすると失敗し、直接更新は成功する | 更新できる方法を使い、プロキシ経路を確認する | 更新方法と通常の通信振り分け設定を混同しない |
| どちらの方法でも403が返る | 発生時刻とステータスコードを記録し、利用中のサービス提供元に連絡する | サーバー側のアクセス制限を優先して確認 |
Home → Global RoutingにあるProxy、Direct、Config、Sceneはルーティング方式の選択に使われます。サブスクリプション接続先の有効性を確認する機能ではありません。ConfigのDOMAIN-SUFFIX、IP-CIDR、GEOIP、FINALは該当する通信のルール判定に影響しますが、ルールにFINAL,PROXYを追加しても、空のサブスクリプション応答を復元することはできません。
- 接続可能な既存サーバーがない場合、「プロキシ経由で更新」を有効にすれば必ず解決するとは限りません。
- 接続状態が自動で変わる場合は、Settings → On Demandの接続条件を確認し、テスト時に実際に接続されていたか記録してください。
- Wi-Fiとモバイル通信を切り替えた場合は、ネットワークが安定してから更新してください。切り替え中にリクエストを連続で送信しないでください。
更新成功なのにノードが空:アカウント・形式・グループを確認
クライアントで更新完了と表示されても一覧が空の場合は、まず表示を確認し、次にサーバー側で実際にサーバーが割り当てられているか確認してください。アカウントにログインできること、過去の注文があること、現在有効なサブスクリプションがあることは、それぞれ別の条件です。利用中のサービス提供元のアカウントページで、有効期限、通信量の状態、サブスクリプションの利用権限を確認してください。停止条件はサービス提供元の案内に従ってください。
- 表示の問題を除外:検索文字列を消して対象グループを展開し、別のサブスクリプションや画面を見ていないか確認してください。
- 出力形式を確認:アカウントページで形式を選べる場合は、Shadowrocketに対応すると明記された形式を選択してください。ルールファイルのURLをサーバーのサブスクリプション欄に入力しないでください。
- 応答内容を確認:今回のリクエストで、そのURLから空でないサーバー一覧が返されたか、サービス提供元に確認してください。インターフェースのステータスが200だったかだけでは不十分です。
- 解析可能な内容か確認:空ではない応答が返っているのにノードが0件の場合は、個人情報を伏せたエラーメッセージを提供し、項目と形式の互換性をサービス提供元に確認してください。公開の場に設定全体を送らないでください。
すべてのプロトコルを手動で同じ種類に変更しないでください。Shadowsocks、VMess、VLESS、Trojan、Hysteria2、WireGuardでは、項目も接続方法も異なります。プロトコル名を変更しても形式は変換されません。一部の項目だけ表示されない場合は、すべての設定を削除する前に、欠けている項目の種類とサービス提供元の出力を比較してください。
ポイント:空の応答と解析失敗は、別々に原因を確認
「URLを開けるか」だけを何度も尋ねるより、サービス提供元に「応答が空でないか、有効なサーバー設定が含まれているか」を確認するほうが具体的です。回答を得てから、アカウントへの割り当てとサブスクリプション形式のどちらを直すか判断してください。
更新のタイミングと復旧の手順
更新手続き、認証情報のリセット、アカウント設定の変更を行った直後は、クライアントが取得する内容にサーバー側の最終状態が反映されていない場合があります。決まった待ち時間を独自に設定せず、サービス提供元が案内する反映時間や更新間隔を確認し、案内に従ってから更新してください。429が発生した場合は、短時間での再リクエストを特に避けてください。
まだ使える古い項目は残しておくと、ネットワークのテストに利用できます。復旧前にアプリのアンインストール、Configの削除、サブスクリプションの消去を一度に行わないでください。比較に使える情報が減るうえ、サーバー側から空の応答が返る問題も解決しません。バックアップがある場合は適切に保管してください。書き出した設定にサーバーの認証情報が含まれることがあります。
- 現在のサブスクリプション名、既存の項目数、個人情報を伏せたエラー記録を保存します。
- アカウントページから有効なURLを取得し、対象のサブスクリプション設定だけを変更します。
- 安定したネットワークで、確認済みの方法を使って1回更新し、結果を記録します。
- 項目が戻ったら、Homeでサーバーを選んでConnectivity Testを行い、実際に利用するページもテストします。
- 項目が戻っても接続できない場合は、接続トラブルの確認に進みます。サブスクリプションが空の問題として扱い続けないでください。
サブスクリプション更新に関するよくある質問と問い合わせ時の情報
以前のノードには接続できるのに、なぜサブスクリプションを更新できないのですか?
以前の項目は端末内に保存されていますが、更新時にはサブスクリプション接続先へ再度リクエストします。古い項目は残したまま、サブスクリプションの認証情報がリセットされていないか確認し、更新リクエストのステータスコードを調べてください。接続テストに成功しても、サブスクリプションが有効とは限りません。
何度も更新すれば、より早く復旧しますか?
いいえ。繰り返し更新すると、アクセス制限がかかることがあります。429が発生した場合はRetry-Afterまたはサービス提供元の案内に従って待ってください。間隔が明示されていない場合は、まずサービス提供元に確認します。自動で連続再試行しても、原因の確認にはなりません。
ブラウザーでURLを開くとログインを求められます。クライアントではどうすればよいですか?
コピーしたのがアカウントページではなく、サブスクリプション接続先か確認してください。ブラウザーでログイン済みでも、クライアントが同じセッションを自動的に利用できるわけではありません。アカウント内から専用のサブスクリプションURLをコピーし直し、それでもログインページが返される場合は、接続先をサービス提供元に確認してください。
更新後に一部のノードだけ減りました。再インストールが必要ですか?
まずサービス提供元が返すノード一覧を変更したか確認し、次に表示されない項目の形式とプロトコルの設定を調べてください。他の項目が正常なら、再インストールは優先すべき手順ではありません。欠けている項目の範囲を記録すると、サーバー側の変更か解析上の問題かを切り分けやすくなります。
問い合わせ時にサブスクリプションURL全体を伝える必要がありますか?
公開の問い合わせでは、プラットフォーム、発生時刻、エラーの原文、更新前後の項目数、ネットワークの種類、Update via Proxyの状態だけを伝えてください。token、パスワード、QRコード、認証情報を含むURL全体は伏せてください。アカウントの確認が必要な場合は、利用中のサービス提供元の非公開サポート窓口を利用してください。
クライアントの接続やルールを詳しく確認するには、トラブル対処をご覧ください。この記事のサブスクリプション操作は、利用者が自身のサービス提供元とサブスクリプションを持っていることを前提としています。