この記事は、旧端末でShadowrocketを使っていて、新しいiPhoneやiPadへの移行を予定している方向けです。「Homeと設定を記録する、Configを保存する、iCloudを確認する、新端末で項目ごとに復元する」の順に進めます。アプリがインストールされているかだけでなく、ファイルの内容、サブスクリプションの更新、実際の接続結果を確認してください。
移行前に確認する4種類のデータ
ShadowrocketのHome、Config、Settingsには、それぞれ異なる情報が保存されています。Homeにサーバーやサブスクリプションのグループが表示されていても、ルールファイルが復元済みとは限りません。Configに同じ名前のファイルがあっても、Global Routingでそのファイルが使われているとは限りません。移行前に旧端末の現在の状態を記録し、記憶に頼った再設定を避けましょう。
この記事では、利用者が自分のサービス提供元とサブスクリプションをすでに利用していることを前提とします。サブスクリプションはご利用のサービス提供元から入手してください。アプリの購入と接続サービスは別々に管理されます。サブスクリプションURLにはアクセス認証情報が含まれる場合があります。パスワードと同様に慎重に扱い、公開メモや共有アルバム、公開フィードバックには記載しないでください。
接続と設定
- Home
- サブスクリプション名、グループ、現在選択中のサーバーを記録します。
- サブスクリプションの取得元
- 元のサブスクリプションURLを保存し、一覧のスクリーンショットで代用しないでください。
- Config
- 現在有効なファイル名を記録し、ファイルの内容を書き出します。
- 外部参照
- 設定から参照されているルールリソースと、そのアクセス条件を確認します。
サーバーリストとルールファイルは別のデータです。それぞれ確認してください。
動作モードと認証
- Global Routing
- 現在のモードがConfig、Proxy、Direct、Sceneのどれかを記録します。
- On Demand
- Settings → On Demandを開き、現在の接続条件を記録します。
- VPNの認証
- 新端末で初めて接続するときは、システムの案内に従って確認します。
- カスタム設定
- DNSなど、手動で変更した項目を記録します。
ファイルの復元、動作モード、システム認証は、それぞれ個別に確認してください。
新端末の確認がすべて終わるまで、旧端末は手元に残しておくことをおすすめします。同じ設定ファイルを2台で同時に編集するのは避けてください。誤った変更が同期されてもう一方の端末に反映されても、個別に書き出したファイルがあれば、そこから確実に復元できます。
iCloud同期の対象範囲と確認方法
iCloud同期と、書き出したファイルをiCloud Driveに保存する操作は別です。前者はアプリが提供する同期機能と、実際に有効になっている項目に左右されます。後者は手動で読み込めるファイルを保存する方法です。2台で同じAppleアカウントにサインインしていても、Home、Config、Settings、システムのVPN認証がすべて同じ状態になるとは限りません。
まず、システムの「設定 → Appleアカウント → iCloud」でiCloud DriveとアプリのiCloudアクセス権を確認します。システムの項目名はOSのバージョンによって異なる場合があります。次にShadowrocketのSettingsを開き、iCloud関連の項目が実際にどう設定されているか確認してください。同期対象は、アプリに表示されている項目と新端末に実際に反映されたデータを基準に判断します。システム全体の復元を、アプリ内のすべての項目が同期された状態と同一視しないでください。
移行の基本:同期で引き継ぎ、書き出しで復元に備える
旧iPhone
- iCloudアカウント、空き容量、ネットワークの状態を確認します。
- アプリで実際に有効になっている同期項目を記録します。
- 現在使えるConfigを書き出し、編集せずに保管するコピーを別に用意します。
- Homeにあるサブスクリプションの取得元と手動設定の復元情報を保存します。
新しいiPhoneまたはiPad
- 同期に使うiCloudアカウントが旧端末と同じか確認します。
- 同期を待ってから、HomeとConfigをそれぞれ確認します。
- ファイルを1つずつ開き、名前だけでなく重要なルールの内容も確認します。
- 不足しているデータを手動で復元し、接続認証も再確認します。
同期できたかどうかは、データと動作結果が一致しているかで判断します。iCloudのスイッチがオンになっているだけでは不十分です。
同期は独立した履歴バックアップではありません。削除や上書きも同期される可能性があります。同じ名前で内容が異なるファイルがある場合は、すぐに空のファイルで上書きせず、まず両方を書き出して比較してください。システムバックアップから復元した場合も同様に確認し、特に有効なConfigとGlobal Routingの設定を忘れずにチェックします。
旧端末からConfigファイルを書き出す
まずConfigを開き、現在実際に有効な設定ファイルを探します。書き出すのはこのファイルであり、名前が似た予備ファイルではありません。ファイルの操作メニューやスワイプ操作からファイル操作を開ける場合があります。操作メニューを表示したらShareを選び、システムの共有シートから「ファイル」に保存します。設定の編集画面に表示されたテキストをスクリーンショットで保存しても、復元可能なファイルにはなりません。
-
元のファイルを確認
Configを開き、現在選択中のファイル名を記録します。内容を開き、
[Rule]、カスタムルール、末尾のFINALが旧端末での利用状態と一致しているか確認します。 -
コピーを書き出す
ファイルの操作メニューでShareを選び、システムの共有シートから「ファイルに保存」を選択します。iCloud Driveに保存する場合は、アップロードが完了してから旧端末での作業を終えてください。
-
ファイルを確認
「ファイル」アプリで書き出した項目を開けること、内容が空でないこと、拡張子
.confが保たれていることを確認します。名前はbefore-move.confのようにし、あとで試しに変更するファイルと区別できます。 -
取得元の情報を補う
元のサブスクリプションURLと、必要な手動サーバー設定を別途保存します。Configを書き出しても、Homeにある接続情報すべてが書き出されたことにはなりません。
-
復元用の基準を残す
書き出したコピーは復元用の基準ファイルとして保管します。変更が必要な場合は別のコピーを使い、旧端末は当面、元の使用可能な状態に保ってください。
ファイルがリモートのルールリソースを参照している場合、メイン設定を保存しただけではリモートの内容までローカルに保存されたことにはなりません。復元時に参照先へアクセスできることを確認してください。リソースに認証が必要な場合は、そのアクセス条件も有効である必要があります。参照に失敗しても、ルールをむやみに削除したり、フォールバック設定を変更したりしないでください。
新しいiPhoneまたはiPadで復元する
ShadowrocketはAppleプラットフォーム向けのクローズドソースの有料アプリで、主にiPhoneとiPadで利用できます。入手先はApp Storeのみです。新端末ではApp Storeからインストールし、デベロッパ名がShadow Launch Technology Limited、アプリIDが932747118であることを確認してください。システム要件と購入対象の範囲はApp Storeの掲載内容を確認してください。
App Storeの購入履歴とiCloudのデータ同期は別のものです。購入済みの方は、まずApp Storeで使用しているアカウントの購入済み項目を確認してください。アプリを復元しても、サブスクリプションの有効期限は確認されず、新端末のシステム認証も完了しません。
- まず、既存のデータを確認します。HomeとConfigを開き、同期またはシステム復元で何が引き継がれたか確認してください。すでに存在し、使用できるサブスクリプションは重複を避けるため、再度読み込まないでください。
- 不足している設定を読み込みます。「ファイル」アプリで書き出した
.confを探し、共有シートからShadowrocketを選択します。アプリの読み込み案内に従って操作したら、Configに戻り、ファイルが表示されていることを確認してください。 - 使用するファイルを有効にします。Configで復元したファイルを選び、開いて重要な内容を確認します。ファイルを読み込んだだけで有効化していない場合、ルールが適用されたとは判断できません。
- Homeの情報を補います。サブスクリプションがない場合は、Home右上の「+」からAdd Serverを開き、TypeをSubscribeに設定します。サービス提供元から取得したサブスクリプションURLを入力して保存し、その後サブスクリプションを更新してください。
- 初回接続を完了します。使用できることを確認したサーバーを選択して接続を開始します。システムからVPN構成の追加を求められたら、アプリ名を確認して許可し、Homeに戻って状態を確認してください。
手動で追加したサーバーは、Type、アドレス、ポート、認証情報、関連するトランスポート設定を個別に確認します。メモの名前だけ復元しても不十分です。ポートは元の情報どおりに設定してください。たとえば、ある項目で443を使っていたとしても、ほかの項目のポートまで一律に443へ変更してはいけません。同じプロトコルでも、接続パラメーターがすべて同じとは限りません。
復元後にGlobal Routingを確認する
移行後に「接続はできるが振り分け結果が変わった」場合は、まずHome → Global Routingを確認し、次にConfigを確認します。接続スイッチが示すのはトンネルの状態であり、接続先が以前と同じルールで処理されることではありません。以下の比較は、復元確認時の動作モードを選ぶためのものです。トラブル調査用の一時設定を、そのまま元の設定として使わないでください。
Config
推奨現在有効な設定に基づいて接続を処理します。ルールは上から順に照合され、最初に一致した項目で処理方法が決まり、どれにも一致しない場合はFINALが適用されます。もともとルールによる振り分けを使っていた場合の移行確認に適しています。
適した用途:復元後のルール、ポリシー、通常の動作を確認する
Proxy
接続をProxyモードで処理し、従来のルールごとの振り分けは行いません。接続パラメーターの問題とルールの問題を切り分けるため、一時的に利用できます。テスト後は元のGlobal Routingに戻してください。
適した用途:選択中のサーバーで接続できるか一時的に確認する
Direct
接続をDirectモードで処理します。旧端末でConfigを使っていて、新端末がDirectのままの場合、設定ファイルが完全でも、以前と同じProxyの振り分け結果にはなりません。
適した用途:基本的なネットワークで接続先に直接アクセスできるか確認する
旧端末でSceneを使っていた場合は、シーンとその条件も確認してください。Sceneに切り替えただけで、以前のシーンが自動的に復元されるわけではありません。復元中は変更点を絞り、まず選択中のサーバーと設定が使えることを確認してから、シーンや自動接続条件を1つずつ戻してください。
重要なルールを確認してファイルの一致を判断する
以下は設定の読み方を示す例であり、現在の設定を書き換える指示ではありません。example.comは例示用のドメインです。旧端末と新端末を比較するときは、ファイル名だけでなく、ルールの順序、ポリシー名、最後のフォールバックを確認してください。
[Rule]
DOMAIN-SUFFIX,example.com,PROXY
IP-CIDR,192.168.0.0/16,DIRECT
GEOIP,CN,DIRECT
FINAL,PROXY
DOMAIN-SUFFIXはドメインのサフィックスで照合します。もともと前にあった具体的なルールを、復元時にフォールバックルールより後ろへ移動しないでください。IP-CIDRの例では、プライベートアドレス範囲192.168.0.0/16を対象にしています。LANへのアクセスに問題がある場合は、新端末が実際に接続しているネットワーク範囲とシステム権限も確認してください。GEOIPは宛先IPの地域データに基づいて照合します。ウェブページに表示される言語だけで、ルールに一致したかどうかを判断することはできません。FINALはフォールバックに使うため、先に判定する必要があるルールの後ろに置きます。ファイルがあるからといって、すべてのルールが実際に一致するとは限りません。
On Demandと接続結果の確認
手動接続が正常に動作した後、Settings → On Demandを開き、以前の条件を復元します。On Demandは条件に応じて接続を開始する機能であり、失われたサーバー、サブスクリプション、ルールを補うものではありません。新端末ではWi-Fi環境が異なる場合があるため、以前のネットワーク条件をそのまま転記して有効と判断せず、改めて確認してください。
- まず手動接続をテストします。Homeで対象のサーバーを選び、接続状態を確認してから、使い慣れたテスト用の宛先にアクセスします。
- 次に振り分けをテストします。DIRECTになる想定の宛先とPROXYになる想定の宛先をそれぞれ確認します。利用可能な接続ログも参考にしてポリシーを判断し、ウェブページを一度開けたかどうかだけで判断しないでください。
- 次にネットワークの切り替えをテストします。Wi-Fiとモバイル通信のそれぞれで、On Demandが実際にどう動作するか確認します。モバイル通信でのテストではデータ通信量が発生します。
- 最後にサブスクリプションの更新をテストします。更新が成功したことを確認し、現在選択中の項目が引き続き有効か確認してください。サービス提供元がリストを更新すると、名前が変わったり、以前の項目が削除されたりする場合があります。
確認中は一度に1項目だけ変更してください。サブスクリプションの再読み込み、Global Routingの切り替え、Configの置き換え、DNSの変更を同時に行うと、復旧しても原因となった手順を特定しにくくなります。新旧の端末を同じネットワークに接続して比較すると、移行時の不足とネットワーク環境の違いを切り分けやすくなります。
移行時によくある質問
同じアカウントにサインインしたのに、サブスクリプションが表示されないのはなぜですか?
まず、システムのiCloudアカウント、アプリの同期項目、Homeの一覧を個別に確認してください。App Storeで使うアカウントが同じでも、データが同期済みとは限りません。Homeにサブスクリプションがない場合は、元のURLを使ってAdd Server → Type → Subscribeから復元し、更新を実行してください。
Configの読み込みは成功したのに、アクセス結果が変わらないのはなぜですか?
Configに戻り、読み込んだファイルが有効になっていることを確認します。次にHome → Global Routingを開き、Configが選択されているか確認してください。その後、該当ルールより前にある別のルールが先に一致していないか調べます。FINALだけを確認しても不十分です。
設定を書き出したのにHomeが空です。アプリを買い直す必要がありますか?
Homeに接続情報がないことと、購入履歴の問題は別です。まずサービス提供元から取得したサブスクリプションを復元するか、旧端末の記録をもとに手動サーバーを追加してください。Configファイルを接続情報すべての完全なバックアップとみなさないでください。
新端末でVPN構成の追加を求められました。復元に失敗したのでしょうか?
ファイルを読み込んでも、新端末のシステム認証が完了したことにはなりません。表示がShadowrocketからのものだと確認し、システムの手順に従って操作してからHomeに戻ってテストしてください。手動接続は正常でも自動接続が想定どおりでない場合は、Settings → On Demandを確認します。
2台の端末に同じ名前で内容の異なる設定ファイルがある場合はどうすればよいですか?
同時編集を中断し、2つのファイルを個別に書き出して、重要なルール、外部参照、FINALを比較します。動作を確認できた方を復元用の基準に選び、新端末でテストしてから重複ファイルを整理してください。旧端末にある唯一の使用可能なコピーを、すぐに削除しないでください。
新端末で「サブスクリプションを更新できる、Configが有効、Global Routingが正しい、手動接続とOn Demandの両方を確認済み」の状態になってから、旧端末を整理してください。同期だけに頼るより、設定ファイルの独立したコピーと必要な復元手順を保管しておくほうが、次の機種変更にも役立ちます。