A subscription link is a dedicated address that lets a client fetch route configurations. Instead of entering server addresses, ports, protocols, and authentication details one by one, you copy the link from your user panel and give it to a compatible client to retrieve the current configuration list. Because the link may also contain access credentials, it should never be treated like an ordinary web URL or shared publicly.

A subscription link is neither a client nor a network protocol. It only delivers configuration to the client. The actual connection is established by protocol implementations such as Shadowsocks, VMess, Trojan, VLESS, Hysteria2, or TUIC. Whether traffic uses a direct route, relay, or IEPL dedicated connection depends on the server deployment and entry-point design. Understanding these layers helps you avoid changing every setting when an import fails.

What’s included in a subscription link

After a client accesses the subscription address, the server returns a machine-readable configuration. It may be an encoded collection of nodes, YAML, JSON, or a client-specific format. Seeing garbled text, a long string, or a downloaded file when opening it in a browser does not necessarily mean the link is invalid; it often means the browser does not know how to parse proxy configurations.

A complete configuration typically describes the server entry point, port, protocol, authentication fields, transport method, TLS parameters, server name, and a route label for identification. Required fields vary by protocol, and clients do not automatically fill in every missing value. The subscription generator must provide a format the client recognizes, while the importing client must support the protocols and transport combinations it uses.

Protocol Configuration focus Common compatibility issue
Shadowsocks Server, port, encryption method, and password The client does not support the configured encryption method
VMess User ID, transport layer, TLS, and server name An older client cannot recognize newer transport parameters
Trojan Password, TLS, server name, and certificate verification A system time or server-name error causes the handshake to fail
VLESS User ID, transport method, and security-layer parameters The core does not support the combination used in the subscription
Hysteria2 Authentication, TLS, and UDP-based transport parameters The local network restricts UDP, so the connection cannot be established
TUIC Authentication details, TLS, and UDP transport settings The client core lacks the corresponding protocol implementation

The same subscription address may not import directly into every client. Some clients read generic node lists, some accept only a specific configuration structure, and others require a dedicated subscription format from the server. If you see “Unsupported URL” or the list is empty after import, first check the client type and subscription format instead of repeatedly pasting the same address.

The subscription distributes configuration, the protocol establishes the connection, and the route carries the traffic. They are related, but they are not the same thing.

Get and save it from your user panel

The correct source should be the provider’s own user panel. After signing in, open the subscription, client, or connection-configuration section, choose the format for your client, and use the copy function to obtain the complete address. Do not rely on text saved long ago in chat history or regenerate the link from third-party pages in search results.

After copying the link, avoid pasting it into a search box to test it. Most browsers may retain it in history, cross-device sync data, or search suggestions. A safer approach is to return directly to the client and choose “Import from URL,” “Add subscription,” or a similarly named option before pasting. If you must record it temporarily, use a controlled local password manager and delete any plaintext copy after importing.

You can name a subscription after the service, purpose, or region. The name affects only local display and does not change the route. After a successful import, the client will usually show several route labels. Save the subscription first, then run an update to confirm that the client can access the subscription address again. An “Added successfully” message alone does not prove that the configuration was downloaded completely.

How to tell: The subscription setup is complete only when it imports, updates, and displays the route list. Saving a URL in the client alone does not prove that the format and network access are working.

How to import on different platforms

Windows

Windows clients usually separate “subscription management” from “single-node import.” Open subscription management, add and save the subscription address, then run an update. If you paste the link into a single-node editor, the client may treat the entire URL as a server address and report a format error.

Before connecting, distinguish between system proxy mode and TUN mode. System proxy mode mainly handles apps that follow the system proxy settings. TUN mode creates a virtual network interface and usually covers more traffic, but it may require system permissions. The subscription provides remote configuration; it does not choose how local traffic is handled. If the browser works but other apps do not, check the operating mode and routing rules instead of immediately resetting the subscription.

macOS

macOS clients use the system network extension to establish a tunnel. When enabled for the first time, macOS may ask you to approve the network extension or VPN configuration. If the import succeeds but the connect button immediately returns to its previous state, common causes include an unapproved network extension, an incompatible client core, or conflicts with leftover configuration.

If you also use iCloud Private Relay, an enterprise network filter, or another network extension, clearly identify what each one controls. They may modify DNS, browser traffic, or the default route. During troubleshooting, enable only one primary network-control tool at a time: confirm the basic connection first, then restore other features one by one.

Android

Android clients generally offer “Import subscription from clipboard” and “Add via URL” in a side menu or configuration page. After importing, allow the client to create a system VPN connection. If the connection frequently stops after the screen locks, check the system’s background-execution and battery-saving restrictions for the client. This is a local process being suspended, not an automatically invalidated subscription address.

Some Android clients place subscription updates and configuration activation on separate pages. After updating, confirm that the selected configuration still exists and check whether a local template has overridden the routing mode. When switching clients, do not copy the old client’s data directory directly. Instead, re-import using the subscription format provided for that client in the user panel.

iOS and iPadOS

On iOS and iPadOS, clients work through the network-extension interface provided by the system. The import option may appear under subscriptions, remote configurations, or resources. After pasting, the system will ask you to add a VPN configuration. This approval creates the system-level connection and is separate from downloading the subscription.

If the subscription cannot be read from the clipboard, press and hold the input field to paste manually, then check the app’s clipboard permission. If the configuration updates but cannot connect, continue by checking protocol support, TLS verification, and whether the current network allows UDP. A successful subscription update does not mean every route is suitable for the current access network.

When should you update a subscription?

There is no single standard update interval for subscriptions. The client stores a snapshot of the last downloaded configuration; changes to route labels, entry addresses, ports, or protocol parameters on the server do not change that snapshot automatically. Whether updates happen automatically, and how often, depends on the client settings and the server policy.

A more useful approach is to update in response to events: the user panel announces configuration changes, many existing route names change, the client lacks routes already shown in the panel, the server replaces connection parameters, or you have just reset the subscription address in the panel. When the connection works normally, there is no need to delete and re-import it frequently just to “refresh” it.

When an update fails, first distinguish between “subscription access failed” and “subscription parsing failed.” The former usually appears as a timeout, network error, or invalid authentication, meaning the client did not obtain the content. The latter usually appears as an unsupported format, an empty configuration, or a field error, meaning the content was returned but the client could not understand it. The two problems require completely different troubleshooting paths.

If old routes still connect while the subscription update fails, temporarily keep the old snapshot and check the system time, DNS, subscription format, and whether the link has been reset. Do not clear the configuration, change DNS, switch cores, and reinstall the client all at once before finding the cause; that makes the source of the failure much harder to identify.

Update principle: Subscription updates synchronize configuration; they are not a speed test and do not optimize the local network. If routes work but updating fails, preserve the current setup first and locate the download or parsing failure.

What to do if a link is exposed

If a subscription link appears in a public screenshot, repository, shared document, browser sync record, or uncontrolled third-party tool, treat it as exposed. Deleting the public content is not enough because the link may already have been cached, copied, or scraped. The correct response is to invalidate the old credentials and deploy the new address to clients you control.

First, open the official user panel and look for an option to reset the subscription, update the access key, or generate a new link. After the reset, the old subscription address should no longer provide configuration. Copy the new address from the panel and replace the old subscription on every device. Do not simply click update on the existing entry: the old URL does not automatically become the new one.

Next, clean up the sources of exposure. Delete public pages, plaintext credentials in commit history, shared notes, screenshots, and temporary text. If the link was pasted into a browser address bar, remove the related history and synchronized copies as well. If you gave it to a third-party conversion tool, complete the reset anyway—even if the page claims it does not save data. Do not base your security decision on that claim.

When verifying the old link, do not submit it to an online testing website. You can keep a temporary test entry in a controlled client, attempt an update, and confirm that the server rejects the old credentials before deleting the entry immediately. After importing the new link, check the route list and connection status again to ensure that no device is still running from an old snapshot.

How subscriptions, routes, and routing rules relate

Route names in a subscription may be labeled direct, relay, or IEPL, but these labels are server-side configuration notes and cannot fully describe the physical path. Direct usually means the client connects to an overseas server entry point; relay usually means it first connects to a nearer entry point, which then forwards traffic through the provider’s network; IEPL means the cross-border segment uses a dedicated connection. For implementation details, follow the provider’s route documentation.

A subscription does not automatically solve every DNS problem either. A client may use system DNS, remote DNS, encrypted DNS, or different resolvers according to rules. If a destination website still detects an unexpected region after connection, check the exit IP, DNS request path, browser cache, and existing regional information on the account. Seeing “Connected” in the client is not enough to prove that every DNS request followed the expected path.

Routing rules determine which requests use proxy routes and which connect directly. Common criteria include domains, IP ranges, applications, or rule sets. Rule order and matching logic are implemented by the client. Even when a subscription includes rules, local configuration may override them. If one website opens while another still uses the local exit, inspect the matched rule instead of assuming that only part of the subscription was imported.

Symptom Check first What not to do first
Subscription cannot be downloaded Whether the link is complete, credentials were reset, and the current network can reach the subscription endpoint Delete all local configuration
The list is empty after downloading Subscription format, client core, and protocol support Keep adding duplicate subscriptions
The browser works, but other apps do not System proxy, TUN mode, and app routing rules Generate a new subscription link
The detected region does not match expectations Exit IP, DNS path, routing rules, and cache Only change the subscription name
The original route disappears after updating The server’s latest list and the currently selected configuration Continue relying on an old snapshot for a deleted route

Common beginner mistakes and a troubleshooting order

The most common mistake is blaming every failure on the subscription link. In reality, subscription download, configuration parsing, protocol handshaking, system-level handling, DNS resolution, and routing-rule matching are consecutive but independent stages. Success at one stage does not guarantee success at the next. Checking them in order is usually faster than constantly switching routes.

First confirm whether the subscription can update and note any download error from the client. Then confirm that the route list appears and the protocol is supported. Choose one configuration and establish a connection, identifying whether the failure occurs during resolution, the handshake, or after connection when no traffic passes. Finally check the system proxy or TUN mode, DNS, and routing rules. Change one variable at a time and verify again after each change.

Another mistake is assuming that Base64 or another encoding protects the link’s contents. Encoding changes only the representation; it is not encryption. Anyone who can read the subscription can usually decode its node information as well. Real access control comes from the subscription endpoint’s credentials, server-side validation, and the ability to reset them after exposure.

Do not casually import subscription files into clients from unknown sources. A client needs to read server addresses and authentication fields and could theoretically access the complete configuration. Get clients from trusted sources and keep the core version compatible with the subscription protocols. When switching clients, copy a format suited to the new client from the panel instead of giving the old client’s exported database to a conversion tool.

Bottom line: Treat a subscription link as a sensitive configuration gateway. Get it from the official panel, import it into a compatible client, and update it when needed. If it is exposed, immediately reset the old credentials, replace the link on every client, and verify that the old address is invalid.