この記事は、ご自身で契約しているサービスのサブスクリプションをお持ちのShadowrocketユーザー向けです。リクエストの失敗、応答内容を解析できない状態、有効な項目が空の状態を切り分け、URLの完全性、サブスクリプションの有効性、更新時のネットワークを確認します。最後にHomeの表示状態を見て、確認内容を記録してください。まずは既存の設定を残し、サーバーをすべて削除したりアプリを再インストールしたりしないでください。
1. まず切り分ける:応答を取得できていないのか、サーバー情報が含まれていないのか
Shadowrocketのサブスクリプション更新はいくつかの段階に分かれています。アプリがURLへリクエストを送り、応答内容を読み取り、認識できるサーバー項目をHomeに表示します。「解析失敗」と表示されても、プロトコル設定が誤っているとは限りません。一覧が空でも、ネットワーク接続が切れているとは限りません。どの段階で止まったかを確認してから、関係のない設定を変更しないようにしましょう。
- リクエストが完了しない:タイムアウトしたり、DNS・TLS・接続エラーが表示されたりする場合は、更新時のネットワークと接続経路を確認します。
- リクエストは完了するが解析できない:サーバーからサブスクリプション本文ではなく、ログインページやアカウント通知、エラーテキストが返されている可能性があります。URLの用途と提供元の応答形式を確認してください。
- 更新後も項目が表示されない:応答が空、認識できる項目が含まれていない、またはHomeでサブスクリプションのグループが折りたたまれている可能性があります。まず表示状態を確認し、その後、提供元に内容を問い合わせてください。
更新に失敗しても、保存済みのサーバーが一覧に残ることがあります。そのため、古い項目が残っているからといって更新成功とは限らず、古い項目に接続できても現在のサブスクリプションURLが有効とは限りません。今回の更新結果と、古い項目への接続結果は分けて記録してください。
2. URL全体を確認する:アカウントページをサブスクリプションURLと取り違えない
ご自身のサービス提供元のアカウントページから、Shadowrocket用のサブスクリプションURLをコピーし直し、Homeに登録した該当サブスクリプションのURLと照合してください。ブラウザーのアドレスバーに表示されたアカウントのトップページをそのままコピーしたり、個別サーバーの共有情報をサブスクリプションURLとして使ったりしないでください。サブスクリプションURLにはアクセス用の認証情報が含まれることがあるため、ご自身の端末上で確認してください。
- 先頭を確認:サービス提供元が指定するスキーム(例:
https://)を含む完全なURLをコピーしているか確認してください。ドメイン名とパスだけでは不十分です。 - 末尾を確認:チャットアプリなどでクエリパラメーターが途中で切れていないか確認してください。特に
?、&、=の後の文字列に注意し、記憶を頼りに補わないでください。 - 余計な文字を確認:コピー時に混入した引用符、日本語の句読点、空白、改行を取り除いてください。URL内部の大文字・小文字やエンコードされた文字は不用意に変更しないでください。
- URLの用途を確認:サービス提供元がShadowrocket用として案内しているサブスクリプションURLを使ってください。ログインURL、請求ページ、設定説明ページとは異なります。
- 保存後に1回だけ更新:Homeに戻り、該当するサブスクリプションを更新します。リクエストが完了するまで待ってから結果を確認してください。
https://example.com/sub?token=xxxx
上記はURLの構造を説明するための例であり、読み込みには使えません。例の token=xxxx はアクセス用の認証情報を示しています。実際のURLに含まれる認証情報を例の値に置き換えないでください。また、URL全体を重ねてエンコードしたり、「正しく見える」ようにクエリパラメーターを削除したりしないでください。
3. 応答から有効性と内容形式を確認する
URLが完全でも、エラー内容が返されることがあります。契約期限切れ、認証情報の再発行、サーバーのメンテナンス、形式の変更などにより、以前は使えたURLから期待したサブスクリプションが返されなくなる場合があります。ブラウザーでページを開けても、応答をShadowrocketで解析できるとは限りません。
以下はサーバーの応答を見分けるためのHTTP標準ステータスの説明です。Shadowrocketがこれらのエラーを同じ文言で表示するとは限りません。アプリに表示された内容と、サービス提供元が確認した応答を基準にしてください。ステータスコードを調べるために、認証情報を含むURLを第三者の確認サイトへ送信しないでください。
HTTP 401 Unauthorized
原因と対処:サーバーが有効な認証情報を要求しており、以前の認証情報が無効になっている可能性があります。ご自身のサービス提供元のアカウントで契約状態を確認し、有効なURLをコピーし直してから更新してください。
HTTP 403 Forbidden
原因と対処:サーバーが現在のリクエストを拒否しています。アカウント権限やアクセス制限が関係している可能性があるため、提供元に制限の理由を確認してください。サーバーを何度も変更して試すだけでは解決しません。
HTTP 404 Not Found
原因と対処:リクエスト先のパスが存在しません。URLが途中で切れているか、サブスクリプションの入口が変更された可能性があります。提供元の現在のアカウントページからURLをコピーし直し、パスとパラメーターを確認してください。
HTTP 429 Too Many Requests
原因と対処:短時間にリクエストを繰り返したことで制限された可能性があります。連続更新を止め、サーバーの案内または提供元の説明に従って時間をおいてから再試行してください。
応答が HTTP 200 でも、本文がログインページや案内文である場合があります。提供元が応答を返していると確認できたら、その内容がブラウザーで読むためのページではなく、Shadowrocketが認識できるサブスクリプションであることを確認してください。拡張子、ファイルサイズ、「リクエスト成功」という表示だけで形式の互換性を判断しないでください。
要点:応答を受け取ったら、その内容を確認する
URLが完全でリクエストも完了するのにサーバー項目が追加されない場合は、サブスクリプション本文とアカウント状態を確認してください。この段階でConfigのルーティングルールを変更しても、本文の形式は修正できません。
4. ネットワーク条件を一つだけ変えて更新を試す
サブスクリプションの更新はサーバーへアクセスするリクエストであり、Webページへのアクセス結果とは異なる場合があります。あるWebページが開けても、サブスクリプションのドメインに接続できるとは限りません。現在のプロキシに接続できても、そのプロキシ経由でサブスクリプションを取得できるとは限りません。まずURLを変えず、更新経路を一つずつ試すことで、どの条件が影響しているかを切り分けられます。
- 現在の状態を記録:Wi-Fiとモバイル通信のどちらを使っているか、接続のオン・オフ、今回の更新時に表示されたメッセージを記録します。ルール、DNS、サブスクリプションURLを同時に変更しないでください。
- 接続ネットワークを切り替える:可能であればWi-Fiからモバイル通信へ、またはその逆に切り替え、同じサブスクリプションを1回だけ更新します。公共Wi-Fiでブラウザーからのログインが必要な場合は、先にネットワーク認証を済ませてください。
- 更新経路を確認:
Settings → Subscribeを開き、Update via Proxyを確認します。現在の画面にこの項目がある場合は、オンにする前に既存のプロキシ接続が使えることを確認してください。比較する場合は変更前の値を記録し、テスト後に元へ戻してください。 - 循環依存を避ける:利用可能なサーバーが1つもない場合、そのサーバー経由で新しいサーバーを取得しようとしないでください。まずサブスクリプションに直接アクセスできるか確認するか、接続可能なサブスクリプションURLを提供元に問い合わせてください。
- 時刻と証明書を確認:TLSまたは証明書の警告が出た場合は、端末の日付と時刻が正しいか確認し、証明書についてサービス提供元に問い合わせてください。証明書検証を無効にする方法を一般的な解決策として使わないでください。
Global RoutingのConfig、Proxy、Directは通信の処理方法であり、サブスクリプションの形式を指定する項目ではありません。Sceneはシーン設定に関するもので、誤ったサブスクリプション本文をサーバー一覧に変換する機能ではありません。解析エラーの確認中にこれらを切り替えても修復にはなりません。更新に使う経路は、該当する設定で個別に確認してください。
5. 更新後も一覧が空の場合:Homeの表示と項目を確認する
Homeに戻り、検索条件を解除して対象のサブスクリプショングループを展開します。先ほど更新したサブスクリプションを表示しているか確認してください。同じ名前の別グループや手動で追加した項目ではないことも確認します。グループ名が表示されていても、サブスクリプションの記録が保存されているだけで、有効なサーバーが含まれているとは限りません。
- 展開後に項目がある:解析によって項目が作成されています。次にサーバーへ接続できるか確認してください。接続できない場合は、サーバーアドレス、ポート、認証情報、サービスの稼働状況を別途確認します。
- 展開しても空のまま:サービス提供元がサーバー情報を実際に返しているか、返された項目の形式がShadowrocketに対応しているか確認してください。アカウントが有効でも、応答に項目が含まれているとは限りません。
- 一部の項目だけ不足している:不足している項目名やプロトコルの種類を提供元に伝え、その部分の形式を確認してもらってください。一部の項目がないだけで、ネットワーク全体が使えないと判断しないでください。
Shadowsocks、VMess、VLESS、Trojanなどのプロトコル名はサーバーへの接続方式を示すもので、サブスクリプション全体の形式を示すものではありません。同じプロトコルでもパラメーターの表現方法が異なる場合があります。項目名をまとめて手作業で変更せず、提供元に対応した内容を用意してもらってください。また、サブスクリプションURLのHTTPSポートをサーバーのPortに入力しないでください。
6. 個人情報を伏せて記録し、結果に応じて対応する
ここまで確認しても解決しない場合は、「すべて試した」と伝えるより、再現できる記録をサービス提供元に共有すると役立ちます。失敗した段階、ネットワーク環境を変更したか、更新前後に項目があったかを記録してください。token、パスワード、秘密鍵、QRコードを隠さずに送信しないでください。
- 失敗した時刻(現地時間)、Wi-Fiまたはモバイル通信の別、アプリに表示されたメッセージをそのまま記録してください。
- 初回の読み込みから失敗しているのか、以前は正常だったサブスクリプションが突然更新できなくなったのかを説明し、古い項目が残っているかも記載してください。
- サブスクリプションのドメインと、認証情報を伏せたパスの特徴を伝え、現在有効なURLをコピーし直したかどうかも説明してください。
Update via Proxyをテストしたか、そのときプロキシ接続が使えたか、ネットワークを切り替えた後に結果が変わったかを説明してください。- アカウントが有効か、アクセス制限があるか、サブスクリプション本文が空か、返される形式がShadowrocketに対応しているかをサービス提供元に確認してください。
ブラウザーではURLを開けるのに、なぜ解析に失敗するのですか?
開いた内容がサブスクリプション本文なのか、ログインページや案内ページなのかを確認してください。Webページが表示されるだけの場合は、ご自身のサービス提供元のアカウントに戻り、Shadowrocket用のサブスクリプションURLをコピーし直してください。Webページへのログインに成功しても、サブスクリプションの形式が有効とは限りません。
サブスクリプション全体を削除してから読み込み直す必要がありますか?
まず既存の項目を残したままURLを確認し、更新を1回試してください。新しいURLが有効で、既存の情報を保存済みであり、作り直す必要があると確認できた場合に限り、古いサブスクリプションを整理してください。まだ使える接続情報を誤って削除するのを防げます。
更新後に一覧は表示されますが、どのサーバーにも接続できない場合はどうすればよいですか?
この場合は接続のトラブルとして確認します。まず項目を1つ選び、接続状態を確認してから、ポート、認証情報、サービスの有効性を提供元に問い合わせてください。同じサブスクリプションを何度も読み込んだり、一覧が表示されていることを接続可能の保証と見なしたりしないでください。
Shadowrocketを購入したのに、なぜ自分でサブスクリプションを用意する必要があるのですか?
クライアントアプリの買い切り購入と、接続サービスの契約は別です。Shadowrocketの購入で取得できるのはクライアントアプリです。サーバーとサブスクリプションは、ユーザー自身が契約するサービス提供元から提供されます。当サイトではサーバーやサブスクリプションを提供・販売・推奨していません。