Shadowrocketの機種変更では、まずサブスクリプションの配信元を控え、現在使っているConfigファイルを書き出してから、新しい端末で復元・確認します。この記事ではiPhone/iPad間の移行を中心に、iCloudの同期範囲、手動バックアップの確認方法、復元後にノードはあるのにルールが適用されない場合の対処順を説明します。Mac、Windows、Android、Linuxへの移行にも必要な情報の整理方法は応用できますが、iCloudの手順は適用できません。
1. サブスクリプション、設定ファイル、端末の設定を区別する
移行はファイルを1つコピーするだけでは完了しません。Homeのサーバー一覧、Configのルールファイル、Settingsにある端末ごとのオプションは、それぞれ異なるデータです。ルールファイルを書き出しても、サブスクリプションの配信元、手動で追加したサーバー、システムのVPN許可まで保存されたとは限りません。作業を始める前に旧端末で項目ごとに確認し、特にファイル名だけで判断せず、現在選択中のConfigを確認してください。
結論:新端末で正常に読み込めたことをバックアップ完了の条件にする
新端末でConfigを開き、サブスクリプションを更新し、接続テストが完了するまでは、旧端末とそのローカルファイルを残してください。クラウド同期がオンになっているだけでは、バックアップが使える証拠にはなりません。
- サブスクリプションの配信元:元のサブスクリプションURLとグループ名を保存します。サブスクリプションURLは利用中のサービス提供元から取得し、更新後に生成されたノード一覧だけを残さないようにしてください。
- Configファイル:現在選択中のローカルConfigと、自分で変更したルール、DNS、ポリシーの参照先を保存します。リモートConfigの場合は配信元のURLも記録してください。
- 手動で追加したサーバー:プロトコル、アドレス、ポート、認証情報を1件ずつ保存します。サブスクリプションを再取得しても、自分で追加したサーバーは通常復元されません。
- 端末の状態:現在のGlobal Routingの選択肢と、Settings → On Demandで設定した条件を記録します。新しい端末ではシステムの許可を改めて確認する必要があります。
サブスクリプションURLにはアクセス認証情報が含まれる場合があり、Configファイルにもサーバーのパスワードなどの機密情報が含まれることがあります。バックアップは保護された個人用ストレージに保存し、公開チャット、公開クラウドストレージ、トラブル相談の場には送らないでください。他の人に相談する際は、URL全体、パスワード、UUID、キーを必ず隠してください。
2. iCloud同期の対象範囲
iCloudは、同じApple Accountを使うiPhone/iPad間でファイルを保存・読み込むのに便利です。ただし、アプリ内の同期機能、ConfigファイルをiCloud Driveに保存すること、端末全体のシステムバックアップは別のものです。それぞれ入口が異なり、保存されるデータの範囲も相互に保証されません。確認しやすい方法は、ConfigファイルをiCloud Driveに書き出し、別の端末でそのファイルを開くことです。
- 旧端末でシステムの「設定」→ Apple Account → iCloudを開き、iCloud Driveが有効か、クラウドストレージに十分な空きがあるか確認します。システムのバージョンによって項目名や場所が多少異なる場合があります。
- Shadowrocketの画面にiCloud同期のオプションがある場合は、その案内に従って有効にします。あわせて、システムのiCloudにあるアプリ一覧でShadowrocketのiCloud利用が許可されているか確認してください。これだけでSettingsのすべての項目が同期されるとは限りません。
- 「ファイル」Appの「ブラウズ」→ iCloud Driveで手動書き出ししたConfigを探し、アップロードが完了するまで待ちます。「このiPhone内」や「このiPad内」にしか表示されないファイルは、iCloudにアップロード済みとは限りません。
- 新端末で同じiCloud Driveの場所を開き、ファイルをダウンロードして読み込みます。アプリ内同期も有効にした場合は、実際に表示された項目を確認し、異なる場所から同じデータを重複して読み込まないようにしてください。
別のプラットフォームへ移行する場合は、手動で保存したConfigファイルとサブスクリプション情報を使います。iPhoneの端末全体のバックアップをMac、Windows、Android、Linuxで読み込めるファイルとみなしたり、各プラットフォームの設定項目をそのまま相互利用できると考えたりしないでください。まずルールと接続情報を移し、移行先の画面で項目ごとに設定します。
3. Configから復元可能なファイルを書き出す
まずConfigを開き、現在使用中のConfig名を確認します。次に対象のローカルConfigの操作メニューを開き、画面に表示されるShareまたは書き出し項目を使って、「ファイル」Appに保存します。メニューの場所や表示方法はプラットフォームや画面の変更によって異なる場合があります。リモートの項目しかない場合は、ダウンロード先だけを記録するのではなく、まずローカルの内容を取得・確認してからコピーを保存してください。
- 内容を確認:Configを開き、想定したルールとDNS設定が含まれているか確認します。普段ローカルコピーを編集している場合は、未変更のリモートファイルではなく、そのローカルコピーを書き出してください。
- ファイルを保存:Shareまたは書き出し操作でConfigファイルを保存します。
home-routing-backup.confのように用途がわかる名前を付けると便利です。唯一のバックアップを直接上書きしないようにしてください。 - 依存関係を確認:ルールの参照先、ポリシー名、リモートリソースを確認します。ファイル内のポリシーがHomeにあるグループ名を参照している場合、復元後もそのグループが必要です。
- 関連情報を別途保存:保護された場所にサブスクリプションの配信元、手動サーバーの設定値、必要な設定メモを保存します。ファイルサイズだけで情報がそろっていると判断しないでください。
- 保存したコピーを開いて確認:「ファイル」Appから保存したファイルを開き直し、空のファイル、Webページ、リンクだけのテキストではないことを確認してから新端末に読み込みます。
ルールの内容を確認するときは、ルールの順序、参照先のポリシーが存在するか、最後のフォールバックルールを重点的に見ます。以下はルールの構造を見分けるための例であり、既存Configを置き換えるためのテンプレートではありません。記載したドメインは実在のサービスを示すものではありません。
[Rule]
DOMAIN-SUFFIX,example.com,DIRECT
IP-CIDR,192.168.0.0/16,DIRECT,no-resolve
GEOIP,CN,DIRECT
FINAL,PROXY
DOMAIN-SUFFIXはドメインのサフィックスで、IP-CIDRはアドレス範囲で、GEOIPはIPの地理情報でマッチします。FINALは、それまでのルールに一致しなかった接続を処理します。上の例にあるPROXYの出力先の意味は、実際のConfigで確認してください。カスタムポリシー名は復元後も同じ名前である必要があります。ファイルを読み込めるようにするためだけに、既存のポリシーをすべてDIRECTに変更しないでください。
4. 新端末ではサブスクリプション、ルール、接続の順に復元
まずShadowrocketをインストールしてから、接続情報とルールを復元します。iPhone/iPad版はApp Storeで2.99米ドルの買い切りです。開発者はShadow Launch Technology Limited、システム要件はApp Storeの掲載内容をご確認ください。Mac(Appleシリコン/Intel)、Windows、Android、Linux版は無料です。各プラットフォームの入手方法はクライアントのダウンロードページで確認できます。アプリの買い切り料金は接続サービスの料金とは別です。機種変更によって新たな接続サービスが提供されることはありません。
- サブスクリプションを復元:Homeの追加メニューからSubscribeを選び、利用中のサービス提供元から取得したサブスクリプションURLを入力して保存し、更新します。グループ名とノードが想定どおりか確認し、古いノード一覧を重複して読み込むのは避けてください。
- 手動サーバーを追加:Add Serverから自分で管理していた項目を復元します。アドレスとポートは元の記録どおりに入力してください。たとえば記録が
443なら443のままにします。プロトコル名が同じでも、ポートを一律に変更してはいけません。 - Configを読み込む:「ファイル」AppからバックアップをShadowrocketに渡すか、Configにある現在のプラットフォーム用のファイル読み込み機能を使います。読み込み後はConfigで対象ファイルを選択し、同名ファイルが別のコピーとして保存されていないか確認してください。
- ポリシーを確認:旧端末と照らし合わせ、Configが参照するノード、グループ、ポリシーが存在するか確認します。名前が異なるとルールの参照先に影響するため、「ノード数がだいたい同じ」に見えるだけでは不十分です。
- ルーティングを設定:Configに基づいて通信を振り分ける場合は、Global RoutingをConfigに設定します。Proxyはプロキシ接続、Directは直接接続に使います。以前Sceneを使っていた場合は、関連する条件を個別に確認してください。ファイルを読み込んだだけで復元されるとは限りません。
- 接続する:利用可能なノードを選び、接続スイッチをオンにして、システムの案内に従ってVPN構成の追加を許可します。この許可は新端末で必要になるため、書き出したルールファイルで代用することはできません。
5. 復元後に4項目を確認
接続スイッチがオンでも、接続処理が始まったことを示すだけで、ルール、DNS、自動接続条件まで復元できたとは限りません。まず安定したネットワークで手動接続をテストし、その後Wi-Fiとモバイル通信を切り替えて動作を確認してください。設定は一度に1種類だけ変更し、元に戻せるConfigコピーを残します。
| 確認項目 | 正常と判断する条件 | 問題がある場合にまず確認 |
|---|---|---|
| サブスクリプションとノード | 元のサブスクリプションを更新でき、対象ノードの設定値がそろっている | URLの期限切れや認証情報の不足がないか、古いスナップショットを重複して読み込んでいないか |
| Configとルール | 正しいConfigが選択され、対象の通信が想定したルールとポリシーに一致する | Global RoutingがConfigか、ポリシー名とルール順が一致しているか |
| DNSとアクセス | よく使うドメインを名前解決でき、ページが最後まで読み込まれる | DNS設定が復元されているか、DNSサーバーと関連する接続先に到達できるか |
| On Demand | 設定したネットワーク条件で想定どおりに動作する | Settings → On Demandの条件とスイッチ、システムのVPN状態 |
HomeでConnectivity Testを実行すると、一部のノードだけに接続できないのか、すべての項目に接続できないのかを切り分ける手がかりになります。ただし、テストに一度成功しても実際のアクセス確認の代わりにはなりません。ノードのテストは正常なのに特定のドメインにアクセスできない場合は、現在のConfigと接続記録を確認しながら、DNS、ルールの一致状況、ポリシーの参照先を調べてください。すぐにすべてのサブスクリプションを削除して最初から設定し直す必要はありません。
- まず手動接続を確認してから、Settings → On Demandの自動接続条件を戻します。自動接続がトラブルの切り分けを妨げないようにしてください。
- TLS接続がすべて失敗する場合は、新端末の日付と時刻が正しいか確認してから、認証情報とネットワーク接続を確認してください。
- 特定のネットワークだけで失敗する場合は、Wi-Fiとモバイル通信の両方で同じノードをテストし、違いを記録します。プロトコルとルールを同時に変更しないでください。
- 確認が完了したら、正常に使えることを確認したConfigコピーを1つ保存します。リモートConfigを更新する前に、自分で加えた変更も保存してください。
6. iCloudと機種変更に関するよくある質問
新しい端末で同じApple Accountにサインインしたのに、Configが空なのはなぜですか?
まず「ファイル」App → iCloud Driveを開き、書き出したファイルがあり、開けることを確認してください。旧端末の本体にしか保存していなかった場合は、iCloud Driveに書き出し直します。アプリ内同期を使う場合は、両方の端末で同期オプションとシステムのiCloud権限を確認してください。ファイルが読み込めると確認してからインポートすればよく、アプリを何度も再インストールする必要はありません。
Configを読み込んだのに、Homeにノードが表示されないのはなぜですか?
ルールファイルにサーバー情報が含まれているとは限りません。Homeに戻り、Subscribeから元のサブスクリプションを復元して更新してください。手動で追加したノードは、元の記録を見ながらAdd Serverで追加します。その後Configに戻って、ルールが参照するグループ名を確認してください。適当に新しい名前を作り、元のポリシー名の代わりに使うことはできません。
重複して読み込んだ結果、グループが2つ表示されます。どちらを削除すればよいですか?
まずは両方を残し、それぞれのサブスクリプションの配信元と更新状態を確認して、元のURLから正常に更新できる方を特定します。次に現在のルールが参照している名前を調べ、実際に使われていて更新可能な方を残してから、不要なコピーを削除します。ノード名だけを見てまとめて削除しないでください。次回のサブスクリプション更新時に再び追加される場合があります。
バックアップファイルを開けました。すぐに旧端末を初期化してもよいですか?
ファイルを開けるだけでは、唯一の判断材料として不十分です。新端末でサブスクリプションの更新、Configの選択、実際のアクセス、On Demandの条件テストを済ませ、保護されたバックアップコピーに引き続きアクセスできることを確認してから、システムの移行手順に沿って旧端末を処理してください。サブスクリプションの有効期限が切れている場合は、利用中のサービス提供元から有効なURLを取得して復元を続けます。