ss://, vmess://, vless://, trojan:// link types: how share links differ from subscription URLs

Share links contain a single server’s settings; subscription URLs retrieve and update a server list. Shadowrocket handles each through a different import flow.

At a glance

If you already have a provider and subscription, first check whether you received server settings or a URL that can be fetched again for updates. This guide covers link prefixes, import options in Home, how updates work in Subscribe, and troubleshooting. You’ll learn which option to use and how to distinguish a successful import, a successful update, and a working connection. Shadowrocket handles the content you import; this guide does not provide, sell, or recommend servers or subscriptions.

Start with the prefix: share links contain settings; subscription URLs point to an update source

ss://, vmess://, vless://, and trojan:// are common prefixes for server share links. They indicate how the following content should be parsed according to the corresponding protocol. The content usually includes the address, port, credentials, and some transport settings needed to connect. Importing one creates a server entry; it does not automatically keep that server linked to a remote source for updates.

A subscription is usually an HTTPS URL. Shadowrocket requests that URL, reads the returned server list, and displays it in the corresponding subscription group in Home. The key difference isn’t the URL’s length or whether it contains a string of unfamiliar characters. It’s whether the client stores the current settings or a source it can request again later.

4 prefixes
This guide identifies ss://, vmess://, vless://, and trojan://
2 types of content
Settings for one server vs. an updateable subscription source
443
The default HTTPS port does not mean the proxy server uses that port

An https:// URL alone doesn’t tell you whether it’s a subscription. Regular webpages, sign-in pages, and configuration downloads also use HTTPS. Confirm that your existing provider identifies the URL as a Shadowrocket subscription, and copy the full URL rather than the account management page opened in your browser.

ss://
vmess://
vless://
trojan://

https://example.com/sub?token=xxxx

The examples above show prefixes and an obviously fictional subscription URL; they can’t be used to connect. Query parameters in a subscription URL may be used for authentication. Don’t remove everything after the question mark just because the URL looks long.

What the four share-link types contain

A prefix identifies the protocol; it doesn’t tell you the speed, location, or availability. The same protocol can use different ports and transport settings, and different protocols can connect to the same domain. Don’t rely on server names containing labels like “TLS” or “high speed” instead of checking the settings; names are usually just notes.

Link prefixProtocolWhat to check after importing
ss://ShadowsocksServer address, port, encryption method, and password. If a plugin is used, check its settings too.
vmess://VMessAddress, port, UUID, encryption settings, alterId, TLS, and transport settings.
vless://VLESSAddress, port, UUID, and security-layer and transport settings such as TLS.
trojan://TrojanAddress, port, password, TLS server name, and certificate verification settings.

A common vmess:// share-link format encodes JSON settings after the prefix. Other formats may also contain encoded credentials or URL query parameters. Encoding changes how data is represented; it doesn’t hide secrets. Anyone with the full share link may be able to recover the server settings, so don’t post it publicly in comments or screenshots.

Choose the right option: Subscribe manages sources; Add Server manages individual settings

If you have a subscription URL for a server list, save it as a Subscribe entry. If you have a share link for one server, import the link or enter its settings in Add Server. Choosing the wrong option can treat a subscription URL as a server address, or save just one server from a subscription without preserving its update source.

Subscribe: save a subscription source

Recommended

Use Subscribe to manage an existing subscription over time. It keeps the remote URL so you can request the source later and update the server list. This is the right option when maintaining an existing subscription.

Best for: an existing subscription URL whose server list may change

Add Server: enter one server

Choose the server’s actual protocol, such as Shadowsocks, VMess, VLESS, or Trojan, then enter its address, port, and credentials. Saving individual settings does not create a subscription source.

Best for: existing settings for one server that you need to check or maintain manually

Bottom line: to keep up with list changes, save the source in Subscribe

Don’t export and reimport a server from an updated subscription as a standalone entry and expect it to keep following changes. To manage it, return to the original subscription group.

How to import an existing subscription URL

  1. Copy the full subscription URL, including query parameters. Avoid adding quotation marks, spaces, or line breaks.
  2. Go to Home → Add button → Add Server, then select Subscribe from the type list.
  3. Paste the subscription URL into the URL field, add a recognizable note, and save. Don’t enter the full URL in a regular server address field.
  4. Check Home for the subscription group and its servers. If the group is empty, update the subscription and troubleshoot based on the error returned.

How to import an existing share link for one server

  1. Copy the complete link from its protocol prefix to the end, then use the client’s link import prompt. If importing from a QR code, verify the source before scanning.
  2. After importing, open the server’s edit screen and check the protocol, address, port, and transport settings—not just whether its name appears.
  3. If automatic detection fails, go to Home → Add button → Add Server, select the matching protocol, and enter the settings you already have one by one.
  4. After saving, select the server in Home and enable the connection. Importing an individual server does not add routing rules to Config.

How updates work: what changes when server settings change

Updating a subscription fetches the remote list again; it doesn’t “speed up” the current connection. If your provider changes an address, port, credentials, or list entries, those changes can appear in the client only after it successfully fetches and parses the updated content. A share link is a snapshot of the settings at the time it was imported. If the server changes, you’ll usually need to import a new link or edit the entry manually.

Maintenance: distinguish subscription groups from individual entries

Imported with Subscribe
  • Find the original subscription group in Home and update that subscription.
  • After updating, check whether the server count, names, or selected server have changed.
  • Before making long-term changes to settings, check the upstream content to avoid having your local edits overwritten by the next update.
Imported from an individual share link
  • If the address or credentials change, get a new, complete share link.
  • Import it again, compare the old and new entries, test the new one, then remove the old entry if needed.
  • Refreshing a different subscription won’t update this standalone entry.

Check which group an entry belongs to before updating or editing it. Keep a record of your subscription source before deleting an old group.

If an update fails, start with the error type. A timeout usually means checking whether the current network can reach the subscription domain. For HTTP 401 or 403, check the URL, access credentials, and service status. If the response is a webpage or parsing fails, make sure you didn’t copy a sign-in page, redirect page, or unsupported content. Different services may use status codes differently, so a single code doesn’t prove that a subscription has expired.

After importing: check the connection and Global Routing

Seeing a server in Home only means the client could save or parse the data. A successful subscription update only means the update URL was reachable and its content could be read. Neither result proves that a server can forward traffic. Test list retrieval and connection establishment separately.

  1. Select the server you want to test in Home. This avoids using an outdated entry after the list changes.
  2. Enable the connection and check for errors. If it fails immediately, first check the address, port, credentials, and TLS settings.
  3. Open Global Routing and check the current mode. In everyday use, Config rules affect where traffic goes. Use Direct as a direct-connection comparison; Proxy can help temporarily test the proxy path.
  4. If a target is reachable in Proxy but behaves differently in Config, check the matched rule and policy in Config instead of repeatedly importing the same subscription.
  5. Restore your preferred mode after testing. If On Demand is enabled, check the automatic connection conditions in Settings → On Demand so an automatic reconnection isn’t mistaken for an import result.

In rules, DOMAIN-SUFFIX matches domain suffixes, GEOIP matches IP geolocation, and IP-CIDR matches IP ranges. FINAL handles connections not matched by earlier rules. A subscription provides server sources; Config determines which policy to use. They are separate things. An updated subscription doesn’t mean the current rules point to the server or policy group you want.

FAQs: link detection, duplicate imports, and QR codes

Can I paste any HTTPS URL into Subscribe?

First confirm that it’s identified as a Shadowrocket subscription URL. An account homepage, payment history, or regular configuration download may not return subscription content. Once confirmed, go to Home → Add button → Add Server → Subscribe and enter the URL. If it returns a webpage, check the source again rather than changing the server protocol at random.

If a subscription contains only one server, is it still a subscription?

Yes. What matters is whether it keeps an updateable source URL, not how many entries it returns right now. A subscription may return just one server, while several individual share links may not have a shared update URL. Open the original subscription entry and check its type and URL before deciding how to maintain it.

Why do I see duplicate servers after importing the same link twice?

The client may have saved two separate entries, or there may be both a subscription entry and a manually added one. Check their groups, addresses, and ports first, and keep the source you need to maintain. After confirming the selected entry works, remove duplicates. Don’t delete the only saved subscription URL just to reduce duplicates.

Is a QR code another subscription format?

A QR code is just a way to carry text. It may contain a share link for one server or a subscription URL. After scanning, check the content type and import preview before saving. Don’t post QR code screenshots publicly; they may contain the same complete credentials as the original link.

Download Shadowrocket