Before moving to a new device, save your subscription sources, export the Config file you currently use, then restore and verify it on the new device. This guide focuses on transfers between iPhone and iPad, covering the limits of iCloud, how to check a manual backup, and what to do if nodes are present but rules aren’t taking effect. For Mac, Windows, Android, and Linux, you can use the same checklist of information to save, but don’t follow the iCloud steps.
1. Know the difference between subscriptions, config files, and device settings
A transfer involves more than copying a file. The server list in Home, rule files in Config, and device-specific options in Settings are separate types of data. Exporting a rule file does not necessarily save subscription sources, manually added servers, or system VPN authorization. Before you start, check each item on the old device—especially the config currently selected, rather than relying on its filename.
Bottom line: the backup is complete only when the new device can read it
Keep the old device and its local files until the new device can open the config, update the subscription, and pass a connection test. An enabled cloud sync switch alone doesn’t prove that the backup is usable.
- Subscription sources: Save the original subscription URL and group name. Get the subscription URL from your service provider; don’t rely solely on the node list generated by an update.
- Config files: Save the local config currently selected, including any rules, DNS settings, or policy references you’ve changed. For remote configs, also note the source URL.
- Manually added servers: Record the protocol, address, port, and authentication details for each one. Refreshing a subscription usually won’t restore servers you added yourself.
- Device settings: Note the current Global Routing option and any conditions under Settings → On Demand. You’ll need to approve system authorization again on the new device.
Subscription links may contain access credentials, and config files may include server passwords or other sensitive information. Keep backups in protected personal storage; don’t post them in public group chats, public cloud drives, or troubleshooting forums. Before asking for help, redact full URLs, passwords, UUIDs, and keys.
2. What iCloud sync covers
iCloud can store and provide access to files across iPhone and iPad devices signed in to the same Apple Account, but distinguish between three things: sync built into the app, saving a config file to iCloud Drive, and a full-device system backup. They use different paths and don’t guarantee the same data coverage. The easiest option to verify is to export the file to iCloud Drive, then open it on another device.
- On the old device, open system Settings → Apple Account → iCloud. Check that iCloud Drive is enabled and that you have enough cloud storage. Menu names may vary slightly by system version.
- If Shadowrocket currently offers an iCloud sync option, enable it as instructed there. Also check whether Shadowrocket is allowed to use iCloud in the system’s iCloud app list. Don’t assume this syncs every item in Settings.
- In the Files app, go to Browse → iCloud Drive, find the config you exported, and wait for the upload to finish. A file appearing under On My iPhone or On My iPad doesn’t mean it has been uploaded to iCloud.
- On the new device, open the same iCloud Drive location, download the file, and check that its contents are readable. If in-app sync is also enabled, check which items actually appear to avoid importing the same data twice.
When moving to another platform, use the config file and subscription details you saved manually. Don’t treat an iPhone full-device backup as a file that can be imported on Mac, Windows, Android, or Linux, or assume every setting transfers unchanged between platforms. Transfer rules and connection details first, then configure each item in the target platform’s interface.
3. Export a restorable file from Config
Open Config and confirm the name of the config in use. Open the action menu for that local config and use the Share or export option available in the current interface to save it to the Files app. Menu placement and appearance may vary by platform or interface update. If you only see a remote-source entry, first retrieve and verify its local contents, then save a copy—don’t just record a download URL.
- Check the contents: Open the config and verify that it includes the expected rule sections and DNS settings. If you normally edit a local copy, export that copy—not the unmodified remote original.
- Save the file: Use Share or the export option to save the config file. Choose a descriptive name, such as
home-routing-backup.conf. Don’t overwrite your only known-good backup. - Check dependencies: Look for rule references, policy names, and remote resources. If a policy in the file references a group name in Home, that group must also be present after restoration.
- Save related details separately: Keep subscription sources, manually added server details, and any necessary setup notes in a protected record. File size alone doesn’t prove that a backup is complete.
- Open the saved copy: Reopen the file you just saved from the Files app. Make sure it isn’t empty, a web page, or a text file containing only a link before importing it on the new device.
When checking the rules, focus on their order, whether the referenced policies exist, and the final fallback rule. The example below is for recognizing rule structure only, not a complete template to replace your current config. The example domain is not an actual service.
[Rule]
DOMAIN-SUFFIX,example.com,DIRECT
IP-CIDR,192.168.0.0/16,DIRECT,no-resolve
GEOIP,CN,DIRECT
FINAL,PROXY
DOMAIN-SUFFIX matches domain suffixes, IP-CIDR matches IP address ranges, GEOIP matches IP geolocation, and FINAL handles connections that didn’t match earlier rules. Confirm what PROXY routes to in your actual config; custom policy names must match the names restored on the new device. Don’t change every existing policy to DIRECT just to make the file import.
4. Restore subscriptions, rules, and connections—in that order
Install Shadowrocket first, then restore your connection details and rules. On iPhone and iPad, get it from the App Store for a one-time $2.99 purchase. The developer is Shadow Launch Technology Limited; check the App Store listing for system requirements. The Mac (Apple silicon and Intel), Windows, Android, and Linux versions are free. See the download page for platform-specific options. A one-time app purchase is not a service plan, and transferring devices doesn’t provide a new connection service.
- Restore subscriptions: In Home, open the add option, choose Subscribe, enter the subscription URL provided by your service provider, and save it. Then update the subscription. Check that the group names and nodes look right; don’t re-import an old node snapshot unnecessarily.
- Add manual servers: Restore entries you maintain yourself using Add Server. Enter the address and port exactly as recorded. For example, if your notes say
443, keep443—don’t change the port just because the protocol name matches. - Import the config: Share the backup from the Files app with Shadowrocket, or use the file import option available in Config on your platform. After import, select the intended file in Config and check whether a file with the same name was saved as a separate copy.
- Check policies: Compare with the old device and confirm that the nodes, groups, and policies referenced by the config are present. Different names can change where rules point; matching node counts aren’t enough.
- Set routing: To route traffic according to your config, set Global Routing to Config. Proxy routes through a proxy; Direct connects directly. If you used Scene before, check its associated conditions separately—don’t assume importing the file restores them.
- Connect: Choose an available node and turn on the connection. When prompted by the system, allow Shadowrocket to add a VPN configuration. This authorization is specific to the new device and can’t be restored from an exported rule file.
5. Verify the restored setup with four checks
An enabled connection switch only means the connection process has started; it doesn’t prove that rules, DNS, and auto-connect conditions have all been restored. First test a manual connection on a stable network, then check behavior on Wi-Fi and cellular. Change one category of settings at a time, and keep a config copy you can revert to.
| Check | Pass criteria | What to check first if it fails |
|---|---|---|
| Subscriptions and nodes | The original subscription updates successfully, and the intended node details are complete | Whether the URL has expired, authentication details are missing, or an old snapshot was imported twice |
| Config and rules | The correct config is selected, and the target connection matches the expected rule and policy | Whether Global Routing is set to Config, and whether policy names and rule order match |
| DNS and access | Common domain names resolve and pages load completely | Whether DNS settings were restored and the DNS server and related connections are reachable |
| On Demand | Auto-connect | Whether the Settings → On Demand conditions and switch are set correctly, and the system VPN status |
Run Connectivity Test in Home to help distinguish between some unreachable nodes and all entries being unreachable. A passing test alone doesn’t replace testing actual access. If node tests pass but a domain fails, check DNS, rule matches, and policy routing against the current config and connection logs. Don’t immediately delete every subscription and start over.
- Test a manual connection first, then restore the auto-connect conditions under Settings → On Demand. This avoids automatic triggers interfering with troubleshooting.
- If all TLS connections fail, check that the new device’s system date and time are correct, then verify the authentication details and network connectivity.
- If the connection fails only on one type of network, test the same node on Wi-Fi and cellular and note the differences. Don’t change the protocol and rules at the same time.
- After verification, keep a copy of the config confirmed to work. Save your own changes before updating a remote config.
6. iCloud and device transfer FAQs
Why is Config still empty after signing in to the same Apple Account on my new phone?
First, check in Files → iCloud Drive that the exported file exists and opens. If the old device saved it locally, export it again to iCloud Drive. If you use in-app sync, check the sync options on both devices and Shadowrocket’s iCloud permission in system settings. Import the file once you’ve confirmed it’s readable; there’s no need to keep uninstalling the app.
Why are there no nodes in Home after importing a config?
A rule file may not include server details. Go back to Home, choose Subscribe to restore the original subscription, and update it. Restore manually added nodes from your records using Add Server. Then return to Config and check the group names referenced by the rules; don’t substitute randomly created names for the original policies.
I see two copies of a group after importing twice. Which one should I delete?
Keep both for now. Check each subscription source and its last update status, then confirm which one can update from the original URL. Check which group name the current rules reference, keep the source that’s actually in use and can be updated, and delete the extra copy. Don’t bulk-delete by node name alone; the next subscription update may recreate those nodes.
The backup file opens. Can I erase the old phone now?
Not yet—not based on that alone. On the new device, first update the subscription, select the Config, test actual access, and verify the On Demand conditions. Make sure you can still access the protected backup copy, then follow the system’s process for handling the old device. If the subscription has expired, get a valid URL from your service provider before continuing.