Official Guide · Subscriptions and Servers
Shadowrocket
Subscription and Server Management Guide
Understand the difference between subscriptions, servers, and Config before importing, updating, or backing up.
This page is a reference for users who already have subscription or server details. For your first connection, follow the user guide to get started, then return to the relevant section to check fields and management options. The tutorial's import and troubleshooting steps also complement this page's guidance on updates, QR codes, and testing.
Get subscription links from your service provider. A one-time purchase of the client is not a subscription to a connection service. Shadowrocket and connection services are purchased separately. For app availability, pricing, and system requirements, see how to verify and purchase Shadowrocket on the App Store. Refer to the App Store listing for current details.
SubscribeSERVERConfig
Subscriptions maintain a set of servers; servers store connection parameters; Config determines how rules are handled. These are related, but they are different types of data.
01 / SUBSCRIBE
Subscribe and subscription entries
A subscription is a remote source of server details—not a connection switch or a rules configuration. It typically uses a URL to return multiple server entries. The client retrieves the content and displays the entries in the server list. To confirm a successful import, check that the subscription entry was saved and that server entries were created; the input screen closing is not enough. Having servers listed does not mean you are connected. You still need to select an entry, check Global Routing, and verify access.
First, identify what kind of information you have
When you receive connection details, identify whether they are a subscription URL, a single-server share link, or a configuration file. A subscription URL can be refreshed to replace a set of entries; a single-server link usually describes one server; a configuration file may contain DNS, rules, and policies. These three types of data do not belong in the same place. If the documentation is unclear, ask your service provider what the data contains and how to use it. Do not infer the type from a filename or link length.
Server collections and rule configurations also have different update scopes. A subscription can change server addresses without necessarily changing the rules in the current Config. Switching Config will not automatically correct a server password. During troubleshooting, first identify which type of data has the problem; this avoids repeatedly importing content without improvement. If you are just getting started, complete the process with one confirmed working subscription before adding others, so you have a clear baseline for comparison.
Save the Subscribe entry and check the response
From the add menu on Home, open Add Server, choose the Subscribe type, enter the URL, and give it a recognizable name. The exact menu location and fields depend on the current app interface. Before saving, check the URL character by character, especially capitalization, hyphens, and the final character in query parameters. Do not paste in explanatory text, line breaks, or punctuation, and do not remove anything after the question mark to “simplify” the URL.
Your current network must be able to reach the subscription URL for the initial fetch. If no servers appear after saving, distinguish between a failed request and a content parsing failure: the former may involve the network, certificates, or permissions; the latter may mean the response is in an unsupported format. A login page, message, or webpage is not a server list. Ask your service provider to confirm the response format and access status. Keep the exact error text rather than describing the issue only as “it won't import.”
| Type | What it contains | Check first |
|---|---|---|
| Subscribe | Subscription URL and a way to retrieve a set of entries | URL, access permissions, response content |
| SERVER | Parameters for a single connection | Type, address, port, authentication |
| Config | Rules, DNS, and other configuration data | Currently selected file and rule order |
Keep a traceable management record
Name subscriptions by purpose and source label, such as “Daily A.” Do not put access tokens in the name. A name is only for local identification; it must not be used for authentication. Record the group, selected server, and test network after the initial import so you have a basis for comparison after updates. If server names are similar, compare the address and protocol rather than assuming they are identical based on their displayed names.
A token in a subscription URL may grant direct access, so treat the URL like a password. Do not include the full URL in public screenshots, issue titles, or shared notes. When asking someone for help, provide the error type, network environment, and a redacted domain. Even if only a few characters look random, do not assume they are harmless. If a token is exposed, ask your service provider how to reset it.
02 / ADD SERVER
Add Server: manual fields and parameter checks
Manual entry is useful when you already have complete server parameters and need to verify each connection detail. Select the protocol type first, then fill in its fields. Do not enter the address and password and then repeatedly switch types. Protocols differ in their authentication methods and transport settings, and some fields may no longer apply after switching. The goal is to reproduce the supplied details accurately, not to experiment until the form looks complete.
Enter the address, port, and authentication details separately
Enter the supplied domain name or IP address in the server address field, and the supplied port number in the port field. An ordinary address field generally does not need a webpage path; do not paste a full share link into it. Remove any spaces around the domain, and make sure the port is a valid integer. If the details contain a colon, determine whether it separates the port or is part of an IPv6 address. Do not simply split the text at the final colon.
Authentication details must match the selected protocol. Shadowsocks requires the correct encryption method and password; VMess and VLESS often use a UUID; Trojan typically uses a password; HTTP and SOCKS5 may use a username and password. Do not enter a UUID as the server domain or put a remark in the password field. Copying can help avoid mistakes when characters look alike, but check for leading or trailing spaces and unexpected line breaks after pasting.
| Protocol or field | What to check | Common mistake |
|---|---|---|
| Shadowsocks | Match the encryption method and password | Checking only the password and overlooking the encryption method |
| VMess / VLESS | UUID, transport, and additional parameters | Copying transport settings from another entry |
| Trojan / Hysteria2 | Authentication, TLS, and protocol-specific settings | Substituting parameters from a different protocol |
| TLS / SNI | The name and requirements for certificate verification | Changing SNI as if it were an arbitrary remark |
| Host / Path | The value required by the selected transport | Removing a path or adding spaces without confirmation |
Do not guess TLS, SNI, or transport settings
Names used for TLS do not always match the connection address. The server address determines the connection target; SNI supplies a name during the TLS handshake. They serve different purposes. If the supplied details specify an SNI value, enter it exactly as given. If no value is provided, do not copy one from another server. For certificate errors, check the name, device time, and certificate status. Disabling verification is not a routine fix.
With some transports, fields such as Host and Path can affect whether the server handles the connection correctly. Slashes, capitalization, and query strings in a path may all matter; do not rewrite them to suit English reading conventions. The same address and port do not guarantee matching transport parameters. If the supplied details are missing a required field, ask your service provider to confirm it instead of copying settings from another working entry and hoping they fit.
Verify a manual entry by changing one variable at a time
Before saving, give the manual entry a clear remark so it can be distinguished from subscription-generated entries. For the initial test, select only this server and avoid changing Config, DNS, or network conditions at the same time. First check whether the parameters establish a connection on the current network; then check whether the rules behave as expected. If you change several things at once, even a successful result will not tell you which field made the difference.
A manual entry usually will not receive the same updates automatically when a subscription refreshes. If your service provider changes the port, password, or certificate requirements, check the entry again. Keep a record of the parameter source and purpose, but do not put the full password in a visible remark. Clean up duplicate test entries after checking them so you do not accidentally select an outdated entry later and mistake stale parameters for an app connection problem.
Types such as WireGuard have their own key, address, and peer parameter structures; do not configure them as if they were ordinary “domain and password” entries. Configure them manually only when you have complete, matching details, and keep private keys confidential. For an overview of the differences between types, read supported protocols and fields, then return to this section to check each field.
03 / SCAN & CLIPBOARD
How to import using a QR code or clipboard
QR codes and the clipboard are just input methods; the result depends on the content they contain. A QR code may hold a single-server link or a subscription URL. Copied text may include instructions, line breaks, or multiple items. Before importing, decide whether you expect to add one server or create an updatable subscription. Even if the content is recognized, check the type of entry created after saving.
Check the source and readability before using Scan QR Code
Open Scan QR Code from the scan option in the app and allow camera access when prompted by the system. Scan only QR codes from server details you already have, not configuration content from an unknown source. Keep the entire code in frame and avoid glare, obstruction, and steep angles. If the code is on another screen, adjust its brightness and distance. Resolve recognition issues first, then check whether the link format is supported.
If camera access was denied, check Shadowrocket's camera permission in system settings, then return to the app and try again. If the QR code is saved on the device and the current screen offers a photo-library scanning option, you can use it. If not, obtain the original text link and import it from the clipboard. Do not upload a QR code containing authentication details to a public image host or an unfamiliar scanning site just to transfer the image.
Keep the full content when importing from the clipboard
Before copying, make sure the selection contains only the target link, not instructions such as “tap to import,” and that it includes the final URL parameters. Return to the app and use the clipboard import action available in the current interface. If the system asks for paste permission, choose whether to allow it for this action. If no content is recognized, check what was copied in a trusted local text editor. Do not keep granting permission without checking whether the clipboard contains an image or ordinary explanatory text instead.
Text displayed in a browser is not always the full underlying link. Some pages shorten the displayed address, so manually selecting the text may copy only an abbreviated fragment. Use the copy function provided with the details, or confirm that you have the complete link. Curly quotes, brackets, and trailing punctuation can also affect recognition. Remove only characters that clearly belong to the surrounding explanatory text; do not decode or rewrite unfamiliar parts of the link.
After recognition, check the new entry instead of scanning again immediately
After importing, return to Home and check the new entry's name, protocol, address, and group. If you expected a subscription but see only one server, the QR code may have contained a single-server share link. If a subscription was added but the server list is empty, check the fetch result instead. A correct name does not prove the parameters are complete; verify the port, authentication, and transport settings, comparing them with the original details if needed.
Scanning the same QR code again may create duplicate entries. Before trying again, check whether it was already saved but moved in the sort order or placed in a collapsed group. If you find duplicates, keep the one confirmed to work and note whether it was imported manually or generated by a subscription. Do not delete many entries before identifying their source; you could remove one in use or see a similar entry reappear on the next update.
| Symptom | Check first | Next step |
|---|---|---|
| QR code not recognized | Code completeness, glare, camera permission | Get the original text link and import it |
| Text cannot be parsed | Complete link, punctuation, content type | Check which link formats are supported |
| Entry saved, but the list is empty | Whether it is a subscription and whether the request succeeded | Check the response content and access status |
| Entry exists but cannot connect | Parameters, current network, connection authorization | Continue with connection verification and troubleshooting |
Handle sensitive information after importing
QR codes and clipboard content can both contain complete authentication details. After importing, remove temporary images and text you no longer need, and check whether they are syncing to other devices automatically. Clearing the clipboard can reduce the chance of pasting the content by mistake, but it does not guarantee that copies saved in other apps or devices will also disappear. If you suspect the information has been exposed, ask your service provider about resetting the credentials rather than only deleting the local entry.
If the import succeeded but the connection failed, continue with the troubleshooting steps in the user guide. Scanning again will not fix certificate, password, or server status problems. Keep the differences before and after import and the exact error message. Describing “recognition failed,” “fetch failed,” and “connection failed” as separate issues is usually more useful than repeatedly adding the same content.
04 / LINK FORMATS
Share link formats and configuration boundaries
A share link encodes connection parameters; it is not simply another kind of webpage address. Each protocol has its own prefix and field structure, and parameters may be encoded. To determine whether a link is complete, check that its prefix, main content, query parameters, and remark have been preserved rather than trying to read the password by eye. If a link is not recognized, first check its format and original content. Do not replace characters blindly.
Distinguish a single-server link from a subscription URL
Content with prefixes such as ss://, vmess://, vless://, or trojan:// usually describes server details for the corresponding protocol. An ordinary HTTPS subscription URL, by contrast, is a network address for retrieving a set of entries. A prefix can help identify the type, but it does not guarantee that the content is valid or supported. The same protocol may use different encodings and additional parameters, which the app must parse in a supported format.
Do not use a share link as a browser address to test it. If a browser cannot open a protocol-specific link, that does not mean the server is unavailable. Conversely, an HTTPS address displaying a webpage does not mean it is an importable subscription. Check whether the response is in the expected format and whether the client creates the correct entry. Identify the type of source first, then use the corresponding import option.
# Subscription URL structure shown for illustration only; not a usable service
https://example.com/sub?token=xxxx
# Common single-server share link prefixes
ss://
vmess://
vless://
trojan://
Handling encoding, query parameters, and remarks
Percent-encoded text and Base64 content in a link may contain required fields. Do not convert them manually just to make them “look cleaner.” Plus signs, slashes, and equal signs can have encoding significance; if a copy tool changes a plus sign to a space or drops the final character, parsing may fail. Get the complete original text again before checking compatibility. Do not attribute a copy error to the protocol itself.
Parameters after the question mark may specify TLS, transport, a path, or other protocol options; they cannot all be treated as tracking information and deleted. In many share formats, the part after the hash is a remark, but preserve it in its original form for the app to process. If a name displays incorrectly, the remark encoding may be the cause, and the main parameters may still work. Check the displayed name and connection separately rather than treating them as the same issue.
A server link cannot replace Config
Importing a server usually saves a connection target; it does not mean rules, DNS, or Global Routing are configured. To route traffic by rules, check the current Config and configuration mode. Proxy and Direct also handle traffic differently when selected temporarily. A server name that mentions a particular use is only a remark; it does not make the client create the corresponding rules or replace an actual configuration check.
The following is an illustrative rule snippet from a Shadowrocket .conf file, not a complete configuration. Rules are checked from top to bottom in their actual file order, and processing stops at the first match. FINAL should be the last-resort rule. PROXY, DIRECT, and REJECT are rule actions, not three priorities that can be reordered arbitrarily.
[Rule]
DOMAIN-SUFFIX,example.com,PROXY
DOMAIN-KEYWORD,ad,REJECT
IP-CIDR,192.168.0.0/16,DIRECT
GEOIP,CN,DIRECT
FINAL,PROXY
Check format issues and rule issues separately
If parsing leaves out the address, port, or protocol, first check the original content and format compatibility. If the server parameters are complete but a domain is routed unexpectedly, check which rule matches it. Do not try to fix rules by repeatedly editing a share link, or cover up a missing field by importing an unfamiliar configuration. Handle one layer at a time so the results remain clear.
When asking for help, you can share the protocol type, error message, and a redacted outline of the fields, but do not send the full authentication content. Hiding only the displayed name is usually not enough; sensitive information may be in the encoded content or URL parameters. If you are unsure how to redact it, describe the symptom and field names only. Keep the original details in a trusted location and avoid exposing more information than necessary.
For details on when to use Config, Proxy, and Direct, see Config, Proxy, and Direct in Global Routing. This chapter focuses on data formats and the boundaries between entry types. For everyday connection steps, follow the user guide.
05 / UPDATE
Subscription update strategies and recovery from failures
Updating a subscription means fetching its remote content again and syncing local entries according to the app's current behavior. It does not repair the connection for every server. The remote content may add, remove, or change servers, and local selections and names may also change. Before updating, define what you are trying to do: sync details, check for an address change, or troubleshoot a connection. Each goal calls for different checks.
Keep a baseline for comparison before updating
Before a manual update, note the subscription name, selected server, and test network. If needed, keep a redacted summary of the parameters. If you already have a working connection, do not change the rules file or network conditions at the same time. Compare entries added, removed, or changed after the update to determine whether the remote content changed, the request failed, or the list remained as it was.
Use the update action available in the current interface for the relevant Subscribe entry or management screen. Do not make deleting and re-adding the subscription your routine update procedure; you may lose local remarks, source associations, or useful comparison details. Tapping repeatedly will not make the remote service provide new data sooner and may trigger rate limits. If you see a delay or failure message, read it before deciding whether to retry.
Judge automatic updates by observable results
If the current interface offers automatic updates, choose an interval that suits how often you use the subscription and confirm what it applies to. Background activity on mobile devices depends on system scheduling, network availability, and battery state; a set interval is not a guarantee of exact background timing. If details may be out of date before you use them, run a deliberate manual update and check the result rather than relying only on an enabled toggle.
Frequent updates do not make a connection more stable. If the remote content has not changed, repeated fetches return the same data. Better times to update are when your service provider announces a parameter change, the list no longer matches the supplied details, or you need to confirm that the subscription is still valid. If you have to edit fields manually after every update, check whether entries meant to be maintained by a subscription are being treated as permanent manual entries.
| Stage | Possible symptom | What to check |
|---|---|---|
| Network request | Timeout or domain name cannot be resolved | Current network, DNS, address reachability |
| Access authorization | Authentication failed or access denied | Token, validity, access conditions |
| Content parsing | Webpage returned or format error | Whether the response is in the required subscription format |
| List synchronization | Entries added or removed, names changed | Remote changes and currently selected entry |
Preserve the current working state if a request fails
A subscription update timeout does not mean every server is unusable. First check whether the device can access the network, then distinguish an unreachable subscription URL from a problem with the current network. Depending on the settings and routing conditions, subscription fetching may or may not use an existing connection. Do not assume either way. If you retry on another network, note the change. Do not also change the token, URL, and configuration, or you will lose track of the cause.
For authentication or access errors, ask your service provider whether the subscription URL has changed, the token is still valid, or access is restricted. Do not post the full URL on a public page when asking for help. If the response is empty, do not clear the local list immediately. First confirm whether the remote service intentionally returned an empty set or the request was redirected to a message page; then decide how to recover.
After a successful update, check selections and rule references again
When synchronization finishes, check whether the selected server still exists and whether an entry with the same name but different parameters has appeared. Review any configuration references that depend on server names: a name change may mean the existing selection no longer refers to the same target. Subscription synchronization does not guarantee that all references in a custom configuration will be fixed automatically. Verify the selected entry, test access, then address outdated names or remarks.
If only a few servers have problems after an update, keep the other working entries and compare the affected entries' addresses, ports, and authentication details one by one. Do not repeatedly delete and recreate the entire subscription to fix a single entry. If the problem is in the remote content, report the specific change and failure stage. Keep the recovery materials you need locally, and follow the deletion and backups section for migration.
06 / ORGANIZE
Organizing multiple subscriptions and tracking entry ownership
When managing multiple subscriptions, the priority is not to standardize every name but to retain the source and maintenance method for each entry. You should be able to distinguish subscription-generated servers from manually added servers and temporary test entries. Otherwise, when a server stops working, it will be hard to tell whether to update the subscription, edit manual parameters, or remove a temporary entry. Organize entries to make ongoing maintenance easier; there is no need to add complex layers just for a tidy appearance.
Use consistent names that reveal little sensitive information
Name subscriptions by purpose and source label, such as “Daily A” or “Backup B.” Mark manual entries as “Manual” and temporary entries as “Test.” Do not include passwords, full subscription URLs, or authentication tokens in names. Use consistent labels for the same source to make updates and backups easier to match. Remarks can explain an entry's purpose, but should not promise that a server will always work; conditions can change with the network and remote service.
A subscription refresh may replace server names with names from the remote content, so do not keep important maintenance details only in those names. For information you need to retain long term, use a separate protected record with the subscription label and useful identifying details. Do not rely on list position to remember a server; updates, collapsed groups, and sorting can all change its position. Confirm it using at least its name, protocol, and source.
Check duplicate entries by identity, not by name
Two entries with the same name may connect to different addresses; entries with different names may use the same target. To identify duplicates, compare the protocol, address, port, and key authentication or transport settings. Do not expose sensitive fields during comparison. If entries come from different subscriptions, retain their source information even if their parameters currently match, since future updates may differ.
When you find duplicates, first remove temporary entries that are clearly the result of an accidental import. Do not delete entries under a subscription without confirming their source. Local changes may be recreated or overwritten on the next refresh; actual behavior depends on the current app. If you no longer use a subscription, complete any migration and backup first, then remove the subscription entry. Deleting a few servers individually may not change what the next update returns.
| Entry type | Suggested identifier | Maintenance action |
|---|---|---|
| Subscription-generated | Subscription label and server source | Use subscription updates as the primary sync method |
| Manually added | Mark the remark as manual and state its purpose | Check each field against the original details |
| Temporary test | Use a clear test label | Organize or remove it after confirming the result |
| Preparing to stop using | Track migration status separately | Verify the replacement before deleting |
List groups and rule policies are different concepts
Groups shown on Home are for organizing the list; they should not be mistaken for policy selections in Config. Seeing servers under the same subscription only indicates a shared data source. It does not mean they switch automatically according to a rule. Actual traffic handling depends on Global Routing, the current configuration, and its policy references. After reorganizing the list, check that your existing selections still suit your needs.
Renaming an entry can affect configuration references that use its name. Before changing names, check for custom rules or policies that depend on them, and keep a record mapping old names to new ones. Do not rename everything and update the subscription at the same time. Keeping naming changes separate from remote synchronization makes it easier to identify which action affected a connection or selection.
Make small, sequential changes instead of a single large cleanup
Organize one subscription at a time: first confirm the entry is valid, check which servers belong to it, test one server, and then remove clearly duplicated temporary entries. Finish one group before moving to the next. Do not collapse, rename, sort, and delete everything at once. Changing only a few entries per pass makes it easier to return to a working state if something goes wrong, without rebuilding the entire list.
Test and sorting results are only part of the basis for organizing entries; they should not determine deletion by themselves. A server that times out on the current network may behave differently on another network, and a temporarily high latency does not mean its parameters are invalid. Record “currently unavailable,” “parameters expired,” and “no longer needed” as separate states before deciding to keep, update, or remove an entry. This helps prevent temporary network issues from causing data loss.
When using multiple devices, be clear about how each device syncs and who maintains it. Saving the same subscription on two devices does not mean manual remarks, sorting, or selections will stay in sync. Do not assume a change on one device takes effect everywhere without confirming the sync method. After moving to another iPhone or iPad, check its servers, Config, and system connection authorization independently.
07 / CONNECTIVITY TEST
Latency testing, sorting, and verifying a real connection
A latency test measures responsiveness under specific test conditions; it is not a complete assessment of connection quality. A low result once does not guarantee that every webpage will load, and a single timeout does not prove that a server is permanently unavailable. Understand whether the test checks connection setup, a particular request, or another form of reachability before interpreting its result. Consider test results alongside real access and rule matching rather than choosing only the lowest number in the list.
Keep test conditions consistent before comparing servers
Before running Connectivity Test, check the device's network, whether a connection is already established, and the current Global Routing and Config. Keep these conditions as consistent as possible when comparing servers; do not test some on Wi-Fi and others on a mobile network. Avoid downloading large amounts of data or switching networks during the test, as environmental changes make the results harder to compare.
If the current interface lets you choose a test method or target, note the settings and use the same conditions for the whole group. The test target may also be temporarily unavailable, so if every entry times out, check the target and device network before concluding that all the servers are down. Repeating the test after some time can show whether results are consistent, but there is no need to run it continuously just to get a better-looking number.
Distinguish responsiveness, throughput, and real-world availability
Response time measures how long a specific operation takes; it does not directly indicate transfer speed, sustained stability, or access to a particular service. Remote load, network routes, and the target service's status can all affect the experience. When choosing a server, check test results and verify that it reliably handles the tasks you actually use. A brief test is not a substitute for real use, and its result is not a permanent characteristic of the server.
If an entry passes its test but webpages do not load, check DNS, rules, TLS, and the target site rather than immediately reimporting the subscription. The test may not cover domain resolution or the actual request, and each may follow a different route. Start with a known test target, then check where the request fails. See DNS troubleshooting when latency is normal but webpages will not load for related steps.
| Mode | How it handles traffic | What to check |
|---|---|---|
| Config | Routes traffic according to the current configuration's rules | Check which rule matches the target domain |
| Proxy | Handles connections in proxy mode | Check which server is currently selected |
| Direct | Handles connections in direct mode | Does not prove that a proxy server is available |
Sorting changes the display order; it does not guarantee automatic selection
Sorting by latency can help you find entries that responded faster in the current test, but do not assume the app will switch to the first entry automatically. Check the selected marker, confirm the server manually if needed, and then test access. If the configuration uses other policies or selection logic, check what they actually reference so the selected entry in the list is not confused with the target ultimately used by a rule.
If you cannot find a familiar server after sorting, search by name and source instead of importing it again immediately. Timed-out entries may move to the end, and collapsed groups may hide entries. For lists with multiple subscriptions, check whether sorting applies to the current group or a larger set; the actual behavior depends on the current interface. Identifying the entry matters more than remembering which row it used to occupy.
Record results by failure stage
Real-world verification has several checkpoints: whether the entry is complete, whether the server can establish a connection, whether system connection authorization works, whether the domain resolves, and whether the target request completes. When something fails, note which checkpoint it reached. A system VPN configuration prompt during the first connection is part of authorization, not subscription authentication. See why the VPN configuration prompt appears for more information.
If one server repeatedly fails under the same conditions while other entries work, check that entry's authentication, port, and remote status. If all entries fail at once, first check shared conditions such as the device network, test target, and configuration changes. Checking shared causes before individual parameters is generally more effective than changing fields at random, and makes it easier to describe the issue to your service provider.
08 / BACKUP & REMOVE
Safe steps for deletion, migration, and backups
Before deleting anything, confirm the object, scope of impact, and available recovery materials. A single server, subscription entry, Config file, and system VPN configuration are different objects; deleting one does not remove the others. If you want to stop a connection, disconnect first and check the On Demand conditions. If you want to organize the list, manage its entries. Do not delete all your data just to disconnect normally.
Back up the necessary details before deleting anything
At a minimum, a backup should include valid subscription URLs, manually entered server parameters, the Config actually in use, and notes that explain how they are related. A subscription URL can retrieve the current remote content, but it cannot guarantee recovery of a previous server list. A configuration file may not include every manually added server. Identify the materials needed to rebuild each object; do not rely on a screenshot of the list alone.
If the current app provides an export, share, or backup option, check what it includes and whether it contains authentication details or custom configuration. Different options may export only a single entry rather than the entire state. After exporting, check in a trusted location that the file is readable and complete before deleting the original entry. Do not assume that a file can be restored successfully just because it was created.
Protect backups containing sensitive information
Backups may contain subscription tokens, passwords, UUIDs, or private keys. Store them in a protected location under your control. If you sync between devices, check the account, devices with access, and sharing scope; do not use a folder that is public by default. Label backups clearly by purpose and contents, but never put full credentials in the filename. After a temporary export, also remove copies from message attachments, the photo library, and other transfer locations.
Reinstalling the app and restoring its working data are separate tasks. To get a previously purchased app on a replacement iPhone or iPad, see how to restore a previous purchase. Reinstalling the app does not guarantee that servers, subscriptions, and custom configurations will all be restored. Do not rely on assumptions about system backups; confirm in advance that you can rebuild essential data and keep a separate checklist.
| Item to delete | What to check | Recovery source |
|---|---|---|
| Single server | Whether it is in use and whether it came from a subscription | Original parameters or a valid subscription |
| Subscribe entry | Effects on associated servers and configuration references | Complete, valid subscription URL |
| Config file | Whether it is the active configuration and whether it contains custom content | Protected copy of the configuration |
| System VPN configuration | Effects on connection authorization and On Demand conditions | Request system authorization again in the app |
Clean up entries in small, deliberate steps
Before deleting a server, switch to another entry confirmed to work and check whether any name references depend on it. Before deleting a subscription, read the confirmation prompt and check what will happen to associated entries; the current app's prompt is authoritative. A single server removed from a subscription may reappear on the next refresh. If you are retiring a source for good, plan at the subscription level rather than repeatedly deleting entries after every update.
Before deleting Config, export any custom content and confirm that another suitable configuration is available. If access behavior changes afterward, first check the current Global Routing and selected file rather than immediately changing a server password. If you remove the system VPN configuration, a future connection may request authorization again. That rebuilds the system connection configuration; it does not mean the subscription must be purchased again or server credentials have expired.
After recovery, verify the import, selection, and connection
During recovery, add the subscription or manual servers first, then confirm the list and source. Next, import and select the required Config, and finally check Global Routing and system connection authorization. Do not restore a large number of old entries and immediately delete duplicates; first verify one complete working path. If a configuration copy is from an earlier setup, check that the server names it references still exist so that a successful restore does not point to missing entries.
Keep the old device and valid backup materials until verification on the new device is complete. Once everyday access, subscription updates, and custom rules all work, remove copies you no longer need. If a subscription token or password in a backup has been reset, use the current details from your service provider. An old backup can help explain the configuration, but it can no longer serve as valid authentication material.