この記事では、iPhone / iPad版Shadowrocketの画面を例に、すでに自分のサービス情報とサブスクリプションURLをお持ちの方向けに手順を解説します。まずサーバーのサブスクリプションとConfigのルール設定を区別し、Subscribe、Add Server、QRコード、クリップボードのいずれかから読み込みます。最後に、一覧、更新結果、Connectivity Testで読み込みと接続をそれぞれ確認します。他のプラットフォームでは、実際の画面で同名の機能を探してください。モバイル版のボタン配置をそのまま当てはめないでください。
SubscribeのサブスクリプションとConfigの設定を区別する
iPhone / iPadでは、サーバーのサブスクリプションとルール設定は別の種類の情報です。サーバーのサブスクリプションはサーバー項目を取得するためのもので、Configはルール設定ファイルを管理します。「設定用リンク」と表示されていても、名前だけで読み込み先を決めず、リンクから実際に返される内容を確認してください。この記事ではサーバー情報やサブスクリプションの提供・販売・推奨は行いません。以下の手順は、すでにご自身でお持ちの情報を使うことを前提としています。
iPhone / iPadでサーバーのサブスクリプションを追加するには、通常Homeの右上にある「+」からAdd Serverを開き、TypeをSubscribeに設定します。サブスクリプションの読み込み先がすべてConfigページだとは限りません。Configで管理するリモート設定とサーバーのサブスクリプションは用途が異なり、どちらもHTTPS URLを使う場合でも互換性はありません。
- サーバーのサブスクリプション:通常はHTTPS URLで、読み込み可能なサーバー情報を含む応答が返されます。URLだけでは、応答形式に互換性があるかどうかは判断できません。
- 単一サーバーの共有リンク:
ss://、vmess://、vless://、trojan://などで始まり、個別サーバーのパラメーターを表します。通常のWebページのURLではありません。 - ルール設定:
[General]や[Rule]などのセクションが含まれる場合があります。これをサーバーのサブスクリプションとして読み込んでも、Configで設定を選択して有効にする操作の代わりにはなりません。
Subscribe:既存のサブスクリプションを読み込み、一覧を確認する
iPhone / iPadで互換性のあるサーバーのサブスクリプションをお持ちの場合、Subscribeを使うと、登録元を保持したままサーバー項目を取得できます。以下の架空のURLは形式を示すだけで、接続には使用できません。実際に入力する際は、クエリパラメーターを含め、ご自身が持つURLを省略せずに使用してください。tokenを削除したり、大文字・小文字を変更したりしないでください。
https://example.com/sub?token=xxxx
-
追加画面を開く
Home → 右上の「+」をタップしてAdd Serverを開きます。ルールファイルを編集するConfig画面ではなく、サーバー追加画面であることを確認してください。
-
サブスクリプションを選択する
TypeでSubscribeを選び、ご自身のサブスクリプションURLをURL欄に入力します。メモ欄がある場合は見分けやすい名前を入力できますが、認証情報は名前に含めないでください。
-
保存して読み込む
URLの前後に空白や改行がなく、クエリパラメーターが欠けていないことを確認してから保存します。Homeに戻り、読み込みが完了するまで待ちます。再試行する場合は、そのサブスクリプションの更新操作を使うか、下に引いて更新してください。
-
サーバー項目を確認する
該当するサブスクリプションを展開し、サーバー項目が表示されることを確認してから、登録済みの項目を選びます。サブスクリプション名が表示されているだけでは、内容の読み込み成功やVPN接続を意味しません。
Add Server:サブスクリプション全体ではなく、プロトコルごとに入力する
iPhone / iPadでサーバーアドレス、ポート、認証情報だけがある場合は、Home →「+」→ Add Serverから手動で入力します。Typeは手元の情報に指定されたものを選んでください。Shadowsocks、VMess、VLESS、Trojan、Hysteria2、WireGuardでは各項目の意味が異なります。Typeを変更するだけで同じ認証情報を別のプロトコルに変換することはできません。
Type:Subscribe
おすすめ互換性のあるサブスクリプションをお持ちの場合は、この方法を使うと登録元を保持し、更新による一覧の変更を取得できます。ここでの「おすすめ」は、既存のサブスクリプションを操作する方法として適しているという意味で、サービスの選択を推奨するものではありません。
適したケース:サブスクリプションURLをすべて把握しており、後から一覧を更新したい場合
Type:使用するプロトコル
Add Serverで手元の情報に指定されたプロトコルを選び、アドレス、ポート、認証情報、トランスポート設定を一つずつ入力します。手動で追加した項目は、元のサブスクリプションが変更されても自動更新されません。
適したケース:単一サーバーのパラメーターがすべてそろっており、項目ごとに確認しながら入力したい場合
Trojanの入力例(架空の値)
- Type
- Trojan
- Address
- example.com
- Port
- 443
- Password
- example-password-not-valid
- SNI
- example.com
項目間の関係を示す例であり、接続には使用できません。実際のポート、SNI、TLSの要件は、お手元の情報に従って入力してください。
手動入力時の確認項目
- Address
- ホスト名またはIPアドレスのみを入力し、https://は付けない
- Port
- サーバーのポートを入力する。サブスクリプションURLのポートをそのまま使わない
- 認証情報
- Password、UUID、キーはプロトコルに応じて入力する
- トランスポート設定
- Path、Host、SNIは、それぞれ手元の情報と照合する
項目を空欄にできるかどうかは、プロトコルとサーバー設定によって異なります。確認の代わりにプロトコルを何度も切り替えないでください。
各プラットフォームで手動入力する際、TLSのSNIとトランスポート層のHostは用途が異なる場合があります。手元の情報で同じ値が指定されていても、それぞれ対応する欄に入力してください。証明書エラーが発生した場合は、ホスト名、デバイスの日時、情報の有効性を確認してください。証明書の検証を無効にすることを通常の対処方法にしないでください。
QRコード:まず中身を確認する
iPhone / iPadでは、Home上部のスキャン機能でQRコードの内容を読み取れます。QRコードはテキストを格納する手段にすぎず、サーバー情報が含まれているとは限りません。読み取り結果は、単一サーバーの共有リンク、サブスクリプションURL、説明用のWebページなどさまざまです。内容を確認してから保存するか判断してください。
- 別のデバイスで、ご自身が持つQRコードを表示します。画像を鮮明に保ち、四隅がすべて見えるようにしてください。QRコードの中央部分だけを切り出さないでください。
- Homeのスキャン機能を開き、初回はシステムの案内に従ってカメラへのアクセスを許可します。カメラを使えない場合は、システム設定でShadowrocketのカメラ権限を確認してください。
- 読み取り後、プロトコルの種類またはURLを確認します。単一サーバーのリンクは、対応するサーバー情報の確認画面に進みます。HTTPS URLの場合は、サブスクリプションなのか通常のWebページなのかをさらに確認してください。
- 保存後にHomeへ戻り、新しい項目が追加されたことを確認します。スキャンでWebページが開いただけで項目が追加されない場合は、何度もスキャンせず、元の情報を確認してQRコードの用途を調べてください。
クリップボード:リンク全体をコピーして、読み取り結果を確認する
iPhone / iPadでは、テキスト形式の共有リンクをすでに入手している場合にクリップボードから読み込めます。まずプレーンテキストをコピーしてからShadowrocketを開きます。読み取りや読み込みの確認が表示されたら、内容を確認して確定してください。ペーストの許可を求められるか、アプリが自動認識するかは、システム権限や実際の画面によって異なります。アプリを開いて何も表示されないからといって、リンクが無効とは限りません。
- テキスト全体をコピー:チャットアプリで短縮表示されたURLの一部だけをコピーしないでください。システムのテキスト選択機能で末尾のパラメーターが欠けていないか確認できますが、外部のWebサービスに貼り付けて確認しないでください。
- ペースト権限を設定:システムからペーストを許可するか尋ねられた場合は、コピー元を確認してから許可します。以前に拒否した場合は、システム設定でアプリのペースト権限を確認してください。
- 種類を確認:単一プロトコルのリンクは、生成されたサーバー情報の各項目を確認します。HTTPSのサブスクリプションURLが自動認識されない場合は、Home →「+」→ Type → Subscribeに進み、URL欄に手動で貼り付けてください。
- 保存後に確認:通知が消えたかどうかだけでなく、Homeの一覧に項目があることを確認します。同じ登録元が複数できないよう、再読み込みの前に既存の項目を確認してください。
各プラットフォームで情報をコピーする際は、行末の改行、全角記号、チャットアプリが付加した説明文によって解析に影響が出る場合があります。URL内の複雑に見える文字を適当に削除せず、元のリンクをコピーし直してください。パーセントエンコード、スラッシュ、等号も有効な内容の一部である可能性があります。
読み込み後は、一覧・接続・ルールの3段階で確認する
iPhone / iPadでは、「読み込み完了」は情報が保存または解析されたことを示すだけで、接続成功を意味しません。まずHomeの一覧を確認し、次にConnectivity Testを実行して、最後に実際のリクエストがどのルートを通るか確認してください。初回接続時にVPN構成の追加を求められた場合、接続には該当する権限を確認して許可する必要があります。
| 確認段階 | 確認する場所 | 確認結果から判断できる範囲 |
|---|---|---|
| 情報の解析 | Homeに表示されるサブスクリプションのグループとサーバー項目 | 項目があれば解析済みですが、サーバーに現在接続できることの証明にはなりません。 |
| 接続テスト | Home → Connectivity Test | テスト結果は選択した方式によって異なり、実際の通信の代わりにはなりません。 |
| ルーティングの選択 | Home → Global Routing | Config、Proxy、Direct、Sceneはルーティングモードであり、サブスクリプションの形式ではありません。 |
iPhone / iPadでGlobal RoutingにConfigを選ぶと、リクエストは現在有効な設定のルールに従って処理されます。Proxyは通常、対象となるトラフィックをプロキシポリシーに通すために使います。Directは直接接続、Sceneは設定済みのシーンに従った処理です。問題を調べるときは、まず現在の設定を記録し、一度に一つだけ変更して確認後に元へ戻してください。サブスクリプション、ルール、ルーティングモードを同時に変更しないでください。
[Rule]
DOMAIN-SUFFIX,example.com,PROXY
IP-CIDR,192.168.0.0/16,DIRECT
GEOIP,CN,DIRECT
FINAL,PROXY
Configを使うプラットフォームでは、以下はルール構文の例にすぎず、既存ファイルをそのまま置き換えられる完全な設定ではありません。ルールは上から順に照合され、DOMAIN-SUFFIXはドメインのサフィックス、IP-CIDRはアドレス範囲、GEOIPはIPアドレスの地域情報に基づいて判定します。FINALは末尾に置いて、他のルールに一致しない場合に適用します。サブスクリプションを更新しても、ルールの順序の誤りは自動修正されません。ルールに一致しないからといって、サブスクリプションURLに問題があるとは限りません。
更新失敗時やよくある問題への対処手順
どのプラットフォームでも、サブスクリプションの更新では登録元に再度リクエストを送り、応答を解析します。一方、サーバーへの接続では保存済みの項目を使用します。この2つは別の処理です。更新に失敗しても古い項目が残る場合があります。まず現在の一覧とエラー内容を記録し、すぐにサブスクリプション全体を削除しないでください。原因を特定せず、更新ボタンを何度も押すことも避けてください。
Subscribeを保存したのに、一覧にサーバーが表示されない場合
まずURLが完全か確認し、次に更新結果を確認してください。ログインページ、HTML形式のエラーページ、または互換性のない形式が返されると、HTTPSリクエストが成功してもサーバー項目は作成されません。HTTP 401または403が表示される場合は、アクセス認証情報と権限の状態を確認してください。404の場合はパスを確認します。詳細な原因は、応答内容と元の情報の説明に従って判断してください。
サブスクリプションは更新できるのに、Connectivity Testが失敗する場合
この場合は、サブスクリプションの読み込みとサーバー接続を分けて確認してください。まず選択中の項目、ポート、プロトコル設定、デバイスの日時、現在のネットワークを確認し、他の既存項目のテスト結果も確認します。サブスクリプションURLがHTTPSの443ポートを使っていても、すべてのサーバーが443ポートを使うとは限りません。
更新後に項目が変わったり、手動変更が消えたりする場合
サブスクリプションの内容は登録元から返される応答によって決まり、更新時に項目が再作成されることがあります。保持したい個別の変更は、あらかじめ記録し、サブスクリプションから生成された項目と独立して手動追加した項目を区別してください。手動で変更したパラメーターがその後の更新でも維持されるとは限りません。また、項目数の変化だけを根拠に、アプリが情報を失ったと判断しないでください。
読み込み後に接続が自動で再開されるか確認する
iPhone / iPadでは、まずSettings → On Demandを確認し、次にシステムのVPN設定でオンデマンド接続の状態を確認してください。On Demandは条件に応じて接続を開始するかどうかを制御しますが、サブスクリプションの内容を修正する機能ではありません。テストのために一時的にオフにする場合は、元の条件を記録し、テスト後に必要に応じて元に戻してください。
- 確認手順:情報の種類を確認 → 読み込み方法と入力項目を確認 → 更新結果を確認 → 既存項目で接続テスト → ルーティングルールを確認。
- 問い合わせ時は、機密情報を削除したエラーメッセージ、読み込み方法、操作手順を共有できます。URLのクエリに含まれる認証情報、Password、UUID、秘密鍵、QRコードの内容は削除してください。
- ネットワークを切り替えて再テストする場合は、ネットワーク環境を記録してください。一度の成功または失敗を、すべてのネットワーク環境に当てはまる結論として扱わないでください。