サブスクリプションURLがある場合はSubscribe、サーバー1台分のパラメータだけがある場合はAdd Serverを使います。QRコードとクリップボードは情報を読み込む方法であり、必ずサブスクリプションとして追加されるわけではありません。この記事ではiPhone / iPadのHomeとConfigを中心に、情報の見分け方、保存、更新、確認方法を説明します。Mac(Appleシリコン/Intel)、Windows、Android、Linuxでも同じ項目を確認できます。ボタンの位置は各プラットフォームの画面でご確認ください。
サブスクリプション・サーバー情報・設定ファイルの違い
Shadowrocketで使う追加方法は、リンクの長さではなく、手元の情報の内容で決まります。サブスクリプションはサービス提供元から取得するもので、通常はサーバー一覧を返すHTTPSアドレスです。サーバー共有リンクは1つの接続先を示し、設定ファイルはルール、DNS、ポリシーなどの動作を設定します。この3種類を同じ入力欄に入れると、「読み込みは成功したのにサーバー一覧に表示されない」ことがあります。
Homeではサーバーの確認・選択と接続の操作を行います。Configでは設定ファイルと関連するSubscribe操作を管理し、Settingsではアプリの設定を変更します。SubscribeはAdd ServerのTypeとして選択し、Homeに追加することもできます。操作時は画面の見出しとTypeを確認し、設定ファイルのリモートURLをサーバーのサブスクリプションとして扱わないようにしてください。
| 手元にある情報 | 見分けるポイント | 適した追加方法 |
|---|---|---|
| サーバーのサブスクリプションURL | サービス提供元がサブスクリプションとして案内し、取得すると複数のサーバーが返される | Subscribeから追加・更新 |
| サーバー1台分の共有リンク | 一般的な先頭部分はss://、vmess://、vless://、trojan://です | クリップボードまたはQRコードから読み込み、保存後にTypeを確認 |
| サーバーパラメータ一覧 | アドレス、ポート、認証情報、通信パラメータが個別に記載されている | Add Serverで手入力 |
| ルール設定ファイル | [General]、[Rule]などの設定セクションが含まれる | Configで管理し、サーバー1台分の情報として入力しない |
HTTPSはリンクが暗号化通信を使うことを示すだけで、サブスクリプションとは限りません。サービス提供元の管理画面、説明ページ、サブスクリプションURLはいずれもHTTPSで始まる場合があります。ブラウザーで開いているページのURLではなく、サブスクリプションとして明示されたアドレスをコピーしてください。
方法1:Subscribeで追加し、更新元を保持する
Subscribeは、サーバー一覧を定期的に同期したい場合に適しています。元のサブスクリプションURLを保持するため、後から一覧を再取得できます。サーバーを1台ずつ手入力した場合、サービス提供元が追加・変更したサーバーは自動で反映されません。初めて操作する前に、Homeにある既存のグループと選択中のサーバーを控えておくと、すでにあった情報を新規追加分と取り違えずに済みます。
-
リンクをコピーする
サービス提供元からサブスクリプションURLを取得し、ページのコピー機能を使います。先頭や末尾に空白、改行、日本語の句読点が入っていないか確認し、疑問符以降のクエリパラメータを省略しないでください。
-
追加画面を開く
ConfigのSubscribeから操作する場合は、対象となるサブスクリプションを確認してください。サーバーのサブスクリプションをHomeに追加するには、Home → 右上の「+」→ Add Server → Type → Subscribeと進みます。
-
URLを入力する
サブスクリプションURL全体をURL欄に貼り付け、識別しやすいメモを入力します。URL内のtokenだけを取り出してPasswordに入力したり、HTTPSアドレス全体を通常のサーバーのAddressに入力したりしないでください。
-
保存して更新する
保存後にHomeへ戻り、該当するサブスクリプショングループとサーバー項目が表示されているか確認します。再取得する場合はHomeで下に引っ張って更新し、入力欄にURLが残っているかだけでなく、更新結果も確認してください。
-
接続を確認する
新しいグループからサーバーを1台選び、Connectivity Testを実行します。一覧に表示された時点でサブスクリプションの解析は完了しています。テストに応答があれば、選択したサーバーが現在のネットワークで応答できることも確認できます。
サブスクリプションURLが漏えいした場合は、サービス提供元で認証情報をリセットまたは変更してから、Shadowrocketに保存したURLを更新し、再取得してください。端末上の一覧を削除しただけでは、古いリンクは無効になりません。
方法2:Add Serverでサーバー情報を手入力する
手入力は、パラメータ一覧だけがある場合、特定の接続先を確認したい場合、または一時的なテスト項目を作成したい場合に適しています。Home → 右上の「+」→ Add Serverと進み、まずTypeを選んでから対応する項目を入力します。Typeによって認証情報や通信パラメータの意味が異なるため、保存するためだけに適当に切り替えないでください。
以下の2つのカードは入力項目を確認するための例であり、接続には使えません。ポート443は例として指定した値で、すべてのプロトコルに共通する固定ポートではありません。実際の設定ではサービス提供元の情報を項目ごとに使用してください。
Shadowsocksの入力例
- Type
- Shadowsocks
- Address
- ss.example.com(説明用ドメイン)
- Port
- 443(説明用ポート)
- Method
- aes-128-gcm(形式の例)
- Password
- demo-only-not-valid(無効な例)
MethodとPasswordはサーバー側の設定と一致させる必要があります。プロトコル名だけから推測しないでください。
Trojanの入力例
- Type
- Trojan
- Address
- trojan.example.com(説明用ドメイン)
- Port
- 443(説明用ポート)
- Password
- demo-only-not-valid(無効な例)
- SNI
- tls.example.com(説明用名称)
SNIはTLSハンドシェイクで使用します。個別に入力するかどうか、どの値を使うかはサービス提供元のパラメータに従ってください。
VMessとVLESSではUUIDが必要となる場合が多く、WebSocketなどの通信設定が追加で必要なこともあります。WebSocketのHostとPathはサーバーのAddressとは別の項目です。Pathのスラッシュや大文字・小文字もそのまま保持してください。Hysteria2とWireGuardにはそれぞれ固有の認証情報や鍵の項目があり、ShadowsocksのMethodとPasswordの組み合わせは使えません。
- Addressには指定されたホスト名またはIPアドレスだけを入力し、
https://を自分で付け加えないでください。 - ポートにはサービス提供元が指定した数値を入力してください。TLSを使うからといって、すべて443に変更する必要はありません。
- UUID、鍵、SNI、通信パラメータが不足している場合は、推測せずサービス提供元の情報を確認してください。
- 保存後、メモとTypeを確認してから項目を選択し、テストします。個別項目を変更しても、サブスクリプション元には反映されません。
方法3:QRコードを読み込む前に内容を確認する
QRコードの読み込みは、別の端末に表示した情報を現在の端末で読み取る場合に便利です。QRコードは文字情報を格納するもので、サーバー1台分のリンク、サブスクリプションURL、またはログインページのURLが含まれていることがあります。読み取りに成功しても、サーバーの追加が完了したとは限りません。
- 別の画面でサービス提供元のQRコードを開き、全体が見えるように表示してください。拡大して端が切れないように注意します。
- Homeの左上にあるスキャン機能からカメラを起動します。初回はカメラへのアクセスを許可してください。許可しなかった場合は、システム設定のShadowrocketの権限画面から変更できます。
- 読み取り後に表示された内容を確認します。Add Serverが表示された場合はType、Address、Portを確認してください。サブスクリプションURLが読み取られた場合は、Subscribeとして保存されていることを確認します。
- 保存後にHomeへ戻り、追加されたものが個別の項目かサブスクリプショングループかを確認してから、項目を選択してテストします。
読み取りの問題を調べるために、QRコードの画像を公開しないでください。QRコードにはパスワード、UUID、サブスクリプションtokenが直接含まれている場合があります。周囲の文字を隠しても、QRコード内の認証情報が隠れるわけではありません。
方法4:クリップボードから完全なリンクを読み込む
クリップボードからの読み込みは、同じ端末でブラウザー、サービス提供元のページ、Shadowrocketを切り替えて使う場合に便利です。元の共有リンクをコピーしてからHomeに戻り、クリップボードから読み込むか、クリップボードの内容を検出したときに表示される読み込み案内を確認します。貼り付けの許可を求められた場合は、今回の操作で読み込むときに許可してください。
説明文、引用符、コードブロックまで一緒にコピーしないでください。チャット画面ではリンクが複数行に折り返されて見えても、元のテキストは1行の場合があります。手作業で行ごとに選択すると文字が抜けやすいため、サービス提供元のコピー機能を使ってください。エンコードされた文字は保持し、%2Fなどを別の文字に置き換えないでください。
ss://、vmess://、vless://、trojan://は、サーバー1台分の共有によく使われます。実際に解析できるかどうかは、リンク全体の形式によります。- 通常のHTTPSサブスクリプションURLは、SubscribeのURL欄にそのまま貼り付けられます。自動認識されなくても、アプリを何度も切り替える必要はありません。
- 複数のリンクをコピーした場合は、読み込み後に項目数とTypeを1つずつ確認してください。初めて問題を切り分けるときは、まず1件だけで確認するのがおすすめです。
- 読み込み後、クリップボードに一般的なテキストをコピーしておくと、認証情報を別の場所に誤って貼り付けるリスクを減らせます。
読み込み後に更新・接続・Global Routingを確認する
読み込み、更新、接続、通信の振り分けはそれぞれ別の段階です。サブスクリプションから一覧を取得できても、各サーバーへの接続が保証されるわけではありません。Connectivity Testに応答があっても、すべてのサイトに想定どおりのルールが適用されるとは限りません。問題を調べる際は同じサーバーと同じテスト先を使い、設定を一度に1つだけ変更してください。
- 一覧を確認:Homeでサブスクリプショングループにサーバーが表示されているか確認し、テストする項目を選択します。サブスクリプションURLだけが保存されてサーバーがない場合は、まず更新結果を確認してください。
- 接続を確認:Connectivity Testを実行してから、Homeの接続スイッチをオンにします。iPhone / iPadで初めて接続する際は、システムの案内に従ってVPN構成の追加を許可してください。
- ルーティングを確認:Home → Global Routingを開きます。Proxyは通信をプロキシ経由にし、Directは直接接続します。Configは現在の設定ルールに従い、Sceneは設定済みのシーンに従って処理します。Sceneを固定のグローバルプロキシモードとして扱わないでください。
- ルールを確認:Configを使う場合は、使用中の設定とポリシー参照が有効か確認してください。ルールは記載順に照合されます。サーバーのサブスクリプションを更新しても、誤ったポリシー名は自動修正されません。
- 最後に自動接続を有効化:手動テストが安定してから、Settings → On Demandの利用を検討してください。On Demandは条件に応じた接続動作を管理する機能で、サブスクリプションのダウンロードやサーバーの有効性確認を行うものではありません。
たとえば、DOMAIN-SUFFIX,example.com,DIRECTは、該当ドメインとそのサブドメインをDIRECTにします。IP-CIDR,192.0.2.0/24,DIRECTは、アドレス範囲を対象とするルールの例です。GEOIPはIPの地理情報に基づいて照合し、FINALは他のルールに一致しない場合のフォールバックとして使います。サーバーを選択していても、DIRECTに一致した通信はそのサーバーを経由しません。これはルールの適用結果であり、必ずしも読み込み失敗ではありません。
サブスクリプションの更新・読み込みトラブルに関するFAQ
貼り付けてもサーバーが追加されません。リンクが間違っていますか?
まず、元の情報がサブスクリプションか、サーバー1台分の共有リンクかを確認します。HTTPSのサブスクリプションURLはHome →「+」→ Type → SubscribeのURL欄に入力して保存し、更新してください。ログインページのURLはサブスクリプションとして使えません。更新結果がWebページの内容だった場合は、サービス提供元からサブスクリプションURLを取得し直してください。
サブスクリプションの更新がタイムアウトします。削除して再インストールすべきですか?
まず現在のネットワークからサブスクリプションURLにアクセスできるか、URLが完全かを確認してください。利用可能なサーバーがすでにある場合は、接続してからSettings → SubscribeのUpdate via Proxyを確認し、必要に応じて有効にしてHomeで更新します。この方法では既存のプロキシが利用できる必要があるため、接続手段がまったくない状態での初回読み込みには使えません。
更新時に401または403が表示された場合は?
この種のステータスは通常、サブスクリプションのサーバーがリクエストを拒否したことを示します。tokenが欠けていないか、リセットされていないか、アカウントに必要な権限があるか確認してください。サービス提供元に確認してからURLを差し替えます。完全なサブスクリプションURLを知らない人に調査目的で渡さないでください。問い合わせる際は、認証情報を除いたエラー情報だけを伝えてください。
手動で変更した項目が更新後に元に戻るのはなぜですか?
サブスクリプションを更新すると、サーバーから返された内容に基づいて再同期されるため、サブスクリプション内の項目に加えた変更が上書きされることがあります。テスト用のパラメータを保持するには、個別の項目を別に作成して分かりやすいメモを付け、サブスクリプション更新後に比較してください。個別項目が残っていることを、サブスクリプションの更新成功と取り違えないようにしてください。
接続済みなのにWebページが開かない場合は?
まずHomeで実際に選択されているサーバーを確認し、Connectivity Testを実行します。次にGlobal RoutingがDirectになっていないか、Configのルールで通信が別のポリシーに振り分けられていないか確認してください。タイムアウト、DNSエラー、証明書エラーなどの具体的な表示を記録し、ネットワーク、名前解決、TLSパラメータをそれぞれ確認します。すべての項目を一度に変更しないでください。
更新前に利用可能な個別のテスト項目を残しておくと、「サブスクリプションURLから取得できない」のか「サーバー自体に到達できない」のかを切り分けやすくなります。特定の項目だけが失敗する場合は、同じサブスクリプションの他の項目と比較します。サブスクリプション全体を取得できない場合は、サーバーのポートを1つずつ変更するのではなく、URL、アクセス権限、更新に使うネットワークを優先して確認してください。