Shadowrocket 公式マニュアル

Shadowrocket
サブスクリプション・サーバー管理ガイド

操作対象ごとに確認しましょう。まずサブスクリプション、サーバー、Configを見分けてから、読み込み、更新、テスト、バックアップを行います。本ページでは、すでに利用中のサブスクリプションまたはサーバー情報があることを前提とし、入手先は扱いません。

初めて使う場合は、まず使い方ガイドを読み、読み込み、Global Routingの選択、接続確認を行ってください。本ページでは、入力項目の注意点、失敗時の確認方法、継続的な管理方法を補足します。アプリの購入と正規品の確認についてはApp Storeの案内をご覧ください。

01 / SUBSCRIBE

Subscribe:読み込み前に対象と入口を確認

サブスクリプションURLと単一サーバーのアドレスは別もの

サブスクリプションとは、サーバー一覧を取得するためのリモートURLです。読み込み時にクライアントがURLへリクエストを送り、対応する内容をローカルの項目として解析します。その後サーバーへ接続する操作は別です。サブスクリプションを更新できても、すべてのサーバーに接続できるとは限りません。サーバーが一時的に利用できても、サブスクリプションURLが有効だとは判断できません。問題の切り分けでは、この2つの処理を分けて記録してください。

単一サーバーの情報には通常、プロトコル、ホスト名、ポート、認証パラメータが含まれます。一方、サブスクリプションURLはパスやクエリパラメータを含む長いURLであることが多いものです。サブスクリプションURL全体をサーバーのホスト欄に入力したり、サーバーのドメインをサブスクリプションURLとして扱ったりしないでください。読み込み前に、手元の情報がどちらにあたるかを確認し、適切な入口を選ぶと、保存できても内容がないという事態を避けられます。

Add ServerからSubscribeを選ぶ

Homeで追加画面を開き、Add Serverに進みます。TypeでSubscribeを選び、手元にあるサブスクリプションURLをURL欄に貼り付けて、見分けやすい名前を入力して保存します。画面上の配置はデバイスによって異なる場合があります。判断の目安は、TypeがSubscribeに設定され、単一サーバーの認証項目ではなくサブスクリプションURLの入力を求められていることです。

貼り付けた後、先頭から末尾まで確認してください。特に、チャットの文章に続く句点や括弧、改行、先頭・末尾の空白に注意します。URLの大文字・小文字、スラッシュ、パーセント記号、クエリパラメータは識別に使われる場合があるため、見た目を整える目的で変更しないでください。専用のサブスクリプションURLが明示されている場合は、アカウントページや説明ページ、ブラウザーで開いている任意のURLではなく、完全なURLを使用します。

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

上記は架空のURL構造を示す例であり、実際の読み込みには使えません。操作時は自分の完全なURLを使い、公開の掲示板などに投稿しないでください。認証情報を含むサブスクリプションURLとアカウントのパスワードを同時に共有する必要はありません。また、通常のWebページのブックマークのように公開同期するのも避けてください。URLを読み取れる人は、含まれるサーバー情報を取得できる可能性があります。

保存後は通知だけでなく一覧を確認する

保存後にHomeへ戻り、該当するサブスクリプショングループが表示されているか、グループ内にサーバーが作成されているか、プロトコルと名前が想定どおりかを確認します。サブスクリプション名だけが表示され、サーバーがない場合は、まず読み込みが完了したかを確認し、次に返された内容を解析できるか確認してください。同じURLを繰り返し追加しても問題は解決しません。同じ問題が複数の重複グループとして残るだけです。

一覧が作成されたら、自分が利用する権限を持つサーバーを1つ選び、接続を確認します。ここでの目的は、すべてのサーバーをすぐに並べ替えることではなく、読み込み後に項目が揃い、認証情報を利用できるかを確認することです。接続前に現在のGlobal Routingの選択も確認してください。サブスクリプションを読み込んでも、Config内の各ルールが通信をどう処理するかは分かりません。

初回設定では、システムがVPN構成を追加する許可を求める場合もあります。これは接続に必要なシステム上の手順であり、サブスクリプションURLの有効性とは別の確認項目です。まずアプリと操作元を確認してからシステムの案内に対応してください。許可ダイアログが表示されたことだけを根拠に、サブスクリプションの解析が成功したと判断しないでください。初回接続の手順は使い方ガイドをご覧ください。

初回の読み込みに失敗した場合は、既存の項目を残し、保存・読み込み・接続のどの段階で失敗したかを記録します。次に、現在のネットワークからサブスクリプションのホストにアクセスできるか確認し、URLがまだ有効かどうかを情報の提供元に確認してください。失敗した段階を特定してからパラメータを1つずつ変更すると、原因を見つけやすくなります。URLやルール、サーバーを同時に変更すると、まだ使える記録を誤って削除するおそれもあります。

02 / ADD SERVER

Add Server:プロトコルに合わせて項目を入力

Typeを選んでからアドレスと認証情報を入力

手動追加は、サーバーのパラメータ一式が手元にあり、個別に管理したい場合に適しています。Add Serverを開いたら、まずTypeを選び、選択したプロトコルに表示される項目に入力してください。認証方式はプロトコルごとに異なります。あるプロトコルのパスワード、識別子、通信パラメータを別のプロトコルに流用しないでください。プロトコル名が似ていても、項目をそのまま置き換えられるとは限りません。

通常、ホスト欄にはドメイン名またはアドレスを、ポート欄には該当する数値を入力します。URLを明示的に求める項目でない限り、ホストの前にURLスキームを付けたり、パス、ポート、クエリパラメータをホスト欄にまとめて入力したりしないでください。情報をコピーする際は区切り位置を確認します。特にコロンを含むアドレスでは、アドレスとポートをひと続きにすると、解析結果が想定と異なることがあります。

パラメータの種類確認ポイントよくある入力ミス
Type既存サーバーのプロトコルに合わせる名前からプロトコルを推測する
ホストとポート接続先アドレスとポート番号を別々に入力するホスト欄にパスを含める
認証パラメータプロトコルに応じてパスワードや識別子を原文のまま入力するコピー時に文字が抜ける
TLSとSNIサーバーが指定する証明書と名前の要件に合わせる名前欄をSNIとして使う
通信パラメータ通信方式、Host、パスを個別に確認するアドレスと認証情報だけを入力する

認証パラメータと通信パラメータを分けて確認する

Shadowsocksでは暗号化方式とパスワードを確認します。VMessとVLESSでは、それぞれの識別子と通信設定を確認します。TrojanではパスワードとTLSの要件を確認してください。Hysteria2とWireGuardにもそれぞれ固有のパラメータがあり、サーバーのドメイン名だけでは入力を完了できません。項目が足りない場合は、手元のパラメータ説明を確認してください。任意の値でフォームを埋めないでください。

パスワードや識別子は省略せずにコピーしてください。不要に見える記号も自動で削除せず、名前欄を認証情報として使わないでください。入力欄で文字が隠れる場合は、安全な環境で保存前に文字数と先頭・末尾を確認します。画面を撮影して記録する場合は、中央の数文字だけでなく認証情報全体を隠してください。一部が残っているだけでも、実際の認証情報を特定される可能性があります。

TLS、SNI、Host、パスはそれぞれ別の項目です。接続先アドレスはサーバーの特定に使われ、SNIはTLSの名前交渉に関係し、Hostとパスは上位層の通信リクエストに使われる場合があります。既存の設定で値が似ていても、別々の項目として保持してください。特に、テストを通すために証明書の検証を安易に無効化しないでください。セキュリティ上の境界が変わり、名前や証明書の設定ミスが見えにくくなります。

WebSocketなどの通信方式でパスを入力し忘れたり、Hostを誤入力したりすると、アドレスには到達しても接続が完了しないことがあります。問題を切り分ける際は、まずサーバーのプロトコル、次に認証情報、最後に通信レイヤーの項目を確認してください。誤りが確認できた値を一度に1つだけ変更し、比較できるよう元のパラメータも残しておきます。続けて複数項目を試すと、どの変更が影響したのか分からなくなります。

手動登録の管理範囲を明確にする

名前は項目を見分けるためのものであり、接続プロトコルの一部ではありません。用途、場所、管理方法などを記載できますが、パスワードは含めないでください。手動登録とサブスクリプションから作成された項目には、区別しやすい命名方法を使うと便利です。たとえば、自分で管理する項目であることを明記します。サブスクリプション更新後に似た名前が表示されても、どの記録を確認すべきか分かり、2つを同じものと誤認しにくくなります。

保存前と保存後の両方で、Type、ホスト、ポート、認証、通信の5項目を確認してください。通常、保存できたことが示すのは、クライアントが入力内容を受け付けたということだけです。サーバーがパラメータの正しさを確認したわけではありません。続いて接続をテストし、目的のアクセスが想定どおりか確認します。一部のサイトだけ失敗する場合は、すべてのサーバー項目をすぐに再入力せず、まず通信の振り分けと名前解決の経路を確認してください。

サブスクリプション内の項目を手動で変更しても、次回更新時に再生成された内容で置き換えられる場合があります。個別のパラメータを長期間保持したい場合は、現在の操作がサブスクリプション内の項目の編集なのか、独立した手動登録の作成なのかを確認してください。独立して管理する場合は、以後のサーバー変更に合わせてパラメータを更新する必要があります。サブスクリプションの更新で手動の複製も自動管理されるとは限りません。

プロトコル項目の意味が分からない場合は、まず用語集で用語を確認してから、手元のサーバー情報をもとに入力してください。本ガイドでは、プロトコルの推測、項目の無作為な組み合わせ、証明書設定の繰り返し変更による解決は推奨していません。手動追加を安定して利用するには、完全で対応関係が明確な、現在も有効なパラメータが必要です。

03 / SCAN & CLIPBOARD

QRコードとクリップボード:内容を確認してから保存

QRコードは情報を伝えるためのもの

Scan QR Codeで読み取るのは、QRコードに含まれるテキストです。サーバー共有リンクやサブスクリプションURLの場合もあれば、通常のWebページの場合もあります。スキャンに成功しても、画像を読み取れたというだけで、内容がインポートに適しているとは限りません。操作前にQRコードが自分の利用中のサーバーまたはサブスクリプション情報から作られたものか、単一の登録とサーバー一式のどちらに対応するかを確認してください。

Homeのスキャン入口からScan QR Codeを開き、システムの案内に従ってカメラへのアクセスを許可してから、QRコード全体を読み取り範囲に入れます。QRコードが小さい、光が反射する、端が欠けている、画像が圧縮されている場合は、読み取りに影響することがあります。距離や明るさを調整して画面を安定させ、入口を何度も素早く切り替える必要はありません。別のデバイスに表示されたコードを読む場合は、撮影後に何度も切り抜くより、適度に拡大するほうが確実です。

現在の画面に写真からQRコードを読み取る入口がある場合は、保存済みの元画像を選択できます。該当する入口がなければ、カメラでスキャンするか、手元のテキストリンクを使ってください。表示されていないボタンを探すために、関係のないアクセス権を許可しないでください。画像内のQRコードも四辺を含めて残してください。中央の模様だけを切り抜くと、エラー訂正能力が低下する場合があります。

アクセス権と読み取り結果を確認する

カメラへのアクセスを拒否した場合は、まずシステムの該当アプリのアクセス権設定を確認してから、スキャン画面に戻ります。アクセス権の問題とQRコードの内容の誤りは別の障害です。前者ではカメラを使えず、後者は通常、テキストを読み取った後に起こります。違いを把握すれば、端末内のアクセス権の問題を解決するためにサーバー情報を作り直すようなことを避けられます。

読み取り後、インポートのプレビューまたは新しく作成された項目のType、アドレス、ポート、名前を確認します。サブスクリプションの場合は、続いてサーバー一覧を読み込めたかも確認してください。単一の共有リンクの場合は、サーバーが想定した場所に追加されたかを確認します。QRコードの横にあるタイトルだけで実際の内容を判断しないでください。外側の説明文と内部に記録された内容が一致するとは限りません。

クリップボードから読み込む場合は原文全体を保つ

クリップボードを使う場合は、まず利用中の共有リンクを完全な形でコピーし、Shadowrocketに戻って現在の画面にある読み込み入口を使います。システムにペーストの許可を求められたら、自分が行った操作に照らして許可するか判断してください。説明文、チャットの表示名、句読点を含むメッセージ全体をそのままコピーせず、リンクの開始位置と終了位置を確認してから読み込みます。

長いテキストをコピーすると、末尾が抜けたり、画面上の改行が一緒に含まれたりすることがあります。リンクの先頭が欠けていないか、日本語の引用符が混ざっていないか、チャットアプリの省略表示で途中が切れていないか確認してください。短いタイトルで表示されるリンクでも、完全なURLがコピーされているとは限りません。必要に応じて情報元が用意したコピー機能を使い、安全なローカル環境で内容を確認します。

複数の共有リンクをまとめて読み込んだ後は、実際に追加された項目数とプロトコルを確認してください。1つが未対応でも、ほかの項目が成功したからといって、すべて読み込まれたとは限りません。不足した項目を確認せず、同じテキストを繰り返し貼り付けるのも避けてください。元の記録と照合して不足分を特定し、その項目だけを個別に処理すると、同じサーバーが一覧に重複するのを防げます。

読み込みに失敗したら段階ごとに原因を絞る

テキストを読み取れない場合は、カメラのアクセス権、画像の品質、QRコードの四辺を確認します。テキストを読み取れてもサーバーとして認識されない場合は、形式と完全性を確認します。項目は作成されたのに接続できない場合は、パラメータとネットワークを調べてください。それぞれの段階で確認対象が異なります。すべてをQRコードの無効が原因と決めつけず、既存のサブスクリプションを一括削除することも避けてください。

読み込みが終わったら、不要になった一時画像やクリップボードの内容を削除します。特に、クリップボードや写真が別の場所にも同期されるデバイスでは注意してください。一時コピーを削除しても、サーバーの認証情報が無効になるわけではありません。QRコードやリンクが公開された場合は、既存サービスの提供元に関連する認証情報の変更方法を確認し、その後にローカルの記録を更新してください。画像を削除するだけでは不十分です。

初めて読み込む際は、古い記録を残し、新しい記録が使えることを確認してから整理できます。同じ名前の項目は、名前だけでなくプロトコル、ホスト、ポートで見分けてください。基本的な接続だけを確認したい場合は、使い方ガイドのクイックスタートに従ってください。この章の項目別確認は、読み取り、アクセス権、重複読み込みなどのケースに対応するものです。

04 / LINK FORMAT

共有リンク:形式とエンコードを確認する

プレフィックスで解析方式を見分ける。パラメータの正しさは別途確認

サーバー共有リンクには、プロトコルと接続パラメータが所定のテキスト形式で含まれます。よく使われるプレフィックスは ss://、vmess://、vless://、trojan://、hysteria2:// ですが、形式ごとに内部構造は異なります。プレフィックスから分かるのは種類の目安です。認証情報が有効か、サーバーに到達できるか、すべての拡張パラメータが対応しているかまでは判断できません。

サブスクリプションURLは通常のURL形式で、サーバー一覧を返すために使われます。単一の共有リンクは、1つの接続先を直接記述します。どちらも長く、認証情報を含む場合があるため、長さだけでは区別できません。情報の説明とプレフィックスを確認し、Subscribeか単一項目の読み込みかを選んでください。長いテキストをすべてサブスクリプションとして扱わないでください。

テキストの種類含まれる内容管理方法
サブスクリプションURLサーバー一覧を取得するためのURLURLを保持し、必要に応じて更新する
単一の共有リンク1台のサーバーの接続パラメータ読み込み後、独立した項目を確認する
Configのテキストルール、ポリシー、関連設定Configの範囲で管理する
通常のWebページURLWebページまたは説明文読み込み可能なデータとは限らない

エンコードは暗号化ではない。任意に書き換えない

共有形式によっては構造化データをBase64でエンコードし、別の形式ではクエリ文字列にパラメータを格納します。エンコードは主にテキストを転送しやすくするためのもので、認証情報を秘匿する仕組みではありません。エンコードを元に戻せる人は、アドレス、パスワード、識別子を読み取れる可能性があります。意味の分からない文字列を、安全に匿名化されたテキストだと思い込まないでください。

クエリパラメータ内のパーセントエンコード、大文字・小文字、特殊記号は原文のまま保ってください。繰り返しデコードすると、パスワードやパスの一部だった文字が区切り文字に変わる場合があります。再エンコードによってサーバーに想定外の値が送られることもあります。形式の仕様と各項目の意味が明確でない限り、ほかのツールで変換してからクライアントに読み込ませないでください。

リンク末尾のフラグメント部分は名前に使われることがありますが、具体的な扱いは形式によって異なります。日本語の名前がエンコード後に長くなっても、リンクの破損とは限りません。一方、チャットアプリがリンクを2つに分けたり、通常の記号を全角文字に置き換えたりすると、解析に影響することがあります。文字化けが起きたら、認証項目を書き換える前に元のテキストと照合してください。

Configとサーバー共有リンクは別のもの

Configでは、ドメインやアドレスに適用するポリシーを決められますが、ルールだけではサーバーのパラメータ一式が含まれていない場合があります。ルールのテキストを単一サーバーの読み込み入口に貼り付けても、接続先は作成されません。同様に、サーバー共有リンクを読み込んでも、あらゆる用途に適したルールファイルが自動で作成されるわけではありません。サーバーと通信の振り分けは別々に確認してください。

[Rule]
DOMAIN-SUFFIX,example.com,PROXY
GEOIP,CN,DIRECT
FINAL,PROXY

これはルールの照合順を説明するためのShadowrocket .confルール例であり、完全な設定ではありません。ルールは上から順に判定され、まず指定したドメインサフィックスを処理し、次に該当するアドレス範囲を処理します。最後に、それまで一致しなかった接続をFINALが処理します。例にあるドメインは説明用の架空値です。自分の設定に適用する前に、対象のポリシーと既存項目との関係を確認してください。

Global RoutingでConfigを選択している場合は、現在のConfig内のルールを確認してください。ProxyとDirectでは通信の処理方法が異なります。読み込みに成功してもアクセス経路が想定と違う場合は、現在のモードを確認してからルールを調べます。サーバー共有リンクの形式が整っているだけで、通信の振り分けも正しいと判断しないでください。モードの説明はGlobal Routingの3つのモードの違いをご覧ください。

形式の問題を安全に報告する

解析に失敗した状況を伝える場合は、プロトコルのプレフィックス、失敗した手順、未対応パラメータの案内が表示されたかを共有できます。リンク全体を公開したり、実際のエンコード内容を公開デコードサイトに送ったりしないでください。説明用のテキストが必要な場合は、架空のアドレスと架空の認証情報で新たに作成し、有効なリンクから名前だけを変更して使い回さないでください。

元の情報を再度エクスポートできる場合は、同じ項目の完全なテキストを取得し、ローカルで読み込んだ結果と比較してください。読み込みを成功させるために、クエリパラメータをすべて削除しないでください。削除した部分が通信方式、TLS、認証に関わる場合があります。項目が作成されても、それは解析できたことを示すだけです。最終的に正しいパラメータで接続を確認してください。

05 / REFRESH POLICY

サブスクリプション更新:リクエスト・解析・接続を分けて確認

手動更新後は変更内容を確認

サブスクリプションの更新では、既存URLを再度読み込み、返された内容に応じてサーバー一覧を管理します。アプリのアップデートでも、すべての設定のリセットでもありません。実行前に、現在使用している項目とグループを記録しておくと、更新後に名前や順序が変わっても見分けられます。現在の接続が重要な用途に使われている場合は、結果を確認しやすい時間にメンテナンスしてください。

Homeで対象のサブスクリプションを見つけ、その登録に対応する更新操作を実行します。ボタンやメニューの場所は現在の画面に従ってください。完了後はグループが残っているか、項目数に問題がないか、現在の選択を再確認する必要があるかを確かめます。更新操作が始まっただけで画面を閉じないでください。また、項目が増えなかったことだけで失敗と判断する必要もありません。リモート側の一覧に変更がない場合もあります。

サーバー名、アドレス、認証情報、利用可能な項目は、リモート側の内容に応じて変わることがあります。更新後は、よく使うサーバーを改めて確認してください。特に、以前の項目が削除または改名された場合は注意が必要です。ルールやポリシーが特定の名前を参照している場合は、その参照先が想定どおりかも確認します。一覧が表示されていても、それに依存する設定がすべて維持されているとは限りません。

自分の利用頻度に合わせて自動更新を設定する

Settingsまたはサブスクリプション設定に、アプリ起動時の自動更新などの項目がある場合は、自分の管理方法に合わせて有効にできます。自動更新は長期間更新されない状態を減らすのに役立ちますが、その時点のネットワークとリモート側の応答に依存します。この設定はアプリを閉じた後も常に更新を続けるという意味ではありません。バックグラウンドですべてのリクエストが必ず完了すると考えないでください。

日常的には自動更新を補助として使い、リモート側で変更があった場合や項目が使えなくなった場合、デバイスを移行する前などに手動で確認できます。短時間に何度も更新しても、誤ったURLは直りません。リクエスト制限にかかる可能性もあります。明確なエラーが表示されたら、繰り返し操作して一覧が予想外に変わるまで試すのではなく、失敗の種類を特定してから再試行してください。

失敗した段階まず確認する項目次に行うこと
リクエストを確立できないネットワーク、名前解決、アクセス経路利用できるネットワークで1回再試行する
アクセスエラーが返るURLの有効性と認証情報の状態自分の完全なURLを確認する
返された内容を解析できないWebページではないか、形式が対応しているかサブスクリプション専用の内容か確認する
更新後に接続できない新しいパラメータ、現在の選択、ルールの参照先対象サーバーを個別に確認する

失敗しても利用可能な状態を保つ

現在のサーバーに接続できる一方でサブスクリプション更新に失敗した場合は、まず現在の記録を残してください。接続パラメータは当面使えるものの、一覧を取得するリクエストに問題が起きている可能性があります。サブスクリプション全体を削除して作り直すと、ローカルに残る唯一の利用可能な記録まで失うことがあります。元のURL、ネットワーク、リモート側の応答を確認してから、サブスクリプションを置き換えるか判断してください。

返される内容がログインページ、エラーメッセージ、メンテナンス案内の場合、ネットワークリクエストが成功してもサーバーとして解析できるとは限りません。ブラウザーでページを開けるのは、そのページの内容をブラウザーが取得できたことを示すだけで、クライアントが正しい形式のデータを受け取った証明にはなりません。サブスクリプション専用のURLかを確認し、アカウント用の入口やリダイレクト後の通常ページをSubscribeに保存しないようにしてください。

認証情報の有効期限が切れた可能性がある場合は、すでに利用しているサービスの管理方法で状態を確認してください。URL内の文字を適当に変更して復旧させようとしないでください。URLを変更した後は、新しいURLから適切な一覧を取得できることを確認してから、古い項目を整理します。古い認証情報を無効にするかどうかはリモート側での処理です。ローカルのサブスクリプションを削除しても代わりにはならないため、それぞれ別に対応してください。

アプリのアップデートとサブスクリプションの更新は別々に行う

Shadowrocketのアプリ更新はApp Storeで管理し、サブスクリプションの更新では既存URLから内容を取得します。変更される対象はそれぞれ異なります。アプリを更新しても無効になったサブスクリプションURLが有効になるとは限りません。また、サブスクリプションを更新してもアプリの機能範囲は変わりません。システム要件、デバイスの互換性、購入に関する情報はApp Storeページの記載に従ってください。確認方法は正規購入とインストールの案内をご覧ください。

手動更新とアプリ起動時の自動更新の違いを確認するには、サブスクリプション更新に失敗したときの確認方法をご覧ください。管理記録には、サブスクリプションの別名、操作日時、エラーの種類、確認結果だけを残し、認証情報全体は記録しないでください。問題の再発状況を把握でき、複数のサブスクリプションを使っている場合も影響範囲を特定しやすくなります。

06 / ORGANIZATION

複数サブスクリプションの整理:管理元と参照関係を保つ

まずグループの意味を決めてから並べ替える

複数のサブスクリプションを利用する場合は、各記録を誰が管理しているか、どのサブスクリプションに属するか、更新によってどの項目が影響を受けるかを見分けられることが重要です。すべてのサーバー名を似たものに変更してから、元のグループを思い出そうとしないでください。まず各サブスクリプションに変わりにくい別名を付け、用途や自分が理解しやすい分類で命名します。表示される名前に認証情報やアカウント情報は含めないでください。

サブスクリプションの別名はローカルでの管理上の関係を示すもので、サーバーの品質を評価するものではありません。仕事用、テスト用、管理担当などで区別できますが、一度のテスト結果を恒久的な評価として名前に含めないでください。テスト結果は時間やネットワークによって変わりますが、名前は長期間使われることがあります。一時的な状態を名前にすると、無効になった情報をもとに後から選択するおそれがあります。

手動登録とサブスクリプションから作成された項目は、見分けられる状態に保つのがおすすめです。サブスクリプション内のサーバーを独立して変更するために複製する場合は、自分で管理する項目だと分かる名前を付け、元のパラメータを安全に記録してください。そうしないと、更新後に一方だけが変わり、もう一方が古い値のままになります。同じサーバーが時々使えなくなるように見えても、実際には2つの項目のパラメータが異なっている可能性があります。

重複を削除する前に接続情報を比べる

同じ名前でも重複とは限らず、同じホストでも接続方法が1つとは限りません。見分ける際は、プロトコル、ホスト、ポート、認証情報、通信パラメータを比較し、必要に応じてTLS名とパスも確認します。名前が同じでも、ポートや認証情報が異なる場合があります。名前だけを基準に一括削除すると、必要な独立項目まで消すおそれがあります。

逆に、名前が違っていても接続パラメータ一式が同じことがあります。このような重複は、複数回の読み込み、手動コピー、複数サブスクリプションに同じ項目が含まれることなどが原因です。まず日常的に使う記録として残すものを決めてから、不要なコピーを整理します。一覧を短くするためだけにグループ全体をすぐ削除しないでください。グループは更新と管理の単位として必要な場合があります。

サーバーの選択とルールの参照先を合わせて確認

Homeで現在選択しているサーバーは、Config内のポリシーやルールから参照される場合があります。しかし、ハイライトされている位置だけを見ても、すべての接続が最終的にどこを通るかは分かりません。ルールが特定のポリシーを指定し、ポリシーが別の選択を使うこともあります。一覧を整理した後は、よく使うConfigが名前を変更または削除した項目を参照していないか確認し、実際にアクセスして検証してください。

Global RoutingのConfigモードでは、ルールの照合順で接続の処理方法が決まります。Proxyは接続をプロキシ経由で処理し、Directは直接接続します。3つのモードはサブスクリプショングループのフィルターではなく、重複したサーバーを自動で統合する機能もありません。管理時はモード、現在の選択、Config名をあわせて記録すると、整理前後の動作の違いを説明しやすくなります。

重要な接続を管理している場合、サブスクリプションの名前変更、項目の一括削除、ルールの書き換えを同時に行わないでください。まず1つのグループを整理し、更新とテストを終えてから次に進みます。変更範囲を1つずつにすれば、想定と異なる結果になっても、どの操作を戻せばよいか明確です。一度にすべて整理すると、名前の参照関係、パラメータの変更、ネットワークの変動のどれが原因か判別しにくくなります。

認証情報を漏らさず簡潔に記録する

管理記録には、サブスクリプションの別名、用途、自動更新の有無、直近の確認結果、手動コピーの有無を記載できます。サブスクリプションURL全体を記録する必要はなく、通常のメモにパスワードをコピーしてはいけません。複数のデバイスで照合する必要がある場合は、両方で機密情報を含まない同じ別名を使って対象を管理してください。有効な認証情報をチャットで送るのは避けます。

iPhoneとiPadの一覧が一致しているかは、実際に各デバイスで確認してください。アプリが同じ購入アカウントを使うからといって、すべてのサブスクリプション、現在の選択、Configが自動的に完全同期されるとは限りません。購入の復元が扱うのはアプリの利用資格であり、サーバー情報やConfigの復元は別の手順です。機種変更前に、本ページの削除とバックアップの章に沿って、それぞれ確認してください。

整理後は、よく使うConfigとサーバーを選んで動作を確認し、更新操作が正しいサブスクリプションを対象にしているかも確認します。一覧をできるだけ短くすることより、管理範囲を明確に保つことが重要です。サブスクリプションの読み込みに失敗したとき、影響を受ける項目と独立して使える手動登録をすぐに見分けられれば、変更範囲を広げずに問題を調べられます。

07 / CONNECTIVITY TEST

遅延テストと並べ替え:条件をそろえて結果を比較する

テスト値は1回の測定結果を表す

Connectivity Testは、選択したテスト方法で応答状況を確認する機能です。表示される数値は、ある時点での経路とテスト対象の組み合わせによる結果であり、サーバーの長期的な性能を保証するものではありません。遅延が小さくても通信速度が速いとは限らず、すべてのWebサイトへのアクセスが速いとも限りません。タイムアウトは、その条件では今回のテストが完了しなかったことを示すだけです。1回の結果だけで、サーバーが恒久的に利用できないとは判断できません。

テスト方法によって、確認する段階は異なります。接続の確立に近いものもあれば、テスト対象へのリクエストを含むものもあります。比較する前にSettingsの関連するテスト設定を確認し、対象と方法が変わっていないか確かめてください。異なる対象やネットワークで測定した結果は、同じ一覧に並べられていても直接比較できません。

テスト中は、デバイスで大量の通信が行われている状態を避け、同じネットワークに接続し、できるだけ近い時間帯に測定します。無線信号の強さ、ローカルネットワークの混雑、名前解決の状態、テスト対象の応答が結果に影響することがあります。完全な実験環境を作るのではなく、明らかな要因を減らし、繰り返し測定した結果が実際の利用環境の違いを反映しやすくすることが目的です。

少数を先にテストし、実際の用途でも確認する

サーバーが多い場合は、毎回すべてにリクエストを送らず、よく使うグループや候補を少数選んでテストできます。大量の同時テストは負荷を発生させ、ローカルネットワークやリモート側の応答を変えることがあります。多数の項目で同時に異常が起きた場合は、すべてのサーバーが使えなくなったと考える前に、共通するネットワークやテスト対象を確認してください。

候補を絞り込んだら、結果が安定しているかを確かめるために複数回テストし、1回だけ最も小さかった値を基準にしないでください。大きく変動し続ける項目は、ときどき値が小さくても現在の用途に適さない場合があります。その後、実際の用途に必要な対象で接続、名前解決、連続通信を確認します。短いリクエストの成功だけでは、長時間の作業に必要な安定性を確認できません。それぞれの確認で分かることは異なります。

確認された現象考えられる要因確認方法
すべての項目がタイムアウトするローカルネットワークまたはテスト対象共通条件を確認してから少数で再テストする
特定の項目だけ繰り返し失敗するパラメータ、認証情報、サーバーの状態該当項目を確認し、実際に接続する
数値は小さいのに通信が遅い通信速度、混雑、接続先までの経路遅延だけでなく実際の用途で確認する
一部の接続先だけ失敗するルール、DNS、接続先の状態適用されたポリシーと名前解決結果を確認する

並べ替えで変わるのは表示順だけ

遅延順の並べ替えはテスト結果の一時確認に便利ですが、自動切り替えを保証するものではありません。一覧の順序、現在選択しているサーバー、ポリシーグループの動作は別のものです。並べ替え後は実際に選択されている項目を再確認してください。未テスト、タイムアウト、古い結果の表示方法が異なる場合もあります。それらを安定した性能の順位と見なさず、同じ測定回のデータかどうかを確認してください。

リモートのサブスクリプションを更新すると、新しい項目には比較できるテスト結果がないことがあり、既存項目のパラメータが変わることもあります。その場合は以前の順位をそのまま使わず、必要な項目を再テストしてください。長期的に傾向を確認したい場合は、機密情報を含まない別名、ネットワーク条件、おおまかな結果を記録し、繰り返し現れる安定した違いに注目します。一時的な数値をすべて恒久的な評価として残す必要はありません。

ルールとDNSも含めて確認する

テスト結果は正常なのに実際のアクセスに問題がある場合は、現在のGlobal Routingを確認してから、Config内で対象の接続に適用される可能性のあるルールを調べます。対象がDIRECTで処理される場合、現在のプロキシサーバーのテスト値では、そのアクセスの状況を説明できません。特定のポリシーが適用される場合も、Homeで選択している項目だけで判断せず、そのポリシーが実際にどの接続先を使うか確認してください。

DNSの名前解決に失敗するとWebページが開けないことがありますが、サーバーのアドレスに接続できないことを意味するとは限りません。問題がサブスクリプションのホスト、サーバーのホスト、アクセス先の名前解決のどこで起きているかを区別してください。一度に確認するレイヤーを1つに絞り、サーバー、DNS、ルールを同時に変更して一時的に復旧した後、どの変更が有効だったのか分からなくなる事態を避けます。名前解決方式の詳しい比較はDNS設定の説明をご覧ください。

選び方をさらに詳しく知りたい場合は、遅延・地域・プロトコルの判断方法をご覧ください。本ページでは、すでに利用中のサーバーの管理のみを扱い、テスト結果に基づくサービスの推奨は行いません。1回だけの測定で最小値を追うのではなく、自分の用途、現在のネットワーク、継続的な観察に基づいて、必要な操作を安定して完了できる項目を選んでください。

08 / DELETE & BACKUP

削除とバックアップ:復元を確認してから整理する

まず削除対象の種類を確認する

整理する前に、単一サーバー、サブスクリプション全体、Configファイルを区別してください。単一サーバーを削除すると、ローカル一覧だけが変わる場合があります。サブスクリプションから作成された項目は、次回更新時に再び表示されることもあります。サブスクリプションを削除すると、その登録に関係する管理情報と項目に影響します。Configを削除すると、通信の振り分け設定に影響します。これらの操作は互いに代用できず、どれか1つをすべてのデータをリセットする方法として使わないでください。

サブスクリプションの更新に失敗したとき、ローカルに残る唯一の記録をすぐに削除しないでください。利用できるサーバーが残っているか、元のサブスクリプションURLが安全に保存されているか、既存のパラメータを再取得できるかを確認します。削除してもリモート側の認証情報は無効にならず、ネットワークリクエストの問題も解決しません。記録が不要であり、復元方法も確認できた場合に整理してください。

重複した項目を整理する前に、ルールやポリシーがその名前を参照していないか確認してください。削除後にサーバー一覧が整理されても、その名前に依存するConfigは調整が必要になる場合があります。まず不要な項目を1つだけ整理し、よく使うConfigが引き続き動作するかを確認してから、範囲を広げてください。一括削除はバックアップと参照関係を確認済みの場合に行うもので、原因を探るための操作ではありません。

バックアップでは異なる種類のデータを対象にする

バックアップ前に、保持するデータを一覧にします。サブスクリプションURL、独立した手動サーバー、Configファイル、利用に関係する設定などです。サブスクリプションURLからリモート側の現在の一覧を再取得できる場合がありますが、過去に存在した項目や、ローカルで変更した名前・手動編集が復元されるとは限りません。サブスクリプションURLだけを保存しても、独立したサーバーやカスタムConfigの確認には代わりません。

現在のアプリにあるエクスポートまたは共有の入口を使う場合は、実際にどの範囲がエクスポートされるかを確認してから、自分で管理できる安全な保存先を選んでください。単一サーバーだけを共有する入口は、完全なバックアップとして使えません。Configファイルをエクスポートする場合も、復元に必要なサーバーとの関係が含まれているか確認します。ファイル名だけを見てバックアップ範囲を判断しないでください。

エクスポートできたかより復元できるかを確認する

エクスポート後は、ファイルが存在して読み取れること、機種変更後も保存先にアクセスできることを確認します。重要な内容は管理された状態で2つ目のコピーを保管できますが、どちらも用途とアクセス範囲を明確にしてください。初期化する予定の古いデバイスにしかファイルが残っていなければ、エクスポートが完了しても機種変更後の復元に使えるバックアップにはなりません。

復元先のデバイスで、まずShadowrocketをApp Storeから正規に入手したことを確認してから、データの種類ごとに読み込みます。アプリの購入済み復元とサーバー情報の復元は別の手順です。前者は購入資格、後者は接続データを扱います。iPhoneとiPadのシステム要件、互換性、ユニバーサル購入についてはApp Storeページの記載に従ってください。手順は購入済みアプリの復元方法をご覧ください。

復元先のデバイスにすでにデータがある場合は、まず現在の状態をバックアップしてください。古い情報を読み込んで上書きや重複が起きた際に、見分けにくくなるのを防げます。サブスクリプション1つ、または手動サーバー1つから復元し、パラメータが正しいことを確認してからConfigやその他の記録を復元できます。読み込み後は、一覧に項目が表示されたからといってすぐに古いデバイスを消去せず、現在の選択、Global Routing、よく使うルールを確認してください。

実際に接続して目的のサイトにアクセスできることを少なくとも1回確認し、その後サブスクリプションを更新できるかも確認します。古いサーバーパラメータで現在接続できても、サブスクリプションの認証情報が有効とは限りません。逆に、サブスクリプションを更新できても、カスタムルールが正しく復元されたとは限りません。読み込み、接続、通信の振り分けを個別に確認して、重要な利用状態が新しいデバイスに復元できたと判断してください。

認証情報の漏えいとローカルデータの削除は別々に対応する

完全なサブスクリプションURL、QRコード、バックアップが公開されたことがある場合は、利用中のサービスの管理方法を通じて関連する認証情報を変更または無効化し、ローカルの記録を更新してください。チャットのメッセージを削除したり、クリップボードを消去したり、サーバーを削除したりするだけでは、コピー済みの内容が使えなくなるとは限りません。変更後は古いバックアップや他のデバイスも確認し、後から復元した際に無効になったURLを再び読み込まないようにしてください。

継続的な管理では、まず現在の状態を記録し、サブスクリプションを1つ更新して、よく使う接続を確認します。その後、重複項目を整理し、最後にバックアップを更新するという順序が有効です。変更範囲が明確になり、後から確認しやすくなります。初回接続をもう一度確認する場合は使い方ガイドへ、項目の意味を確認する場合は用語集をご覧ください。データを繰り返し消去するのではなく、問題の段階を分けて確認してください。

ShadowrocketをApp Storeでダウンロード