公式ガイド · サブスクリプション・サーバー情報をお持ちの方向け

Shadowrocketのサブスクリプション・サーバー管理

サブスクリプションURL、サーバー項目、Configを区別してから、インポート、更新、整理を行いましょう。アプリは買い切りですが、接続用サーバーが付属するわけではありません。

本ページでは、管理に関する8つのテーマを取り上げ、操作の根拠、各項目の役割、トラブル対処の手順を解説します。初めて操作する場合は、まずクイックスタートガイドを読み、接続を一度確認してから、該当する章で詳細を確認してください。

  • ご自身のサブスクリプションをお持ちの方
  • アプリID 932747118
  • 入手先 App Store

Shadowrocketは主にiPhoneとiPadで使用できます。本ページではサーバーやサブスクリプションの提供・販売・推奨は行っていません。アプリの入手方法と正規品の確認については正規版の入手方法をご覧ください。システム要件はApp Storeの掲載内容をご確認ください。

[Subscribe]サブスクリプションをインポート

サブスクリプションURLと初回インポートの確認

サブスクリプションはサーバー一覧を再取得するためのURLです。個々のサーバーやルール設定ファイルとは異なります。

入力内容の用途を確認する

インポートする前に、お手元の完全なサブスクリプションURLを用意し、サービス提供元がShadowrocket用として案内していることを確認してください。URLのパス、クエリパラメーター、トークンは、取得する一覧を決めるために組み合わされている場合があります。ドメイン部分だけでは不十分なことがあります。ページタイトルやURLの長さだけで用途を判断せず、アカウント案内ページ、ログインページ、更新手続きページのURLをサブスクリプション欄に入力しないでください。ページにアクセスできることと、サブスクリプションとして解析できることは別です。

サーバー項目には接続に必要なプロトコルやパラメーターを保存し、サブスクリプションはリモートから項目を取得します。ConfigはルールやDNSなどの動作を制御します。これらは同時に存在できますが、互いに代用できるものではありません。インポート後にサーバー一覧が表示されても、取得と解析が完了したことを示すだけです。選択中のサーバーに接続できることや、ルールが想定どおりに通信を処理することまでは確認できません。

HomeからSubscribeを追加する

Homeで追加メニューを開き、Add Serverに進んで、TypeからSubscribeを選びます。実際のメニュー位置はアプリ内の表示をご確認ください。URL欄に完全なアドレスを貼り付け、見分けやすいメモを入力して保存します。サブスクリプションの取得や更新を求められた場合は、画面の案内に従ってください。操作中はネットワークに接続できることを確認し、処理を待つ間に同じURLを続けて追加しないようにしましょう。似た名前のグループが複数作成されるおそれがあります。

保存前に、URLの先頭や末尾に空白、改行、引用符、日本語の句読点が混ざっていないか確認してください。チャット上で折り返された長いURLも、コピーすれば欠けないとは限りません。スクリーンショットから文字を読み取る場合は、文字が誤認識されることがあります。特に「?」以降の内容、大文字・小文字を区別するトークン、パーセントエンコードを確認してください。URLはアクセス情報です。形式確認のために見知らぬウェブサイトへ貼り付けないでください。

https://example.com/sub?token=xxxx

以下は形式の例であり、実際に利用できるサブスクリプションではありません。実際のURLはご利用中のサービス提供元から入手してください。例では「?」以降のtokenがクエリパラメーターを示していますが、すべてのサブスクリプションで同じパラメーター名が使われるわけではありません。識別情報がパスに含まれるURLもあります。確認時は元の形式を維持し、見た目を整えるために一部を削除したり、例のパラメーターを独自に追加したりしないでください。

保存後に4項目を確認する

初回の取得が完了したら、サブスクリプショングループが表示されているか、サーバー項目が存在するか、プロトコルが手元の情報と一致するか、メモでグループを見分けられるかを順に確認してください。一覧が空の場合は、元のURLを残したままアプリのメッセージを確認し、サービス提供元が登録先を変更していないか問い合わせてください。すぐに各サーバーを編集したり、古い一覧を削除したりせず、インポートの失敗とサーバー接続の失敗を分けて対処しましょう。

一覧が正常に表示されても、見覚えのない名前が含まれている場合は、接続品質や所在地を示すものと決めつけず、サブスクリプションの案内と照らし合わせてください。メモはサブスクリプションの内容に応じて設定され、次回更新で変わることがあります。項目を追跡する必要がある場合は、表示順だけでなく、所属するサブスクリプションとプロトコルも記録してください。

[Check]

サブスクリプションのインポート、サーバーのテスト、実際のリクエストは、それぞれ別の確認段階です。順に確認し、いずれか一つでほかの確認を済ませたことにしないでください。

解析に失敗した場合は、まずURL全体と現在のネットワークを確認し、取得内容がサブスクリプションデータかどうかを確かめてください。リモートからログイン案内、エラーページ、空の内容が返された場合、リクエストに応答があってもサーバー一覧は作成できません。詳しくはサブスクリプションが空・解析に失敗する場合の確認方法をご覧ください。エラー文は残し、他の人に相談する際は完全なトークンを共有しないでください。

同じサブスクリプションがすでにある場合は、重複してインポートせず、既存の項目を更新してください。新しいURLを試す場合は、異なるメモを付けた一時グループを作り、元のグループを比較用に残しておきましょう。新しい一覧が完全で、実際のリクエストも成功することを確認してから、古い項目を削除するか判断してください。この順序なら、リモートの内容変更とアプリ内の操作を切り分けやすくなり、誤削除後に原因が分からなくなる事態を防げます。

[Add Server]サーバーを手動で追加

プロトコルごとに接続項目を確認

手動入力は、サーバーのパラメーターがすべてそろっている場合に適しています。まずTypeを選び、各項目を案内どおりに入力してください。不足情報を推測で補わないようにしましょう。

アドレス、認証情報、通信設定を分けて確認

Add Serverでは、Typeによって後続の項目の意味が決まります。同じアドレスとポートでも、プロトコルが違えば自動的に互換性があるわけではありません。サーバー情報を確認し、実際の種類に応じてShadowsocks、VMess、VLESS、Trojanなどを選んでから、サーバーアドレスとポートを入力してください。サーバーアドレスは通常、ドメイン名またはIPアドレスです。共有リンク全体をアドレス欄に貼り付けたり、ドメイン名の後ろにパスやメモを付けたりしないでください。

ポート欄には、サービス提供元が指定した数字だけを入力します。TLSという表記を見てよく使われるポートを決めつけたり、プロトコル名からウェブ上の例をそのまま流用したりすると、余計な不確定要素が増えます。パスワード、UUID、暗号化方式などの認証情報も、元の値どおりに入力してください。見た目が似た文字もあるため、手入力よりコピーのほうが確実です。コピー後も先頭と末尾の空白を確認し、入力方式によって英数字の記号が全角に置き換わっていないか注意してください。

プロトコル主な確認項目混同してはいけない項目
Shadowsocksアドレス、ポート、暗号化方式、パスワード暗号化方式はサーバー側の設定と一致させます。パスワードとUUIDは別の情報です。
VMess / VLESSアドレス、ポート、UUID、通信方式、TLSパラメーターUUIDが同じでも、プロトコルの種類を入れ替えることはできません。
Trojanアドレス、ポート、パスワード、TLS、SNI接続先アドレスと証明書に使用される名前は異なる場合があります。
Hysteria2アドレス、ポート、認証情報、TLS関連パラメーター該当するプロトコルのパラメーターを確認し、他の種類の項目を流用しないでください。
WireGuard鍵、接続先、アドレス、ルーティング関連パラメーター秘密鍵は機密情報です。通常のメモとして共有しないでください。

TLS、SNI、通信パラメーターの役割

接続アドレスはサーバーを特定するためのものです。SNIは通常、TLSハンドシェイクで使用する名前の選択に関わり、証明書の検証ではサーバーの身元を確認します。それぞれの役割は異なり、互いに置き換えられません。案内にSNIが明記されている場合は、その値を入力し、アドレス欄の値を機械的にコピーしないでください。IPアドレスで接続していても、証明書がドメイン名に対応している場合があります。名前の不一致や証明書エラーが発生した場合は、まず情報を確認してください。検証を無効にすることを通常の対処方法にしないでください。

通信設定のHostやPathなども、接続アドレスと同じとは限りません。Pathの先頭のスラッシュ、大文字・小文字、クエリ部分が重要な場合があります。Hostは該当するアプリケーション層のリクエストに使われることがあります。選択した通信方式でこれらのパラメーターが必要な場合に限り入力してください。サブスクリプションURLのパスをサーバーの通信設定へ移さないようにしましょう。どちらにもスラッシュが含まれることがありますが、まったく別のリクエストに使われます。

Trojanを例にすると、アドレス、ポート、パスワードは接続先と認証情報に関わり、SNIと証明書の検証はTLSに関わります。パスワードが正しくても、TLS設定が正しいとは限りません。反対に、ハンドシェイクに成功しても認証済みとは限りません。トラブル対処では項目ごとに確認し、パスワード、アドレス、SNIを一度に変更しないでください。各項目の詳しい説明はTrojanのパラメーター設定ガイドをご覧ください。

保存後は一度に一項目ずつ確認

メモには用途や情報の入手元を記録し、パスワード、トークン、秘密鍵を含めないようにしてください。保存後は一覧に戻り、プロトコルとアドレスが誤って変更されていないことを確認してから、その項目を選択してテストします。失敗した場合は元の情報と一項目ずつ比較し、確実に誤りと分かったものだけを修正してください。推測した値を次々に試すと原因が分かりにくくなり、正解に近い設定を上書きするおそれもあります。

サブスクリプション内の項目と比較する場合は、独立した手動テスト用項目を作成できます。ただし、サブスクリプション管理下の項目を直接変更しないでください。後続の更新で変更が上書きされたり、項目が再作成されたりする場合があります。変更が維持されるかどうかは、実際の更新結果をご確認ください。独立した項目を使うと比較対象を残せるため、元のサブスクリプションと手動変更のどちらが結果に影響したかを判断しやすくなります。

[Parameters]

必要な情報が不足している場合は、利用中のサービスの管理元に確認してください。サーバー名だけからパスワード、UUID、SNI、鍵を推測することはできません。

保存しても、入力内容が記録されるだけで、サーバーが接続を受け付けるとは限りません。特定の通信方式だけ失敗する場合は、その方式のパラメーターと現在のネットワーク環境を確認してください。すべての項目が失敗する場合は、まず基本ネットワークと全般設定を確認します。対応するプロトコルや入力項目は、現在のアプリ内表示に従ってください。本来別の種類に属するサーバー情報を変換しようとして、プロトコル名だけを変更しないでください。

[Import]QRコード・クリップボードからインポート

読み取った内容とインポート結果を確認

QRコードとクリップボードは入力方法にすぎません。正しくインポートできるかどうかは、含まれるURL、形式、パラメーターによって決まります。

Scan QR Codeですべてのページを読み取れるわけではない

Scan QR Codeを使う前に、QRコードがご自身のサーバー情報やサブスクリプションの案内に由来することを確認してください。QRコードには、サーバーの共有リンクが含まれている場合も、単なるウェブページのURLが含まれている場合もあります。スキャナーが内容を読み取れても、アプリがサーバー情報に変換できるとは限りません。スキャン後に一般的なウェブページが開いたり、解析できないというメッセージが表示されたりした場合は、元の案内で用途を確認してください。QRコードの横にサーバー名が書かれているだけで、インポート用だと判断しないでください。

別の画面に表示されたQRコードを読み取る場合は、全体が読み取り範囲に入るようにし、反射や四隅の切れ、複数のQRコードが同時に映る状態を避けてください。長い内容を含むQRコードは細かくなる傾向があり、小さく表示すると読み取りにくくなる場合があります。何度も圧縮されたチャットのサムネイルではなく、元の鮮明な画像を使ってください。読み取りに失敗しても、それだけでサーバーが利用できなくなったとは判断できません。

システムからカメラへのアクセス許可を求められた場合は、操作に必要な範囲で許可してください。以前に拒否した場合は、システム設定でShadowrocketのカメラアクセス権を確認してから、もう一度スキャンします。権限の問題はサーバー認証とは関係ないため、サブスクリプションURLを変更する必要はありません。アプリ内にほかの画像読み取り機能がある場合も、現在の画面表示に従ってください。すべてのシステムやデバイスでボタンの位置が同じとは限りません。

クリップボードからは元の文字列をそのままインポート

共有リンクをコピーするときは、プロトコルの接頭辞からパラメーターとメモの末尾までを選択してください。メッセージ内の説明、番号、箇条書き、コードブロックはリンクに含まれません。アプリにクリップボードからのインポート機能がある場合は、コピー後にアプリ内で操作し、システムの案内に従って必要なアクセスを許可してください。システムの確認画面が表示されないからといって、コピーに失敗したとは限りません。また、用意したリンクを別の内容で上書きしないようにしてください。

複数のリンクをまとめてコピーした場合に一括インポートできるかどうかは、入力内容の認識方法によります。確認しやすくするため、初回は1件だけインポートし、結果を確認してから残りを処理してください。複数行のテキストに説明文、空行、ウェブページの記号が混ざっていると、一部の行が無視されることがあります。インポート後は実際の項目を一つずつ確認し、「インポート済み」という表示だけで、すべての情報が保存されたと判断しないでください。

システムからペーストの許可を求められた場合、拒否した後はアプリの用意した入口から操作し直し、権限の案内に注意してください。クリップボードの読み取りとサブスクリプションのネットワークリクエストは別の経路です。内容を読み取れない場合は入力段階の問題で、サブスクリプションの作成後に取得できない場合はリクエスト段階の問題です。失敗した段階を特定してから、正しいURLやサーバーパラメーターをむやみに変更しないようにしましょう。

インポート後は名前だけでなく項目を確認

共有リンクを1件インポートしたら、Type、アドレス、ポートに加え、必要なTLSや通信の項目を確認してください。メモが正しくても、読み取られたのが名前だけで、ほかのパラメーターがそろっているとは限りません。形式によってはメモがパーセントエンコードされています。名前にエンコードされた文字が表示されたり、見た目が異なったりしても、接続に影響するとは限りません。ただし、リンクのパラメーターを誤ってメモに入れていないか、メモがアドレス欄に残っていないか確認してください。

サブスクリプションのQRコードをインポートした後は、更新可能なサブスクリプション項目が作成されたのか、その時点の一覧にあったサーバー1台だけが保存されたのかも確認してください。判断の根拠は、QRコードの画像タイトルではなく、アプリに保存された項目の種類と更新メニューです。継続して更新する必要がある場合は、サーバー1台をコピーするより、正しいサブスクリプション項目を残すほうが適しています。通常、サーバーを1台だけインポートしても、サブスクリプションの更新関係は引き継がれません。

[Privacy]

QRコード、共有リンク、クリップボードの内容には完全な認証情報が含まれる場合があります。公開の読み取りサイトにアップロードしないでください。画面のスクリーンショットを共有する前に、QRコード、パスワード、クエリトークンを削除してください。

QRコードを何度も読み取ると、似た項目が複数作成されることがあります。整理する前に、所属するグループ、プロトコル、アドレスを比較し、どの項目が現在選択されているか確認してください。名前が同じでもパラメーターが異なる場合は、すぐに重複として削除しないでください。名前が違っても、アドレスが同じで認証や通信設定が異なる場合があります。判断できない場合は両方を残し、区別しやすい一時メモを付けて、テストの章に沿って個別に比較してください。

インポート後はクリップボードを通常のテキストに置き換えておくと、後で認証情報を誤って貼り付けるリスクを減らせます。ただし、すでに共有した情報を無効にできるわけではありません。完全なリンクが公開されたことがある場合は、利用中のサービスの管理画面で認証情報を変更し、アプリに保存した内容も更新してください。入力の手軽さは認証情報の管理の代わりにはなりません。元の共有情報は引き続き機密データとして扱ってください。

[Update]更新方法

サブスクリプションの更新とアプリのアップデートを区別する

サブスクリプションの更新はリモートの一覧を再取得する操作です。アプリのアップデートはApp Storeから行い、両者は互いに代用できません。

更新前に比較できる状態を残す

サブスクリプションの更新によって、サーバーの追加、削除、名前変更のほか、アドレス、ポート、認証情報が置き換わることがあります。実行前に対象のグループを確認し、現在選択している項目とそのサブスクリプションを記録してください。接続トラブルの対処中であれば、まず現象を記録してから更新することをおすすめします。そうしないと、更新後の一覧の変化と元からの問題が混ざり、どの操作で結果が変わったのか分かりにくくなります。

更新によって手動変更が必ず保持されるとは限りません。サブスクリプション管理下の項目はリモートの内容に基づくため、ローカルのメモ、並べ替え、各フィールドが保持されるかどうかは、実際の更新結果で確認してください。長期的に管理する個別の設定は、用途を記した手動項目として別に作成しましょう。更新前に古いグループを空にする必要もありません。以前の状態を残しておけば、取得に失敗したとき、アプリが元のデータを保持しているか確認できます。

手動更新と自動更新の役割

手動更新は、サービス提供元から設定変更の連絡があった場合、一覧が明らかに古い場合、初回インポート後に内容を再確認したい場合に適しています。該当するサブスクリプションを更新し、処理が完了するまで待ってから、表示メッセージとグループの内容を確認してください。短時間に何度もタップしても、リモートからエラーが返る問題は解決しません。複数回実行すると結果を対応付けにくくなります。一度失敗したら、ネットワーク、認証、解析のどの段階のエラーかを確認してから次の操作を決めましょう。

現在のアプリに自動更新の設定がある場合は、利用頻度に応じて有効にし、各オプションを確認してください。システムのバックグラウンド処理は、ネットワーク、デバイスの状態、システムの制約に左右されます。更新間隔を設定しても、毎回その時刻どおりにリクエストが完了するとは限りません。重要な変更を確認する場合は、バックグラウンド処理の予定時刻だけに頼らず、アプリで実際の一覧を確認し、必要であれば手動で更新してください。

サブスクリプションの更新に使われるネットワーク経路は、現在の接続状況、ルーティングモード、アプリの設定によって変わる場合があります。接続を有効にした状態では更新に失敗し、無効にすると成功する場合は、経路の違いを確認する必要があります。ただし、すぐに特定のサーバーが利用不能だと断定しないでください。同じ基本ネットワークで比較し、一度に変更する条件を一つに絞りましょう。ネットワークの切り替え、URLの変更、サブスクリプション全体の再インポートを同時に行わないでください。

失敗した段階に応じて対処し、診断の代わりに再作成しない

リクエスト段階の失敗では、接続できない、タイムアウトする、名前解決に問題があるといった症状がよく見られます。まずデバイスで現在のネットワークを正常に使えるか確認してください。認証・アクセス段階で失敗した場合は、URLの認証情報が完全か、リモート側で以前のURLが無効になっていないかを確認します。解析段階の失敗では、返された内容がサブスクリプションの形式に合っているかを確認してください。段階ごとに確認対象は異なります。すべてを「サーバーが使えない」とまとめないようにしましょう。

リモート側でサブスクリプションURLが変更された場合は、既存のサブスクリプションの該当欄を変更し、更新結果を確認してください。グループ名だけを変更してもリクエスト先は変わりません。また、サーバー1台の設定を変更してもサブスクリプション全体の入口は修復されません。変更前後のグループを比較用に一時的に残す場合は、どちらが古い記録か明確にしてください。古いグループを操作して、新しいURLが反映されていないと誤解しないようにしましょう。

[Update boundary]

更新成功のメッセージが表示されても、一覧に項目が増えるとは限りません。また、サーバーごとの接続成功を意味するものでもありません。リモート側に変更がなければ、更新後も一覧は変わらない場合があります。

更新後は、まずグループが存在するか、次に項目の内容が変わったかを確認し、最後に現在の選択項目を確認してください。リモートの一覧からサーバーが削除された場合、ローカルで以前選択していた項目を改めて確認する必要があります。接続スイッチがオンのままでも、更新前と同じ項目を経由しているとは限りません。ルールが名前付きの項目を参照している場合は、参照先が想定した項目に対応しているかも確認してください。

一覧の件数が変わったからといって、サービス品質が変わったとは限りません。リモート側で項目が分割、統合、改名された可能性があるため、実際のパラメーターと案内を確認してください。何度更新しても想定した内容が取得できない場合は、エラー文、操作順、確認済みの内容をまとめ、利用中のサービスの管理元に返却内容を確認しましょう。問い合わせには問題の説明だけを記載し、公開の場で完全なサブスクリプションURLを共有しないでください。

Shadowrocket自体のアップデートはApp Storeで確認し、App Storeから行ってください。サブスクリプションを更新してもアプリはアップデートされません。アップデートの要否、互換性、システム要件はApp Storeの掲載内容をご確認ください。正規の入手先とアプリIDの確認方法は正規版の確認方法をご覧ください。一覧が空になる問題は、サブスクリプションのリクエストと解析の流れに沿って対処してください。

[Organize]複数サブスクリプションの整理

入手元の関係と分かりやすい名前を保つ

整理の目的は、各項目の所属先、更新元、現在の選択項目を把握することです。すべての名前を統一することではありません。

サブスクリプションと手動項目の区別を確認

複数のサブスクリプションを使う場合は、用途、アカウント内の識別名、テスト用の印などを使い、各グループを見分けやすい名前にしてください。アカウント情報、パスワード、サブスクリプショントークンを名前に含めないようにしましょう。長い名前にする必要もありません。小さな画面で見分けられる短い名前と、別に保管した管理記録を組み合わせるほうが、項目名にすべての詳細を詰め込むより管理しやすくなります。

サブスクリプション項目はリモートの一覧で管理され、手動項目はユーザーが個別に管理します。特に、テスト目的でサブスクリプションからコピーした項目は、ローカルの比較用であることを名前で区別してください。そうしないと、更新後も古い設定のコピーが残り、更新済みのサーバーと誤認して、リモート側で問題が修正されていないと判断するおそれがあります。

一覧を「きれいにまとめる」ために、すべてのサーバーを手動項目として一つずつコピーしないでください。元の更新関係が失われ、認証情報やアドレスが変更されるたびに個別の管理が必要になります。独立した変更、比較テスト、特定のパラメーターの保持が必要な場合に限ってローカルのコピーを作成し、それ以外は各サブスクリプションの管理下に残しておきましょう。

重複かどうかは複数の項目で比較

名前が同じでも同じサーバーとは限らず、アドレスが同じでも同じ接続設定とは限りません。2つの項目で、ポート、プロトコル、認証情報、SNI、通信パラメーターが異なる場合があります。削除前に、少なくとも所属グループ、Type、アドレス、ポートを比較してください。それでも判断できない場合は認証と通信の設定も確認します。機密項目はデバイス内で比較し、重複を整理するために公開の表やオンラインツールへ書き出さないでください。

同じサブスクリプションを2回インポートした場合は、どちらのグループに現在有効なURLが保存されているか、現在の選択やルールがどちらを参照しているかを確認してから、削除するグループを決めてください。作成順だけで判断しないようにしましょう。後からインポートした項目でも、不完全なURLをコピーしている可能性があります。残すグループを更新し、実際のリクエストが成功することを確かめてからもう一方を削除すれば、整理によって既存の設定が中断されるリスクを減らせます。

見られる状況まず確認すること対処の基本方針
名前がまったく同じグループ、プロトコル、アドレス、ポート項目が一致することを確認してから重複かどうか判断します。
アドレスは同じだが名前が違う認証、TLS、通信パラメーターアドレスが同じでも、異なる接続設定を使用できます。
ローカルのコピーとサブスクリプション項目が共存コピーの用途と最後に確認したパラメーター識別しやすい名前を付け、コピーも更新されるとは考えないでください。
更新後に名前が変わった元のグループと実際の接続項目以前の名前だけを手がかりに検索・削除しないでください。

サーバーの選択とGlobal Routingを分けて考える

サーバーを選択しても、すべてのリクエストがそのサーバー経由になるとは限りません。Global RoutingのConfig、Proxy、Directは、それぞれConfig、Proxy、Directのモードに対応します。Configは現在の設定内のルールに基づいて通信を処理し、Proxyはプロキシ経由、Directは直接接続で処理します。テスト前に現在のモードを確認してください。サーバーを切り替えてもリクエストがルールによってDirectに送られたままの場合、選択が反映されていないと誤解することがあります。

Configモードでは、現在有効な設定ファイルとルールの順序も確認してください。ドメインにDIRECTが適用されている場合、プロキシサーバーを切り替えても、そのリクエストの送信先は通常変わりません。ルールで別のポリシー項目が指定されている場合も、Homeで選択した単一のサーバーが使われるとは限りません。サーバー管理では接続情報を確認し、ルール管理では適用条件を確認します。それぞれ別に確認してください。

複数サブスクリプションの名前が変わった場合は、設定内に名前を参照する項目がないか確認してください。参照を確認せずに一括で名前を変更したり、見た目だけの変更だと考えたりしないでください。まず参照関係を確認し、元の設定を残してから、一つずつ変更して検証します。慣れていないポリシー構造なら、名前を変えずに保つほうが安全です。すべての項目を一度に並べ替えてから原因を探すことは避けましょう。

[Working copy]

整理中は、動作確認済みの状態を残してください。各グループの変更が終わるたびに、選択、更新、リクエスト結果を確認してから次のグループに進みます。

複数サブスクリプションの管理で、サーバーを頻繁に切り替える必要はありません。各グループの用途、一時テスト用の項目、更新時に変わる可能性のあるパラメーターを把握することが大切です。たとえば「この項目はSNIの確認用」といった簡潔な説明を、他人に見られない場所に記録しておくとよいでしょう。「これは使える」とだけ記録するより、根拠のあるメモがあれば、後で削除、復元、移行する際に判断しやすくなります。一度だけ成功した結果を恒久的な設定と誤認することも防げます。

[Diagnostics]遅延テストと並べ替え

同じ条件でテスト結果を比較する

遅延テストは特定の測定条件で応答時間を比較するものです。通信速度、安定性、接続先ウェブサイトへのアクセスを総合的に保証するものではありません。

測定対象とテスト方法を確認

Connectivity Testまたは一覧のテスト機能を使う前に、アプリが使用するテスト方法と対象を確認してください。サーバーのポートへの接続を測定する方法もあれば、プロキシ経由でテスト対象にアクセスする過程を含む方法もあり、結果の意味は異なります。方法、対象、基本ネットワーク、実施時刻が近い場合に限り数値を比較できます。異なるモードの結果をそのまま順位付けしないでください。

テスト値は1回または複数回の測定結果であり、その後のリクエストが毎回同じ結果になることを示すものではありません。現在のネットワーク負荷、Wi-Fiの電波状態、サーバーの状態、名前解決、接続先からの応答が結果に影響します。一度値が高くてもすぐに項目を削除する必要はありません。値が低くても、あらゆる用途に適しているとは限りません。ネットワークを変えずに少数回テストを繰り返し、結果に一貫性があるか確認してから切り替えを判断してください。

タイムアウトや失敗も、テスト方法を踏まえて解釈する必要があります。テスト対象にアクセスできない場合、複数のサーバーで同時に失敗することがあります。プロトコルの項目に誤りがある場合は、該当する項目だけに問題が出ることもあります。テストに失敗しても、サーバーアドレスにまったくアクセスできないとは限りません。テストに成功しても、特定のサービスへのリクエストが成功するとは限りません。テスト機能は原因を探る手がかりとして使い、実際のリクエストで確認してください。

再現できる確認手順を作る

最初に基本ネットワークが正常か確認し、ネットワークへのログインが未完了、電波が不安定といった問題を除外します。次に選択中の項目とプロトコルのパラメーターを確認し、似た名前の古い項目をテストしていないか確かめます。3番目に、同じ方法でテストを実行し、結果が出るまで待ちます。4番目にGlobal Routingと現在のConfigを確認し、最後に確認したい接続先へアクセスします。各段階で何を確認したか説明できるようにしてください。

すべての項目が同時に失敗した場合は、基本ネットワーク、共通のテスト対象、共通設定を優先して確認してください。特定のサブスクリプションだけ失敗する場合は、直前に更新したか、認証情報が変更されたかを確認します。1台だけ失敗する場合は、そのアドレス、ポート、TLS、通信パラメーターを確認してください。アプリの再インストールやすべてのサブスクリプションの削除から始めるより、このように対象を絞るほうが記録を残しやすく、正しく設定済みの項目を作り直す必要もありません。

モード画面上の名称実際のリクエストで確認すること
ConfigConfig現在のファイル、適用されるルール、ポリシー、ルールの順序。
ProxyProxy選択中のサーバー、接続パラメーター、実際のリクエスト結果。
DirectDirect基本ネットワークと接続先自体。Directでの成功をProxyの利用可能性の証明にしないでください。

実際のリクエストを比較するために一時的にモードを変える場合は、元の状態を記録し、確認後に戻してください。一度成功させるために、理解していないモードをそのまま使い続けないでください。特にConfigでは、対象のリクエストにDIRECTや別のポリシーが適用されることがあります。その場合、サーバー一覧で遅延が短く表示されても、そのリクエストが該当サーバーを使用している証明にはなりません。

並べ替えは表示方法。選択中の項目は別途確認

遅延順に並べ替えると、現在のテストで応答の速い項目を見つけやすくなります。ただし、並べ替えは自動選択や継続的な状態確認と同じではありません。並べ替え後に選択中のマークを確認し、一覧の先頭が使用中だと決めつけないでください。一部の項目だけテストされた場合は、未測定、タイムアウト、測定済みの結果を同じものとして扱わず、結果がどの範囲をカバーしているか確認してください。

一括テスト中は、サブスクリプションの更新や項目の移動を同時に行わないようにしてください。一覧が変わると、テストした対象と名前・位置を対応付けにくくなります。まずテストを完了し、比較する項目を記録してから更新や整理を行いましょう。再テストではネットワークと方法をそろえてください。そうすれば、変化が新しいパラメーターによるものか、デバイスのネットワークが切り替わったためかを判断しやすくなります。

[Evidence]

遅延の数値だけでなく、テスト方法、基本ネットワーク、選択した項目、実際のエラーを記録すると、トラブルの原因を調べやすくなります。記録を共有する際は、認証情報を削除してください。

実際に使う際は、遅延と通信速度も区別してください。応答時間が短くても、大容量ファイルの転送が速いとは限らず、長時間の接続が安定するとも限りません。テスト対象、ネットワーク、用途によって条件が異なるため、本ページでは一律の合格値を設けていません。結果が大きく変動する場合は、まず条件をそろえて再現を確認してください。高頻度で一括テストを行うと、不要なリクエストが増える可能性があります。次に、失敗した段階に応じて、パラメーター、サブスクリプション、ルールの各章を確認しましょう。

[Backup]削除とバックアップ

対象ごとに保存・削除・復元する

削除する前に、バックアップに何が含まれるか確認してください。アプリの購入記録を復元しても、サーバーや設定が戻るわけではありません。

残す対象を先に整理する

管理対象には、サブスクリプションURL、個別に追加したサーバー、Configファイル、必要なアプリ設定などがあります。これらすべてが一度の書き出しですべて保存されるとは限りません。バックアップの前に、実際に使っている情報をリストアップし、現在のアプリのSettings、Data、または各項目のメニューで利用できるバックアップ・書き出し機能を確認してください。ファイルが一つ保存されたからといって、すべてのパスワード、選択状態、ルールが含まれているとは限りません。

サブスクリプションURLがあれば一覧を再取得できますが、個別に追加したサーバーのバックアップの代わりにはなりません。Configからルール構造を復元できても、サーバーの認証情報は含まれない場合があります。反対に、サーバー1台だけを書き出しても、サブスクリプション全体の更新関係は復元できません。書き出したデータの種類と説明を確認し、現在の設定を壊さない範囲で実際に含まれている内容を確かめてください。

元のパラメーターは、ご自身が管理できる安全な場所に保管し、機密情報を保護できる方法を使ってください。サブスクリプショントークン、パスワード、UUID、秘密鍵、それらを含むQRコードを、公開メモ、写真アルバム、共有リンクに保存しないでください。一般的な名前のバックアップファイルにも認証情報が含まれている場合があります。他の人に送る前に中身を確認し、拡張子だけで安全だと判断しないでください。

削除の影響範囲を確認する

サーバー1台の削除、サブスクリプショングループの削除、Configの削除は、それぞれ別の操作です。サーバーがリモートのサブスクリプションに残っていれば、次回更新後に再表示される場合があります。サブスクリプションを削除すると、ローカルでその項目を管理する入口が失われます。関連項目の扱いはアプリの確認メッセージに従ってください。実行前にメッセージを読み、選択中の項目、ルールからの参照、残したいローカル変更を確認して、一覧整理のつもりが設定を誤って消すことのないようにしましょう。

ローカルの項目を削除しても、リモート側の認証情報は無効になりません。また、リモートサービスの停止やサブスクリプショントークンの変更の代わりにもなりません。情報漏えいへの対処が目的の場合は、利用中のサービスの管理画面で必要な認証情報を変更し、ローカルの記録も更新してください。アプリ内の項目を削除しただけでは、すでにコピーされたパスワードやリンクを無効にできません。QRコードを共有した場合は特に注意が必要です。

重複したグループを削除する場合は、残すグループが更新でき、実際のリクエストも完了することを確認してから、古いグループを削除してください。古いグループに手動変更がある場合は、その理由と必要なパラメーターを記録します。一度に一つずつ削除し、完了するたびにHomeへ戻って選択中の項目とGlobal Routingを確認してから、次に進んでください。一括削除は早くても、誤削除した場合に影響を受けた項目を特定しにくくなります。

[Before delete]

バックアップが存在し、内容が完全で、保存場所にアクセスできることを確認してから削除してください。バックアップファイルが見えるだけでは、復元できると確認したことにはなりません。

依存関係に沿って復元を確認する

デバイスを変更したりアプリを再インストールしたりした後は、まずApp Storeからアプリを再入手し、次に保存しておいたサーバー、サブスクリプション、設定を復元してください。アプリの購入記録はApp Storeのアカウントで管理され、接続情報は別の種類のデータです。混同しないでください。購入済みアプリの復元、デバイスの互換性、ユニバーサル購入の適用状況は、App Storeの掲載内容をご確認ください。手順は購入済みアプリの復元・機種変更ガイドをご覧ください。

接続情報を復元した後は、サブスクリプションURLが完全か確認してから、最新の一覧を取得してください。手動追加したサーバーは、認証と通信の各項目を確認します。次に必要なConfigを復元し、ルールの参照先が実際の項目に対応しているか確認します。最後にGlobal Routing、選択中のサーバー、接続状態を確認してください。パラメーターの確認が済む前に複数のモードを続けて切り替えると、復元に失敗した段階を特定しにくくなります。

バックアップが古い場合、リモート側のパラメーターがすでに変更されていることがあります。古いファイルは元の構成を復元する助けになりますが、以前の認証情報が引き続き有効とは限りません。復元後は、利用中のサービスの最新情報と照合し、必要に応じてサブスクリプションを更新するか、変更が明示されている項目を入力し直してください。デバイス名、ネットワーク環境、システム権限も異なる場合があります。初回接続ではVPN構成に関するシステムの案内を確認し、別のデバイスの状態をそのまま当てはめないでください。

最後に全体を確認します。一覧が表示されること、必要なサブスクリプションを更新できること、選択したサーバーのパラメーターが正しいこと、実際のリクエストが想定どおりであること、ルールモードが予定した状態に戻っていることを確認してください。その後、一時的なコピーや古いバックアップを整理し、必要な復元手順は残しておきましょう。初回接続の流れをもう一度確認したい場合はクイックスタートガイドに戻ってください。特定の段階で問題が起きた場合は、本ページの目次から該当する章を開けばよく、すべてのデータを削除して最初からやり直す必要はありません。