既存のサブスクリプションと利用可能な項目は残したまま、「リクエストが完了しない」「取得した内容を解析できない」「有効な項目が返されない」のどれに当たるかを切り分けましょう。この記事では、すでに利用中のサービス提供元のサブスクリプションをお持ちの方に向けて、Home の Subscribe への登録、URLの確認、HTTP応答、更新時のネットワーク、再試行のタイミングを順に確認します。最初に Config をリセットしたり、サブスクリプションを何度も削除して作り直したりする必要はありません。
まず確認:サブスクリプションが空・解析失敗・接続失敗の違い
Shadowrocketのサブスクリプション更新は、登録済みのサブスクリプションURLから内容を取得し、項目を作成する処理です。一方、接続テストでは項目を使って接続します。更新に成功しても接続できるとは限らず、接続に失敗してもURLが無効とは限りません。まず問題がどの段階で起きているかを確認し、すべてを「ノードが使えない」とひとまとめにしないでください。
- 保存後、サブスクリプションのグループだけが表示され、項目がない:更新を実行したか、グループが展開されているか、応答内容に有効な項目が含まれているかを確認します。
- 更新時に解析エラーが表示される:まず応答形式を確認します。ログインページ、エラーの説明、空の内容は、通常のサブスクリプション一覧として解析できません。
- 更新が長時間待機した後に失敗する:まずサブスクリプションのドメインへのネットワーク接続、DNS、TLS接続を確認し、次にサーバーの状態を確認します。
- 項目は表示されるが接続できない:該当項目のアドレス、ポート、認証情報、転送パラメータを確認します。接続の診断にサブスクリプションの再更新を使い続けないでください。
Home は主に項目と接続の管理、Config は構成ファイル、Settings は各種設定に使います。Config の DOMAIN-SUFFIX や FINAL を変更しても、ログインページがサブスクリプション内容に変わることはありません。既存の設定はそのままにし、サブスクリプションだけを最小限の範囲で確認すると、操作ごとの結果を判断しやすくなります。
URL形式:Subscribe から完全なアドレスを確認
手作業で欠けたURLを修正するより、利用中のサービス提供元のサブスクリプション管理ページからアドレスをコピーし直すほうが確実です。コピーするのがサブスクリプションURLであり、アカウントのトップページ、ログインページ、請求ページではないことを確認してください。URLのクエリパラメータは認証に使われることが多く、1文字欠けただけでもサーバーの応答が変わる場合があります。
-
現在の情報を記録
Home で現在のサブスクリプション名、項目数、今回表示されたエラーを記録します。利用可能な項目が残っているサブスクリプションは削除せず、既存の Config も上書きしないでください。
-
URLをすべてコピー
利用中のサービス提供元のページからサブスクリプションURLをすべてコピーし、プロトコル、ドメイン、パス、疑問符以降の全パラメータを確認します。コピー時に混入した前後の空白は削除し、パラメータをむやみに書き換えないでください。
-
登録タイプを確認
新規作成する場合は、Home 右上の「+」から Add Server を開き、Type を Subscribe に設定して、URL にアドレスを貼り付けます。既存のサブスクリプションがある場合は、該当する編集画面で URL を確認し、同じグループを重複して作成しないようにしましょう。
-
保存して更新
保存して Home に戻り、下に引いて更新します。リクエストの完了を待ってから、グループ内の項目数と表示内容を確認してください。処理中に何度も更新を実行しないでください。
-
結果を記録
更新した時刻、使用したネットワーク、表示されたメッセージを記録します。次回は、ネットワークを切り替えるなど、条件を1つだけ変えると違いの原因を特定しやすくなります。
https://example.com/sub?token=xxxx
上記のアドレスはURLの構造を説明するためのもので、利用可能なサブスクリプションではありません。?以降のパラメータ、パラメータ間の&、パーセントエンコードされた文字列も、元のアドレスの一部である可能性があります。チャットツール上の省略記号をURLの一部と見なさず、自分でデコードしてつなぎ直すことも避けてください。ウェブページのソースから文字列としての&をコピーした場合は、推測でトークンを書き換えず、ページ上のコピー機能からURLを取得し直してください。
[Check]
ss://、vmess://、vless://、trojan://は通常、単一項目の共有情報を示すもので、定期的に取得するHTTPSサブスクリプションURLとは異なります。単一項目は対応するインポート方法で扱ってください。プレフィックスをHTTPSに変えるだけでは、サブスクリプションの更新機能は得られません。
応答内容:HTTPの成功は解析の成功を意味しない
リクエストがサーバーに届いた後は、サーバーが実際に何を返したかも確認する必要があります。HTTPステータスコードはリクエストの処理結果を示しますが、サブスクリプションを解析できるかどうかは、応答本文が認識可能な項目情報かどうかにも左右されます。そのため、ブラウザでURLを開けても、応答があったと分かるだけで、ページが表示されたことだけを根拠にサブスクリプションが有効とは判断できません。
要点:まず本文を確認し、その後に解析の問題を判断
ログインページ、認証ページ、メンテナンス案内が返された場合は、まず利用中のサービス提供元にサブスクリプションAPIの状態と対応形式を確認してください。サーバーから返されたページに対処するために、ローカルのルールを何度も変更しないでください。
サブスクリプションによっては項目一覧をエンコードして返し、別のものはそのまま読めるテキストを返します。「長い文字列に見える」というだけで破損とは判断できません。反対に、整ったHTMLページがHTTP 200で返されても、インポート可能な項目が含まれていないことがあります。利用中のサービス提供元に、APIがウェブ閲覧用の説明ではなく、Shadowrocketで認識できるサブスクリプション内容を返しているか確認してください。
- 本文が空:該当アカウントに現在項目があるはずか、APIが内容を生成しているか、キャッシュから古い結果が返されていないか、サービス提供元に確認してください。
- 本文がログインページまたは認証ページ:ブラウザではログイン状態を利用して内容を表示できても、アプリのサブスクリプションリクエストには同じセッション情報がありません。クライアント用のサブスクリプションURLを取得してください。
- 本文にエラーの説明がある:説明に従って認証、アカウントの状態、リクエスト制限を確認し、原文を保存してください。エラーメッセージを Add Server の別のフィールドに貼り付けないでください。
- 一部の項目だけ表示される:表示されない項目の共有形式、必須フィールド、プロトコルパラメータをサービス提供元に確認してください。一部をインポートできたことだけで、内容全体が正しいとは判断できません。
サービス提供元の状態:応答の原文に基づいて対応し、原因を決めつけない
以下のカードは標準HTTPステータスの説明であり、Shadowrocketに同じ文言が必ず表示されるという意味ではありません。アプリのメッセージ、リクエスト診断の結果、または利用中のサービス提供元の記録で該当するステータスコードを確認できた場合に限り、対応する項目を参考にしてください。「解析失敗」とだけ表示されている場合、認証失敗やアクセス制限とは断定できません。
HTTP 401 Unauthorized
原因と対処:認証に失敗しています。利用中のサービス提供元のページから有効なサブスクリプションURLを取得し直し、トークン全体と認証状態を確認してから更新してください。
HTTP 403 Forbidden
原因と対処:サーバーがリクエストを拒否しました。具体的な制限はサーバー側に確認する必要があります。ステータスコードと発生時刻を伝えてアクセス制御を確認してもらい、コードだけでアカウントの期限切れと判断しないでください。
HTTP 404 Not Found
原因と対処:リクエストされたリソースが見つかりません。ドメインとパスが完全か確認し、サービス提供元がサブスクリプションのURLを変更していないか確認してください。新しいパスを推測して入力しないでください。
HTTP 429 Too Many Requests
原因と対処:リクエスト頻度の制限に達しています。連続更新を止め、応答に Retry-After が含まれていれば指示に従って待ちます。指定がなければ、許容される再試行間隔をサービス提供元に確認してください。
HTTP 503 Service Unavailable
原因と対処:サーバーが現在リクエストを処理できません。既存の項目を残し、復旧状況をサービス提供元に確認して、サービスが復旧してから更新を1回実行してください。
サービス提供元からAPIの復旧が報告されているのにクライアント側が空の場合は、「更新時に新しい内容を取得できなかった」のか「取得した内容が空だった」のかを切り分けます。更新時刻、ステータスコード、項目数の変化、表示されたメッセージを伝えると、原因を特定しやすくなります。スクリーンショットやログに含まれるサブスクリプショントークン、パスワード、UUIDなどの認証情報は必ず隠し、公開の場に完全なURLを投稿しないでください。
更新タイミング:ネットワーク経路、プロキシ経由の更新、自動接続
サブスクリプションを更新するにはサブスクリプションのドメインにアクセスできる必要があり、項目で接続するには項目のサーバーにアクセスする必要があります。ドメインやネットワーク経路は異なる場合があります。項目で接続できても、サブスクリプションのドメインに直接アクセスできるとは限りません。また、サブスクリプションのドメインにアクセスできても、すべての項目のサーバーが正常とは限りません。
直接接続のリクエストがタイムアウトし、既存の項目は引き続き使える場合は、まず利用可能な接続を確立してから Settings → Subscribe で Update via Proxy を確認し、必要に応じて有効にして Home に戻り、更新します。この設定はサブスクリプションリクエストのアクセス方法を変えるもので、無効なトークン、空の応答、サーバー側の形式の問題は解決しません。利用可能な接続がない場合、これを有効にするだけで更新経路が自動的に確立されるわけではありません。
- まずネットワークに接続:新しいWi-Fiでウェブ認証が必要な場合は、先に認証を済ませてからアプリに戻って更新してください。認証ページをサブスクリプションの応答と見なさないでください。
- 現在の接続を確認:Global Routing の Proxy、Direct、Config、Scene はトラフィックの処理方法であり、サブスクリプション形式を選ぶ設定ではありません。現状を確認するだけでよく、解析を試すために1つずつ切り替える必要はありません。
- 自動接続の条件に注意:Settings → On Demand は条件に応じて接続を開始する機能で、サブスクリプションの更新設定ではありません。テスト中に接続状態が変化するかを記録し、ネットワーク経路が頻繁に変わらないようにしてください。
- ネットワークを切り替えて再試行:利用可能な別のネットワークで試すと、ネットワーク経路の問題か切り分けやすくなります。条件の変更を記録し、URLやほかの設定を同時に変えないでください。
- サーバー側の反映を待つ:アカウントの状態やサブスクリプション内容を変更した直後は、利用中のサービス提供元が案内する反映時間に従ってください。「数分待てば必ず直る」といった一律の目安はありません。
サブスクリプションの更新エラーに対処するために、証明書の検証を無効にしないでください。TLSに関するメッセージが表示された場合は、まずデバイスの日付と時刻、サブスクリプションのドメインが正しいかを確認し、証明書と証明書チェーンをサービス提供元に調べてもらいます。特定のネットワークだけで失敗する場合は、安全確認を省略するより、そのネットワークで表示されたメッセージを診断用に保存するほうが原因の特定に役立ちます。
よくある質問:データを残して最後の確認をする
ブラウザではURLを開けるのに、Home が空なのはなぜですか?
まずブラウザに表示されているのが項目の内容であり、アカウントページや認証ページではないことを確認します。ブラウザのログイン状態はサブスクリプションリクエストの認証条件と同じではありません。利用中のサービス提供元のページからクライアント用サブスクリプションURLをコピーし直し、Home の Subscribe 編集画面で URL を確認してから更新してください。
更新に失敗したら、サブスクリプションをすべて削除するべきですか?
まず削除せず、元の項目数、表示されたメッセージ、最終更新時刻を記録し、使える項目を残してください。インポートし直すことは、APIのエラーを直すために必須ではありません。作り直す必要がある場合は、URLが有効であることを確認し、必要な元の情報を適切に保存してください。
Update via Proxy を有効にしてもタイムアウトする場合は?
まず既存の項目で実際に接続できることを確認し、次に現在の接続からサブスクリプションのドメインにアクセスできるか確認してください。接続自体が使えない場合は、そのドメインにアクセスできるネットワークで試します。そのAPIだけが失敗する場合は、発生時刻と表示されたメッセージを利用中のサービス提供元に伝えて確認してもらってください。
サブスクリプションの更新に成功したのに、選択した項目で接続できないのはなぜですか?
更新の成功が意味するのは、サブスクリプション内容を取得して処理できたことだけです。該当項目の編集画面でプロトコル、アドレス、ポート、認証パラメータを確認し、サーバーの状態も確認してください。たとえば Trojan の TLS パラメータは利用中のサービス提供元の情報と一致している必要があります。パラメータの確認を更新の再実行で代用しないでください。
最後に「完全なURL → Subscribe タイプ → 応答本文 → サーバーの状態 → 更新時のネットワーク → 再試行のタイミング」の順に確認します。変更する条件は毎回1つにし、リクエストを1回完了させてから結果を記録してください。問い合わせる場合は、次の項目を伝えれば状況を説明でき、認証情報全体の開示も避けられます。
- 初回インポート時から空なのか、既存のサブスクリプション更新に失敗したのか、更新後に一部の項目が表示されないのかを説明します。
- 発生時刻、Wi-Fiやモバイルネットワークなどの接続条件、Update via Proxy を使用したかどうかを伝えます。
- 表示されたメッセージの原文と確認できるHTTPステータスコードを記録します。コードがない場合は推測せず「取得できず」と明記します。
- 更新前後の項目数と、サービス提供元が有効な項目があるはずだと確認しているかを伝えます。
- 必要な情報は利用中のサービス提供元に非公開のサポート窓口からのみ提供し、公開するスクリーンショットではトークンなどの認証情報を隠します。