この記事の概要

機種変更の前に、Homeの接続情報、Configのルール設定、Settingsで引き継ぎたい項目をそれぞれ保存しておきましょう。iCloudは自分のデバイス間の同期に、手動書き出しは独立したバックアップの保存に向いています。どちらの場合も、新しいデバイスで内容を確認してください。自分で用意したサービス設定があり、iPhoneの機種変更やShadowrocketの再インストールを予定している方向けの記事です。

まず確認:購入履歴・接続情報・ルール設定の違い

Shadowrocketを再ダウンロードしても解決するのはアプリの入手だけで、旧デバイスのデータすべてが戻るわけではありません。App Storeの購入履歴、iCloud上のアプリデータ、サービス提供元から受け取った接続情報は、それぞれ別のものです。購入済みアプリを復元できたからといって、接続情報やルールも復元されたとは限りません。

移行前に旧デバイスでHomeを開き、使用中の接続とサブスクリプションのグループを控えます。次にConfigで現在有効な設定ファイル名を記録し、最後にSettingsで引き継ぎたい動作設定を確認してください。Homeのスクリーンショットだけでは不十分です。名前の照合には役立ちますが、パスワードや鍵、ルールファイル全体の代わりにはなりません。

データの種類機種変更前に保存するもの復元後に確認すること
App Storeの購入履歴購入時に使ったAppleアカウントアプリを再ダウンロードできるか。購入履歴を設定のバックアップと混同しない
Homeの接続情報登録済みのサブスクリプションURLと手動接続の全パラメータURL、ポート、プロトコル、認証情報、転送設定がそろっているか
Configのルール設定現在有効なファイルとカスタマイズ内容ファイルが読み込まれているか、有効になっているか、ルールの順序が同じか
Settingsの動作設定引き継ぎたい設定の記録On Demandなどの動作が新しいデバイスでの使い方に合っているか

ルール設定ファイルにHomeの接続情報がすべて含まれているとは限らず、アプリの設定もすべて保存されるわけではありません。データが含まれているかどうかは、実際の書き出し内容と書き出し画面の対象範囲を確認してください。拡張子だけでは判断できません。

iCloud同期:アカウントを確認し、データが反映されたか確かめる

iCloud同期は、デバイスで使っているAppleアカウント、iCloud Driveの状態、アプリへのアクセス許可に左右されます。システム設定のiCloudアカウントと、App Storeで購入に使ったアカウントは異なる場合があります。前者はクラウド上のデータ、後者はアプリの購入履歴に関わるため、機種変更時は両方を確認してください。

  1. 旧iPhoneで「設定」を開き、画面上部のAppleアカウントをタップして「iCloud」に進みます。iCloud Driveが有効になっていることと、空き容量を確認してください。
  2. iCloudを利用するアプリの一覧からShadowrocketを探します。アプリごとのスイッチが表示される場合は、iCloudの利用が許可されていることを確認してください。システムのバージョンによって一覧への入り方や名称は異なります。
  3. Shadowrocketに戻り、SettingsでiCloud同期やバックアップに関する項目があるか確認し、説明と対象データの範囲を確認してください。該当する項目が見つからない場合、データがすべて自動アップロードされていると決めつけないでください。
  4. 旧デバイスをインターネットに接続したままにし、アプリ内で必要な操作を完了させます。新しいデバイスでは同じiCloudアカウントを使い、同じアクセス許可を有効にしてからアプリを開き、HomeとConfigの内容を確認してください。
  5. データが空のままなら、旧デバイスの状態を保ち、まずアカウント、クラウドの空き容量、ネットワークを確認します。その後、保存しておいた手動バックアップから復元してください。すぐに両方のデバイスで設定を削除したり、消去したりしないでください。

同期によって変更内容が反映されることがあるため、過去の状態がいつまでも残る履歴保管庫として扱わないでください。旧デバイスに重要なカスタムルールがある場合は、先に独立したファイルとして書き出してから新しいデバイスで変更しましょう。両方の内容が変わっても、戻せるバックアップを確保できます。

手動で書き出す:Configと接続情報を分けて保存

手動バックアップでは「読み込める・見分けられる・必要な内容がそろっている」ことが大切です。まず現在有効な設定を保存し、続いて登録済みのサブスクリプションURLと手動追加した接続情報を保存しましょう。共有メニューやその他メニューの名称は画面によって異なるため、現在表示される書き出し操作を使ってください。単一のファイルをアプリ全体のバックアップと誤認しないようにしましょう。

  1. Configを開き、現在有効な設定を確認します。対象ファイルの操作メニューから、画面に表示される共有または書き出し機能を使い、システムのFilesで管理しているフォルダにコピーを保存してください。
  2. home-rules-before-migration.confのように、見分けやすい名前を付けます。ファイルを開いて内容を確認し、カスタムルールが実際に含まれていることを確かめてください。ファイルが作成されたことだけで判断しないようにしましょう。
  3. Homeに戻り、登録済みのサブスクリプションURLを保存します。手動で追加した接続は、画面で利用できる共有または書き出し機能を使ってください。項目ごとに確認する必要がある場合は、ポート、認証情報、転送オプションを含む接続パラメータをすべて記録します。
  4. 設定がリモートルールや外部ファイルを参照している場合は、その参照先も別途記録してください。リモート参照を含む設定ファイルを保存しても、参照先の内容までローカルに保存されたことにはなりません。
  5. 重要なコピーは保護された場所に保存し、即時同期に依存しないバックアップも一つ用意してください。確認が済むまでは旧デバイスを消去しないでください。

以下はルールテキストの確認例であり、既存の設定をそのまま置き換えられる完全なファイルではありません。ポリシー名は実際の設定内の定義と一致させてください。見た目をそろえるためだけに、既存のポリシー名を一律に変更しないでください。

[Rule]
DOMAIN-SUFFIX,example.com,DIRECT
IP-CIDR,192.168.0.0/16,DIRECT,no-resolve
FINAL,PROXY

確認時はルールの内容と記述位置の両方を見てください。上の例では、ドメインとローカルネットワークの範囲を先に照合し、その後、残りの接続をFINALで処理します。復元後にFINALしか残っていない場合、接続できても元のルールによる振り分けが戻ったとは判断できません。

新しいiPhoneでの復元手順:アプリ、データ、接続の順

新しいデバイスでは、まずアプリの入手権限を復元してからデータを読み込みます。App Storeを開き、Shadowrocketの購入時に使ったAppleアカウントでサインインします。アカウントの購入済みアプリ一覧から探して再ダウンロードしてください。製品ページに購入価格が表示される場合は、再度支払って設定を復元しようとする前に、アカウントと購入履歴を確認してください。

購入履歴を確認 アプリをインストール 接続情報を復元 ルールをインポート 結果を確認
  1. インストール後、まずアプリを開き、iCloudからデータが戻っているか確認します。HomeとConfigにすでに内容がある場合は、先に確認してからインポートしてください。同じ接続が重複するのを防げます。
  2. 復元されていない接続は、自分で保存した接続バックアップまたは登録済みのサブスクリプションURLから読み込みます。サブスクリプションを更新する前にURL全体がそろっていることを確認し、クエリパラメータも残してください。古い一覧の名前を完全なURLの代わりに使わないでください。
  3. Filesで書き出した設定ファイルを探し、システムの共有機能またはアプリ内のファイル読み込み機能からShadowrocketに渡します。その後、Configにファイルが表示されることを確認し、有効にする設定を選択してください。
  4. Homeに戻って接続先を選び、Global Routingを確認します。ルールによる振り分けを確認するにはConfigを選択してください。ProxyとDirectでは処理方法が異なるため、Configのルール確認の代わりにはなりません。
  5. 初めて接続するときは、システムの案内に従ってVPN構成の追加を許可してください。その後、Settings → On Demandを開き、使い方に合わせて自動接続の動作を再確認します。接続を確認する前に、自動接続に頼らないでください。

サブスクリプションを復元した後の一覧が旧デバイスと異なる場合があります。サービス提供元が現在返す内容が変わっている可能性があるためです。自分が利用しているサービスの最新設定を基準にし、「古いバックアップに含まれる過去の項目」と「今回サブスクリプションから返された項目」を区別してください。接続数だけで復元の成否を判断しないようにしましょう。

復元後の確認:3か所と2種類のバックアップをチェック

3か所
Home、Config、Settingsをそれぞれ確認
2種類
iCloud同期と手動ファイルコピーを別々に確認
1項目
FINALの最終処理ポリシーを確認

まず接続できることを確認し、次にルールが想定どおりリクエストを処理しているか確認します。接続成功は、現在の接続に必要な条件が整っていることを示すだけです。DNS、ルール参照、自動接続などが旧デバイスとすべて同じとは限りません。テスト中は一度に一つの設定だけを変更して、結果を記録してください。プロトコルのパラメータとルールを同時に変更すると、原因を特定しにくくなります。

まとめ:新しいデバイスでの確認が済んでから旧デバイスを整理

「接続情報がそろっている」「目的のConfigが有効になっている」「ルールの動作が想定どおりである」の3点を移行完了の条件とします。すべて確認してからバックアップを整理し、旧デバイスのデータを削除してください。アプリをインストールできたことや接続アイコンが表示されたことだけを完了の判断基準にしないでください。

機種変更時によくある質問:不足しているデータごとに復元する

再ダウンロードしたのにHomeが空なのはなぜ?

再ダウンロードしても、購入履歴から接続情報が生成されることはありません。新旧デバイスのiCloudアカウントとアプリのアクセス許可を確認し、旧デバイスに該当データが実際に保存されていたか確かめてください。同期対象に含まれない、または復元されなかった情報は、自分で保存したサブスクリプションURLや接続バックアップから読み込みます。

confファイルを読み込んだのに接続情報が戻らないのはなぜ?

まずファイルの内容と書き出し対象を確認してください。設定ファイルにルールやDNSなどの設定だけが含まれ、Homeの接続情報すべては含まれていないことがあります。インポート済みのルールファイルはそのまま残し、接続情報を別途復元してください。ファイルに存在しないデータを戻そうとして、Configを何度も上書きしないでください。

新しいデバイスでは接続できるのに、以前の振り分けが動かないようです。

まずHome → Global RoutingでConfigが選択されていることを確認し、次にConfigで正しいファイルが有効になっていることを確認します。その後、カスタムルールがFINALより前に残っているか、ルールが参照するポリシーが存在するかを確認してください。ProxyまたはDirectが選択されている場合は、Configに切り替えてからルールを検証します。

旧デバイスが手元になくても、手動で追加した接続情報を取り戻せますか?

まずiCloudのデータ、Filesに保存した書き出しファイル、自分で保管した元データを探してください。ルールファイルしかなく接続パラメータがない場合、ルール名からパスワードや秘密鍵を復元することはできません。利用中のサービスアカウントから有効な設定を再取得する必要があります。復元前に新しいデバイスの現在の内容を保存し、まだ必要な情報を上書きしないようにしてください。