本記事では 3 つの点を整理します。手動更新の 2 つの入口(Home のプルダウン更新、サブスクリプション詳細画面の Update)、Settings → Subscribe にある Update on Open と Update via Proxy という 2 つのスイッチの役割の境界、そして更新に失敗したときに「ネットワーク → リンク → 内容」の順で 1 つずつ確認する方法です。プロバイダからサブスクリプションのリンクは受け取っているものの、更新が安定しないという方に向いています。
サブスクリプションの保存場所:Subscribe の項目と Config の違い
サブスクリプションのリンクはプロバイダが提供するもので、通常は token 付きのアドレスで、https://example.com/sub?token=xxxx のような形式です(ドメインと token はサンプル値です。ご自身のプロバイダが発行したアドレスに置き換えてください)。Shadowrocket では、これは Subscribe タイプの項目として追加します。画面下部のタブバーで Home に切り替え、右上の「+」をタップし、Type で Subscribe を選んでリンクを貼り付け、保存します。
保存が完了すると、Home リストにこのサブスクリプションが表示され、展開するとプロバイダが配信しているノードを確認できます。いわゆる「サブスクリプションの更新」とは、このアドレスへもう一度リクエストを送り、返ってきたノード一覧でローカルの内容を丸ごと置き換えることです。リンク自体は変わらず、内容はプロバイダが現在配信しているものが反映されます。
| 比較項目 | Subscribe(サブスクリプション) | Config(設定ファイル) |
|---|---|---|
| 格納する内容 | プロバイダが配信するノード一覧 | ルールと振り分けの設定(DOMAIN-SUFFIX / GEOIP / IP-CIDR / FINAL) |
| 追加する場所 | Home 右上の「+」→ Type で Subscribe を選択 | Config タブ → 右上の「+」でリンクを入力、またはテキストを貼り付け |
| 更新方法 | Home でプルダウン更新、またはサブスクリプション詳細画面で Update をタップ | Config リストでプルダウン更新 |
| 更新後の変化 | ノード名・数・パラメータがプロバイダの現在の配信内容で上書きされる | ルールセット全体が置き換わる |
Config と Subscribe は別々の経路です。Config はルールの設定ファイルで、DOMAIN-SUFFIX、GEOIP、IP-CIDR、FINAL といったキーワードはここに書きます。Subscribe はノードだけを保持します。サブスクリプションを更新してもルールファイルは一緒には更新されず、その逆も同じです。「ノードは変わったのに振り分けが変わらない」という場合は、まず片方しか更新されていないのではないかと確認してください。
サブスクリプションのリンク、ノード、通信量はすべてプロバイダから提供されます。Shadowrocket は App Store で買い切りのクライアントで、購入できるのはクライアント本体のみ、回線やサブスクリプションは含まれません。
手動更新:Home のプルダウン更新と詳細画面の Update
手動更新には 2 つの入口があり、どちらもサブスクリプションのアドレスへもう一度リクエストを送る点では同じです。一覧全体を更新するなら Home のプルダウン、1 件だけ更新するならサブスクリプション詳細画面の Update を使います。以下、実際の操作順に沿って説明します。
Home リストを開く
画面下部のタブバーで Home に切り替え、リストに Subscribe の項目があることを確認します。なければ右上の「+」をタップし、Type で Subscribe を選んでサブスクリプションのリンクを貼り付けます。
プルダウンでサブスクリプションを更新
リストを一番上までスクロールしてから下に引っ張り、指を離すと更新が始まります。項目の右側に更新中の状態が表示され、完了すると消えます。
詳細画面で Update をタップ
Subscribe の項目を開き、詳細画面で Update をタップすると、このサブスクリプションだけが更新され、リスト内の他の項目には影響しません。
ノード数を確認する
項目を展開し、ノード数がプロバイダから案内された数と一致するか照合します。数が合わない場合は、今回取得した内容が不完全だということです。
ノードを選んで接続する
ノードを 1 つ選び、上部の接続スイッチをオンにします。初回接続時は VPN 構成の許可が表示されるので、許可したあと Home に戻り、状態が Connected になっていることを確認します。
更新は差分のマージではなく全体の置き換えです。プロバイダが削除したノードはリストから消えます。このサブスクリプション配下で変更したメモ、ポート(例:443)、暗号化方式は、次回の更新で配信値に上書きされます。長期的に残したいカスタムパラメータは、手動追加のノードとして複製しておくことをおすすめします。サブスクリプション内の項目を直接編集するのは避けてください。また、更新時にこのサブスクリプションのノードへ接続していると、処理が現在の接続を中断することがあります。確実を期すなら、接続スイッチをオフにしてから更新してください。
結論:まず「取得できない」と「取得できたが内容が違う」を切り分ける
リストがまったく変わらずエラーが出る場合は取得できていないので、ネットワークとリンクを確認します。ノード数が減った、名前が意味のない文字列や案内文になった場合は、取得はできたが内容が正しくないので、プロバイダに連絡してサブスクリプションの状態を確認します。この 2 つの対処はまったく異なるため、混ぜて試すと時間を浪費するだけです。
起動時の自動更新:Settings → Subscribe にある 2 つのスイッチ
毎回手動でプルダウンしたくない場合は、自動更新に任せられます。入口は画面下部のタブバーの一番最後にある Settings です。Subscribe グループを展開すると、更新に直接関係する 2 つのスイッチがあります(以下では英語の項目名を使用します。バージョンによって文言が多少異なる場合があるため、お使いの端末に実際に表示される内容を優先してください)。
- Update on Open(起動時に更新):オンにすると、Shadowrocket を起動するたび、またはバックグラウンドから前面に戻るたびに、すべてのサブスクリプションのアドレスへ自動で更新リクエストを送信します。
- Update via Proxy(プロキシ経由で更新):オンにすると、サブスクリプションのリクエストが現在接続中のプロキシ経路を通ります。現在のネットワークからサブスクリプションのドメインに到達できないが、利用可能なノードはあるという場面に向いています。
選び方:現在のネットワークからサブスクリプションのドメインに直接接続できるなら、Update on Open だけをオンにすれば十分です。更新リクエストはノードを経由せず、回線の通信量も消費しません。サブスクリプションのドメインが現在のネットワークで遮断されている場合は、Update via Proxy も併せてオンにします。なお、Update on Open のきっかけは「アプリを開くこと」です。iOS ではアプリがバックグラウンドで定期的に通信するようにはなっていないため、サブスクリプションの鮮度は Shadowrocket をどれくらいの頻度で開くかにかかっています。更新に失敗した場合でも、リストには前回正常に取得できた内容が残り、空にはなりません。
結論:Update via Proxy は緊急用のスイッチ
これをオンにすると、サブスクリプションの更新は現在のプロキシ経路に依存します。ノードが正常なら更新はスムーズですが、ノード自体に問題があると更新も一緒に失敗し、エラー表示は通常のネットワーク障害と見分けがつきません。普段はオフにしておき、サブスクリプションのドメインに到達できないと確認できたときだけ一時的にオンにして、更新が終わったらオフに戻します。そうすれば切り分けの変数を 1 つ減らせます。
更新失敗時の確認手順:ネットワークから内容まで
トラブルシューティングは、やみくもに再試行を繰り返すところから始めないでください。ネットワークに到達できるか → リンクが有効か → 返ってくる内容がサブスクリプションか、の順で一通り確認します。エラーメッセージの原文自体が切り分けの手がかりになります。英語の文言はシステムのネットワーク層由来のものがほとんどなので、原因を推測するより、ラベルとして使うほうが早道です。
- ネットワークを変える:Wi-Fi とモバイル通信を一度入れ替え、現在のネットワークによるサブスクリプションドメインの遮断を除外します。
- リンクを確認する:サブスクリプションのリンクをそのままブラウザのアドレスバーに貼り付けて開き、返ってくるのがノード一覧のテキストか、Web ページやログインページ、エラー表示かを確認します。
- 経由して更新する:利用可能なノードがある場合は、まずノードに接続し、Settings → Subscribe の Update via Proxy をオンにして一度更新します。
- プロバイダに問い合わせる:ここまで問題がないのに失敗する場合は、エラーメッセージの原文とサブスクリプションリンクのドメインをプロバイダに送り、サブスクリプションの有効期限やドメイン変更の有無を確認します。
エラー:The Internet connection appears to be offline.
原因と対処:端末に利用可能なシステムネットワークがありません。機内モードがオフになっていない、Wi-Fi に接続していない、モバイルデータ通信がオフになっているなどが考えられます。まずシステムネットワークを復旧してから更新してください。サブスクリプションのドメインに到達できないだけでノードは使える場合は、Settings → Subscribe で Update via Proxy をオンにして再試行します。
エラー:A server with the specified hostname could not be found.
原因と対処:サブスクリプションアドレスのドメイン名解決に失敗しています。リンク内のドメインの綴り間違い、ドメインの停止、ローカル DNS の解決異常などがよくある原因です。リンクのドメインを 1 文字ずつ照合し、Wi-Fi とモバイル通信を一度入れ替えてみてください。それでも失敗する場合は、プロバイダにドメインが変更されていないか確認します。
エラー:The request timed out.
原因と対処:リクエストは送信されましたが、タイムアウトまでに応答がありませんでした。多くの場合、現在のネットワークでサブスクリプションのドメインが速度制限または遮断を受けています。まず利用可能なノードに接続し、Update via Proxy をオンにして更新してください。別のネットワーク環境で再試行するのも有効です。
エラー:The certificate for this server is invalid.
原因と対処:サブスクリプションアドレスの HTTPS 証明書がシステムに信頼されていません。期限切れ、自己署名証明書、途中で差し替えられたリクエストなどが考えられます。証明書の警告を無視して使い続けず、まずプロバイダに証明書の状態を確認するか、有効な証明書のサブスクリプションアドレスを発行してもらってください。
エラー:Failed to load subscription
原因と対処:リクエストは成功しましたが、返ってきた内容が正しいサブスクリプション形式ではありません。Web ページ、ログインページ、有効期限切れの案内などが返っていることがよくあります。リンクをブラウザに貼り付けて返却内容を確認し、リンクに token が欠けずに含まれているか、サブスクリプションが有効期限内かをプロバイダに確認してください。
エラーが出ないのにリストがまったく変わらない場合は、まずプルダウン操作が実際に発火しているかを確認します(リストを一番上までスクロールしてから下に引っ張る必要があります)。次に、別のサブスクリプションを更新していないかを確認します。Home には複数の Subscribe 項目を同時に置くことができ、プルダウン更新はそれらをまとめて更新しますが、詳細画面の Update は現在の 1 件だけに作用します。
よくある質問
以下はサブスクリプション更新の場面でよく聞かれる操作上の疑問です。回答はいずれも具体的な入口に対応しています。
同じサブスクリプションリンクが、別の端末では更新できるのに、この端末では失敗し続ける?
まずこの端末側のネットワークを切り分けます。Wi-Fi とモバイル通信を一度入れ替えてください。次に利用可能なノードに接続し、Settings → Subscribe の Update via Proxy をオンにして再試行します。それでも失敗する場合は、リンクに token が欠けずに含まれているかを確認します。プロバイダによっては同じ token の同時リクエストに制限があり、複数の端末で同時に更新すると拒否されることがあるため、数分あけてから試してください。
更新後にノード名が変わった場合、Config のルールはまだ有効ですか?
ルールは DOMAIN-SUFFIX、GEOIP、IP-CIDR といった条件で宛先アドレスを照合するもので、ノード名は参照しません。そのためほとんどのルールは影響を受けません。ただし、設定内で古いノード名を参照していた場合は、名前が変わると一致しなくなるため、設定を開いて指定し直す必要があります。
Update on Open をオンにしていると、起動のたびに通信して取得しますか?
はい。きっかけはアプリの起動、またはバックグラウンドから前面に戻ったときで、そのたびにサブスクリプションのアドレスへリクエストが 1 回送られます。サブスクリプションの内容があまり変わらない場合は、これをオフにして Home のプルダウンによる手動更新に切り替えると、リクエストのタイミングを管理しやすくなります。
サブスクリプションの更新で、手動で変更したノードのパラメータは上書きされますか?
はい。更新は全体の置き換えで、このサブスクリプション配下の項目は配信された内容が優先されます。変更したメモ、ポート、暗号化方式は、次回の更新後にプロバイダの値へ戻ります。長期的に残したい場合は、変更後のパラメータを手動追加のノードとして複製してください。
サブスクリプションリンクを別の iPhone にそのままコピーして使えますか?
技術的には可能ですが、リンク内の token はアカウントの認証情報と同じで、入手した人は誰でもプロバイダが配信するノード一覧を取得できてしまいます。転送、スクリーンショット、公開の場への貼り付けは、いずれも漏えいの原因になります。新しい端末で使いたい場合は、まずプロバイダに複数端末向けのプランがないか問い合わせてください。