この記事は、ご自身が契約しているサービス提供元のサブスクリプションをお持ちの方向けです。まず、リクエストの失敗、応答内容の解析失敗、有効な項目が空の状態を区別します。次にURLとアカウントの状態を確認し、最後にSubscribeの更新経路を見直します。確認中は元のサブスクリプションと利用可能な項目を残し、一度に変更する条件は一つだけにして、結果を記録してください。
1. 「追加に失敗」と「追加後に空」を区別する
ShadowrocketはApp Storeで配信される買い切り型のクローズドソースアプリです。製品ページでデベロッパのShadow Launch Technology LimitedとアプリID 932747118を確認できます。アプリの購入に通信サービスのプランは含まれません。この記事ではノードやサブスクリプションの提供・販売・推奨は行いません。
サブスクリプションの更新には、URLへのリクエスト、応答内容の読み込み、対応する項目のリストへの登録という3つの段階があります。リストが空でも、必ずしも通信に失敗したとは限りません。サーバーが正常に応答していても、ログイン画面やエラー説明、有効な項目を含まない内容が返されることがあります。
- リクエストが完了しない:タイムアウト、ドメイン名を解決できない、接続失敗などが発生します。まずアクセス経路を確認し、プロトコルの設定はすぐに変更しないでください。
- リクエストは完了するが解析に失敗する:応答の形式を確認してください。Webページを開けても、インポート可能なサブスクリプションとは限りません。
- 更新後も項目が表示されない:応答に有効な項目が含まれているか、アカウントに該当する利用権限があるか、サービス提供元に確認してください。
- 項目は表示されるが接続できない:インポートは完了しています。サーバーへの接続性と認証パラメータを確認してください。
2. SubscribeのURLを確認し、WebページのURLと混同しない
まず、ご自身のサービス提供元のアカウントページからサブスクリプションURLを全体コピーしてください。アカウントのトップページ、注文ページ、ログインページ、サブスクリプション用インターフェースはそれぞれ用途が異なります。ドメインが同じというだけでURLが正しいと判断したり、不明なパラメータを手作業で追加したりしないでください。
https://example.com/sub?token=xxxx
上記は接続には使用できない形式の例です。https://はプロトコル部分、/subはパスの例、token=xxxxは認証パラメータの例です。実際のインターフェースのパスとパラメータ名はサービス提供元によって異なり、この例と同じとは限りません。
-
元の記録を残す
まず、元のサブスクリプション名、現在の項目数、表示されたエラーを記録します。元のリストに利用可能な項目がある場合は、グループ全体を先に削除しないでください。
-
URLをコピーし直す
ご自身のサービス提供元のページにあるコピー機能を使ってURLを取得してください。先頭や末尾に空白、改行、引用符、チャットアプリが付加した句読点がないか確認します。
-
Subscribeを選択
Home → 右上の「+」→ Type → Subscribeの順に進みます。URL欄にサブスクリプションURL全体を貼り付けてください。サーバー個別設定のAddressやPassword欄にURL全体を入力しないでください。
-
保存して更新
保存したらHomeに戻り、下にスワイプして更新します。リクエストが完了するまで待ち、表示されたメッセージと項目数を記録してから次の手順に進みます。
クエリパラメータ内の&、=、パーセントエンコードは認証に使われている場合があります。後半のパラメータを勝手に削除したり、URLエンコードを重ねたりしないでください。コピーした文字列に&がそのまま含まれている場合は、部分ごとに推測して直すのではなく、元のページから正しいURLをコピーし直してください。
3. サービス提供元の応答を確認する:ステータスコードと有効な項目は別
エラーの詳細やサービス提供元の診断記録にHTTPステータスコードが含まれている場合、原因の範囲を絞る手掛かりになります。以下は標準的なHTTPステータスの説明であり、Shadowrocketが常に同じエラーを表示するという意味ではありません。ステータスコードが表示されていない場合は、特定のエラーだと決めつけないでください。
HTTP 401 Unauthorized
原因と対処:インターフェースの認証に失敗しています。tokenがない、または無効になっている可能性があります。有効なサブスクリプションURLをコピーし直し、認証状態をサービス提供元に確認してください。
HTTP 403 Forbidden
原因と対処:サーバーが現在のリクエストを拒否しています。アカウントの権限やアクセス制限が関係している可能性があります。発生時刻とネットワークの種類を記録し、拒否理由をサービス提供元に確認してください。クライアントのパスワード欄を何度も変更する必要はありません。
HTTP 429 Too Many Requests
原因と対処:インターフェースのリクエスト頻度制限に達しています。連続更新をやめ、サービス提供元の案内または応答内のRetry-Afterに従って待ってから、一度だけ更新してください。
200 OKはHTTPリクエストが正常に応答したことを示すだけで、内容を解析できるとは限りません。ログイン画面、メンテナンス告知、認証ページもこのステータスコードを返す場合があります。ブラウザにはログイン状態が保持されていても、クライアントのサブスクリプションリクエストには同じセッション情報がないことがあります。
- HTMLページが返される:そのURLが直接読み込み可能なサブスクリプション用インターフェースか、ブラウザでのログインが必要かをサービス提供元に確認してください。
- 空の内容が返される:アカウントの状態、サブスクリプションの利用権限、インターフェースが有効な項目を生成しているか確認してください。
- 内容は返されるが解析できない:選択したサブスクリプション形式がShadowrocketに対応しているか確認してください。ファイルの拡張子を変えるだけでは形式は変わりません。
- 証明書エラーが表示される:デバイスの日付と時刻を確認し、ドメイン証明書をサービス提供元に調べてもらってください。セキュリティ検証の無効化を通常の解決方法にしないでください。
結論:まずインターフェースの応答内容を確認
HTTP応答があるのにインポートできない場合は、まず応答内容と形式をサービス提供元に確認してください。Global Routingを切り替えても、ログインページがサブスクリプション項目に変わることはありません。
4. 更新タイミングとUpdate via Proxyを確認する
サブスクリプション用インターフェースと、サブスクリプションに含まれるサーバーは別のテスト対象です。通常のWebページが開けても、一部のネットワークアクセスが正常だと分かるだけです。項目のConnectivity Testが成功しても、サブスクリプションのドメインに現在アクセスできるとは限りません。それぞれの結果を分けて記録してください。
Settings → SubscribeでUpdate via Proxyを確認します。この設定はサブスクリプション更新のアクセス経路を変更するもので、URLの形式やアカウント権限を修正するスイッチではありません。有効にする前に、利用可能なプロキシ接続があることを確認してください。そうでない場合、「項目を取得するには更新が必要だが、更新にはその項目が必要」という循環が起こる可能性があります。
- 現在のリストを残したまま、安定したネットワークで一度更新し、タイムアウトするか記録してください。
- 利用可能な項目がある場合は、先にその項目を選択して接続し、実際にアクセスできることを確認してください。
- Settings → Subscribeを開いてUpdate via Proxyを有効にし、Homeに戻って下にスワイプし、一度更新します。
- 2回の結果を比較します。更新経路を変更した後に結果も変わった場合に限り、その経路の接続性をさらに確認する根拠があります。
- 401、403、または内容の解析エラーが明確に表示された場合は、認証と応答内容の確認に戻ってください。手当たり次第にネットワークを切り替えないでください。
初回インポートで利用可能な項目がまったくない場合、Update via Proxyを有効にすることを前提にしないでください。まず、ご自身に利用権限のある別の安定したネットワークで比較してみます。それでもインターフェースにアクセスできない場合は、アクセス条件をサービス提供元に確認してください。
5. 項目が表示されたら「空のサブスクリプション」としての確認をやめる
リストにサーバー項目が表示されている場合、少なくとも一部の内容は正常に解析されています。同じURLを繰り返しインポートするのではなく、該当する項目をテストしてください。サービス提供元がパスワード、ポート、サーバーアドレスを変更した後も、古い項目が端末に残っている場合があります。今回の更新が実際に成功したかも確認してください。
- Home → Connectivity Test:対象項目への接続性を確認します。一度成功しても、すべてのWebサイト、プロトコル、時間帯で問題がないとは限りません。
- Home → Global Routing:現在選択されているProxy、Direct、Config、Sceneを確認します。Directでの直接接続の結果は、選択中のプロキシ項目が使える証明にはなりません。
- Configを使用している場合:現在の設定にあるルールとポリシーを確認してください。
DOMAIN-SUFFIX、IP-CIDR、GEOIP、FINALは通信の処理方法に関わるもので、サブスクリプションリストを生成するものではありません。 - 一部の項目だけ使える:利用できない項目の名前とテスト時刻を記録し、該当するサーバーをサービス提供元に確認してください。サブスクリプション全体を削除する必要はありません。
サブスクリプション用インターフェースがHTTPSのデフォルトポート443を使用していても、サブスクリプション内のサーバーも443を使うとは限りません。Shadowsocks、VMess、VLESS、Trojan、Hysteria2、WireGuardにはそれぞれ異なる接続パラメータがあります。サブスクリプションURLのポートをすべての項目に転記したり、テストを通すためだけにTypeを変更したりしないでください。
6. サービス提供元への問い合わせ前に、再現に必要な情報を整理する
クライアント側ではURL、更新経路、表示されるメッセージを確認できますが、アカウント権限の復旧、インターフェース証明書の修復、リモート項目の生成はできません。問い合わせでは、どの段階で問題が発生したかを伝え、「使えない」とだけ書くのは避けてください。
- 発生時刻:サーバー側のログと照合できるよう、日付、具体的な時刻、タイムゾーンを記録してください。
- ネットワーク環境:Wi-Fiかモバイル通信か、別のネットワークでも再現するかを伝えてください。
- 更新経路:Update via Proxyの設定状態を伝えてください。有効にしている場合は、依存する接続が利用可能だと確認済みかも説明します。
- 表示された結果:エラーメッセージの原文、HTTPステータスコード(表示されている場合)、更新前後の項目数を伝えます。推測した原因を書き加えないでください。
- プライバシー保護:公開するスクリーンショットでは、サブスクリプションURL全体、token、パスワード、アカウント情報を隠してください。認証情報全体はサービス提供元の非公開サポート手順に従って送ってください。
結論:一度に変更する条件は一つだけ
元の記録を残し、URL、ネットワーク、更新経路をそれぞれテストしてください。サブスクリプションの再作成、ネットワークの切り替え、接続設定の変更を同時に行うと、復旧しても何が原因だったのか特定しにくくなります。
7. サブスクリプションのインポート・更新に関するよくある質問
ブラウザではURLを開けるのに、なぜインポートに失敗しますか?
開いたものがサブスクリプションの内容なのか、ログインページなのかを確認してください。ブラウザにはアカウントのセッション情報が保持されている場合があります。サービス提供元のページからURLをコピーし直し、Home → 「+」→ Type → Subscribeから追加してください。それでも失敗する場合は、クライアントから直接読み込めるインターフェースか、サービス提供元に確認します。
更新に失敗したら、すぐに元のサブスクリプションを削除すべきですか?
先に削除しないでください。元のグループと利用可能な項目を残し、エラーを記録してからURLと更新経路を確認します。登録を削除してもリモート側の認証は修復されず、比較に必要な情報を失う可能性があります。
サブスクリプションURLをリセットした後、古いURLは引き続き使えますか?
すぐに無効になるかどうかはサービス提供元によります。リセット後は新しいURL全体を該当するSubscribeの登録に設定し、手動で一度更新してください。古いリストが端末に残っていても、古いURLへのアクセス権があるとは限りません。
Update via Proxyを有効にしてもタイムアウトする場合はどうすればよいですか?
まず現在のプロキシ接続自体が利用可能か確認し、次にその経路からサブスクリプション用インターフェースにアクセスできるか確認します。使える接続がない場合は、検証可能な更新経路を先に確保してください。どちらの経路も失敗する場合は、発生時刻、ネットワーク環境、エラーメッセージをサービス提供元に伝えます。
Shadowrocketを購入したのに、Homeが空なのはなぜですか?
購入できるのはクライアントアプリであり、通信サービスのプランは含まれません。ご自身が契約しているサービス提供元のサブスクリプションがある場合は、Subscribeの手順でインポートしてください。アプリはAppleプラットフォームのみで配信され、主にiPhoneとiPadに対応しています。システム要件はApp Storeのページをご確認ください。