Shadowrocketを別の端末に移行する際は、旧端末を手元に残したまま、アプリの購入履歴、Configの設定ファイル、Homeに登録済みのサブスクリプションをそれぞれ確認します。ご自身で契約したサービスとサブスクリプションがあり、iPhoneまたはiPadの買い替えを予定している方向けに、iCloud同期と個別ファイルのバックアップを併用し、新端末で項目ごとに復元・確認する手順を紹介します。「ファイルが表示された」だけで接続設定もすべて戻ったと判断しないことが大切です。
1. 移行前に購入履歴・設定・サブスクリプションを確認
ShadowrocketはApp Storeで販売される買い切りの商用アプリです。アプリの購入と接続サービスの契約は別のものです。購入履歴があればアプリを再入手できますが、サーバーやサブスクリプションは各サービス提供元が管理します。ConfigのファイルにはルールやDNSなどの設定が保存されます。この3つは相互に代替できず、購入を復元してもサブスクリプション情報が自動で再作成されることはありません。
Home、Config、Settingsをそれぞれ確認してください。Configから書き出したファイルを、アプリ全体のバックアップとみなすことはできません。サーバー情報が含まれるか、リモートリソースを参照しているかはファイルによって異なります。Settingsの各種設定、Homeで選択中のサーバー、システムのVPN許可は、新端末であらためて確認が必要です。
- Configで現在有効なファイル名と、未保存の編集内容がないかを記録します。
- 旧端末に唯一のコピーを保存したままにしないよう、契約中のサービスのアカウントから元のサブスクリプションURLを確認できることを確かめます。
- Home → Global Routingで現在選択されているのがProxy、Direct、Config、Sceneのどれかを記録します。Sceneを使用している場合は、条件と関連するポリシーも控えておきます。
- Settings → On Demandが有効か確認し、元の接続条件を記録します。復元作業中は自動接続を有効にしないでください。
2. iCloud同期の前にアカウントとファイルの状態を確認
iCloudは同じApple Accountを使う端末間で設定を同期するのに便利ですが、変更履歴を毎回保存するバックアップではありません。誤って削除したり上書きしたりすると、その変更がほかの端末にも反映される場合があります。機種変更の前に、独立したファイルも書き出しておきましょう。また、システムのiCloudバックアップ、iCloud Driveに保存したファイル、アプリ内の設定同期は、それぞれ別の機能です。
- 旧端末のシステム設定でApple Account → iCloudを開き、iCloud Driveが利用可能で、十分な空き容量があることを確認します。アプリによるiCloudの使用許可も確認してください。システムメニューの表示は、端末に表示される内容に従ってください。
- 旧端末のShadowrocketでConfigを開き、編集中のファイルを保存します。画面にiCloud設定の項目がある場合は開いてファイル一覧を確認し、移行する設定をその画面の操作に従ってクラウドに保存します。
- 旧端末をインターネットに接続したまま、同期が完了するまで待ちます。スイッチをオンにしただけで成功と判断せず、対象ファイルが一覧に表示されて開けること、最後に編集した内容が含まれることを確認してください。
- 新端末で同期先のApple Accountにサインインし、必要なiCloudの許可を有効にしてから、Configでクラウド上のファイルを確認します。まず内容を確認し、その後で読み込むか判断してください。
新旧の端末に同じ名前の設定ファイルがある場合、すぐに両方で編集しないでください。まず旧端末で正常に使える内容を書き出して保管し、新端末でルールとDNSを確認してから、どちらを使うか決めます。ファイル名が同じでも内容が同じとは限りません。
3. 設定ファイルを書き出し、サブスクリプションの復元手段も別に保管
ファイルのバックアップでは、設定名やリモートファイルのURLをコピーするだけでなく、読み取り可能な設定内容を保存することが重要です。旧端末のConfigで対象ファイルの操作メニューを開き、画面に表示される共有または書き出し操作を選択して、システムの共有シートから「ファイルに保存」を選びます。操作によってリンクだけが作成された場合は、設定の実体も保存されていることを別途確認してください。
- 自分で管理できる「ファイル」の保存先に設定を保存し、用途がわかる名前を付けます。例:
home-rules-backup.conf。検証済みの唯一のコピーを上書きしないでください。 - 書き出したファイルをプレビューし、空でないことを確認します。
[General]、[Rule]など、実際に使用しているセクションやカスタム設定が揃っているかも確認してください。すべての設定ファイルに同じセクションが必要とは限りません。 - 設定がリモートルールなどの外部リソースを参照している場合は、取得元とアクセス条件を記録します。メインの設定ファイルを書き出しても、リモートの内容まで一緒に保存されるとは限りません。
- 自分で管理するiCloud Drive、または端末間のAirDropでファイルを転送します。新端末でファイルを受け取ったら、共有シートにShadowrocketの項目が表示される場合はそれを選ぶか、Configにファイルの読み込み操作があれば利用します。
登録済みのサブスクリプションも別に整理してください。サブスクリプションURLにはアクセス用の認証情報が含まれることがあります。たとえば https://example.com/sub?token=xxxx は架空の例で、復元には使えません。実際のURLを公開スクリーンショットや質問投稿に載せないでください。自分で管理できる安全な場所に保管し、サービス提供元のアカウントに引き続きアクセスできることを確認します。
要点: 新端末でファイルを開けることをバックアップ完了の基準にする
書き出した後は、新端末でバックアップファイルを実際に開き、自分で変更したルールを1つ確認します。この手順を済ませてから旧端末を処分するほうが、ファイル名だけを確認するより確実です。
4. App Storeからアプリを再入手し、設定とサブスクリプションを読み込む
新しいiPhoneまたはiPadでApp Storeを開き、Shadowrocketの製品名、公式アイコン、デベロッパ名Shadow Launch Technology Limited、アプリID 932747118を確認します。入手先はApp Storeのみです。システム要件とユニバーサル購入の対応範囲は、App Storeの製品ページに記載された内容を確認してください。
- 購入アカウントを確認: App Storeのアカウントで、購入済みの項目またはアプリ一覧からShadowrocketを探します。購入時に使ったアカウントでサインインしてください。App Storeでの購入に使うアカウントと、iCloud同期に使うアカウントはそれぞれ確認が必要です。
- アプリを再入手: 購入済みと認識されている場合は、App Storeに表示される再ダウンロードの操作を行います。購入価格が表示された場合は、再度支払う前にアカウントと購入履歴を確認してください。二重購入は設定の復元にはなりません。
- 設定を読み込む: Configを開き、同期または読み込みをしたファイルを開いて内容を確認し、現在使用する設定として選択します。一覧にファイルがある状態と、そのファイルが有効になっている状態は異なります。
- 登録済みのサブスクリプションを復元: Homeの一覧が復元されていない場合は、自分で保存した元のサブスクリプションURLから再登録し、更新を実行します。更新で取得できるのはサービス提供元が現在返す内容であり、旧端末のキャッシュと完全に一致するとは限りません。
- 動作設定を復元: HomeでサーバーとGlobal Routingを選び直します。設定ファイルのルールに従って動作させる場合はConfigを選択してください。以前Sceneを使っていた場合は、シーンの条件を確認してから設定を戻します。
- システムの許可を設定: 初めて接続を有効にするときは、システムの案内に従ってVPN構成の追加を許可します。旧端末での許可は、新端末での確認に代わるものではありません。
手動で追加したサーバーが書き出したファイルに含まれず、サブスクリプションからも再取得できない場合は、自分で保管しているパラメータから復元します。Trojanの場合は、表示名をコピーするだけでなく、Address、Port、Password、SNIを個別に確認してください。よくある例が 443 だからといってPortを一律に変更せず、元の設定に従ってください。
5. ルール、DNS、自動接続の順に動作を確認
移行後は、まず手動接続を確認し、その後で自動接続をテストします。こうすることで、設定内容の問題とOn Demandの起動条件の問題を切り分けられます。以下はルール記述を確認するための構文例であり、そのまま動作する完全な設定ではありません。PROXYが参照するポリシーは実際の設定内で有効である必要があり、例示のドメインは接続先ではありません。
[Rule]
DOMAIN-SUFFIX,example.com,PROXY
IP-CIDR,192.168.0.0/16,DIRECT
DOMAIN-SUFFIX,example.org,REJECT
FINAL,PROXY
- まず動作モードを確認: Home → Global RoutingでConfigを選択した場合に限り、現在の設定ルールに基づいて通信が振り分けられます。ProxyやDirectが選ばれているだけでは、ルールが復元された確認にはなりません。Sceneを使う場合は、シーンの切り替わりも確認してください。
- ルールの順序を確認:
DOMAIN-SUFFIXはドメインの末尾に、IP-CIDRはIPアドレスの範囲に一致します。FINALは前のルールに一致しなかった通信を処理します。FINALを前方に置くと、後続のルールが適用されない場合があります。 - DNSを確認: 新旧の設定ファイルで、
[General]内のdns-serverなど実際に使用している設定を比較します。ドメイン名での接続に失敗し、IPアドレスへの直接アクセスでは結果が異なる場合、名前解決の経路を調べる手がかりにはなりますが、それだけで原因を特定することはできません。 - 参照リソースを確認: リモートルールを更新する必要がある場合は、新端末からリソースのURLにアクセスできるか確認します。設定で参照するポリシー名が、実際に利用可能な名前と一致していることも確認してください。
- 最後にOn Demandを戻す: 手動接続とルールのテストが完了したら、Settings → On Demandで必要な条件を設定し直します。Wi-Fiとモバイル通信を切り替えたときの動作をそれぞれ確認してください。
確認中は、一度に変更する項目を1つに絞ります。「使用中の設定」「Global Routingのモード」「アクセス先」「実際の結果」を記録しておくと、「接続できない」だけの場合より原因を特定しやすくなります。移行を終える前に、直接接続する対象とプロキシポリシーを通す対象をそれぞれ1つ以上確認してください。
6. 機種変更後の復元でよくある質問
新しい端末のiCloudに設定が見つからず、旧端末にはある場合は?
まず、両方の端末でiCloudに使っているApple Accountを確認し、iCloud Drive、アプリの使用許可、空き容量を調べます。旧端末のConfigにあるローカルファイルが、クラウドに保存済みとは限りません。調査中に唯一のコピーを失わないよう、先にファイルを別途書き出してから同期の設定を確認してください。
Configにファイルがあるのに、Homeが空なのはなぜ?
読み込んだファイルにサーバー情報がなく、ルールとDNSだけが含まれていないか確認します。その場合は、自分で保存したサブスクリプションURLから再登録して更新してください。手動入力したサーバーは、元のパラメータを使って復元します。同じルールファイルを何度も読み込んでも、Homeの一覧は補完されません。
復元後に接続できても、通信の振り分けが旧端末と違う場合は?
まずConfigで現在有効なファイルを確認し、Home → Global Routingが想定したモードになっているか調べます。次にカスタムルールの順序、FINAL、DNSの設定を比較してください。Sceneを使っている場合は、現在のネットワークで別のシーンが適用されていないかも確認します。
新しい端末で使えるようになったら、すぐ旧端末を消去してもよい?
新端末でサブスクリプションの更新、手動接続、ルールによる通信振り分け、必要なOn Demand条件を確認し、設定ファイルの独立したコピーも保管してください。サブスクリプション情報を自分のアカウントから再取得できることを確認してから、各自の端末処分の手順に従って旧端末を消去します。
旧端末にアクセスできなくなった場合は、iCloudに残っているデータ、ファイルのコピー、サービス提供元のアカウントから、現存する情報を復元することになります。アプリを再入手しても、バックアップされていないローカルの変更は戻りません。利用できるファイルと認証情報を整理してから、項目ごとに復元してください。新しい空の設定でクラウド上のファイルを上書きしないよう注意します。