A VPN subscription link (subscription URL) is an ordinary web address, yet it decides which servers show up in your client. It is generated by the provider in your dashboard; the client fetches it on a schedule and parses the response into a clickable server list. Get three things straight — what it contains, how to import it, and what to do if it leaks — and you have the basics of these clients down.

What a subscription link is: the server list behind one URL

A subscription link is not a server itself; it is the pickup address for your server list. You add it to a client as a subscription source, the client sends one HTTPS request, and back comes a text file: usually a Base64-encoded list of share links, one per line, using protocols such as Shadowsocks, VMess, Trojan, VLESS, Hysteria2 or TUIC. It may also return YAML for Clash / Mihomo, routing rules included. Once parsing finishes, the client turns each line into an entry in the server list.

Break the response down and each server entry holds only a few fields — but every one of them is required for a working connection:

Common fields in a subscription
Field Meaning Sensitivity
Server address / domain The entry point, either an IP or a disguised domain High
Port and protocol For example Trojan, VLESS or Hysteria2 on port 443 High
Credentials The UUID for VMess, the password for Trojan / Hysteria2 High
Transport and obfuscation parameters TLS, SNI, WebSocket path, gRPC service name High
Encryption method The Shadowsocks cipher suite, for example aes-256-gcm Medium
Routing rules (some subscriptions) Rule sets and proxy groups bundled with Clash-style configs Low

In other words, a subscription link bundles server addresses, protocol parameters and credentials into one string. It does not contain your dashboard password or payment details, but anyone who has it can use those servers — which is why it has to be kept like a credential.

You do not need to inspect the format to judge how sensitive a link is: paste it into a client on another device, and if it pulls servers and connects, it is the equivalent of a password.

Draw one line: if a single server share link leaks, you lose one server; if a subscription link leaks, you lose the whole list. The two are not kept to the same standard.

Where to get it: the copy button in your dashboard

Subscription links are generated by the provider and tied to your account, so there is only one route to yours: sign in to the dashboard. Signing up needs only a username and password — no email address — and the subscription section sits on the overview page once you are in.

  1. Sign in to the dashboard, open the overview page and find the "Subscription link" section — that is the address for your account.
  2. Copy the whole thing. Subscription links usually carry a long token parameter, and a single missing character makes the client update fail — typically a 404 or an empty server list.
  3. Pick an import method. Most clients can read straight from the clipboard, and the dashboard may also offer a QR code or one-click import; the QR code and the link are the same credential, so sending a screenshot out is the same as leaking it.
  4. Copy it again whenever you need it. The link is tied to your account and can be copied from the dashboard at any time, so there is no need to keep a separate backup; if your usage varies, you can start with a data pack, which never expires.

If you prefer to follow along step by step, the guides cover each platform with screenshots, in the same four steps as above.

Importing into a client: step by step for each platform

The menu names differ between platforms, but the flow is the same: add a subscription → update it once manually → the server list appears. The table below lists common clients and where to find the entry point.

Where to import a subscription in clients on each platform
Platform Common clients Where to add a subscription How to update
Windows v2rayN / Clash Verge Rev v2rayN: Subscription → Subscription group settings → Add; Clash Verge: Subscription → New In v2rayN, right-click and choose "Update subscription (without proxy)"
macOS ClashX / Clash Verge / Stash ClashX: Config → Managed config → Manage → Add Menu bar icon → Update subscription
iOS Shadowrocket / Stash Top-right "+" on the home screen → set Type to Subscribe → paste the address Swipe left on the subscription entry → Update
Android v2rayNG / Clash Meta / NekoBox Left-hand menu → Subscription group settings → Add subscription Top-right menu → Update subscription
Linux mihomo / sing-box Write it into the config file or subscription field Scheduled task or manual pull

The three places imports get stuck

If you are comfortable on the command line, a few shell lines will confirm whether a subscription link works:

# A subscription link copied from the dashboard looks like https://example.com/edge-api/client/subscribe?token=...
SUB_URL="https://example.com/edge-api/client/subscribe?token=..."

# Fetch and decode: most subscriptions return Base64-encoded share links, one server per line
curl -sL "$SUB_URL" | base64 -d | wc -l

# A decoded line looks roughly like this (203.0.113.10 is a documentation address, not a real server)
# ss://[email protected]:8388#HK-Direct

# On Linux, write it straight to a config that mihomo / Clash can use
curl -sL "$SUB_URL" -o ~/.config/mihomo/config.yaml

The number of lines returned is usually the number of servers. If decoding fails, the subscription is returning YAML rather than a Base64 list — import it as a config file instead.

How often to update: the refresh cycle

The point of a subscription link is that it follows the server side. When the provider adds a region, retires a route or changes an entry domain, you do not need to sign up again or reinstall the client — one update pulls the current server list. Most clients support automatic updates, commonly every 24 hours or on startup; the manual update option usually sits on the subscription entry itself.

The size of the route pool is what makes subscription updates worthwhile. Here is the current scale:

110+ Countries and regions covered
230+ Routes, including IEPL, relay and direct
Unlimited Devices online at the same time
60 days Money-back guarantee

After importing: routing rules and DNS leaks

A subscription that imports cleanly and loads web pages only proves that traffic flows. Two more things need checking before everyday use is stable.

Routing rules: what goes direct and what goes through a route

In rule mode, the client sorts traffic into three buckets by domain and IP: sites in mainland China go direct, international sites go through a route, and ad and tracking domains are rejected outright. Clash-style subscriptions usually ship with rule sets that work as soon as they are imported; clients such as v2rayN and v2rayNG need you to pick a routing mode yourself (bypass mainland China / global). Rule mode avoids pointless detours: sites in mainland China keep their original speed, and only requests that need a route pass through a server. As for route types, IEPL is the fit for scenarios that demand stability, while relay and direct routes each suit different cases.

DNS leaks: two consequences and one fix

If the client hands domain resolution to the DNS of your local network, two problems follow. First, the resolved result does not match the exit region of your route, so international sites resolve to a local node and speed drops noticeably. Second, your local DNS sees exactly which domains you have visited. The fix is to enable remote DNS or DNS leak protection in the client, or use fake-ip mode so that name resolution happens on the proxy side.

How to verify: open IP check and confirm the exit country matches the server you selected; then run a DNS leak test and confirm the resolver is not on your local subnet. Both checks passing is what counts as a finished import.

What to do if the link leaks: three steps to take right away

Common ways a subscription link leaks: a screenshot posted in a group chat, pasted into a forum asking for help, saved to a public cloud drive, or left on the clipboard of a shared computer. Once you notice, do three things in order.

The order is reset first, investigate next, update every device last. Resetting takes one click in the dashboard and costs the least; the longer you wait, the more data gets used up.

Cutting the odds of a leak day to day is simple too: keep the subscription link only in your client and your password manager; when family members need it, have each of them sign in and import it rather than forwarding the link around.

FAQ

Can I share a subscription link with family or friends?

Sharing the link as a common credential is not a good idea. There is no limit on simultaneous devices for one account, so household members can each sign in and import it; once a link reaches a group chat or any public place, you have handed over the whole list, and the only remedy is to reset it.

I have a new device — do I need a new subscription link?

No. Sign in to the dashboard, copy the same link, import it on the new device and update once, and you are set. There is no need to sign up again, and no need to generate a link for a single device.

Do subscription links expire?

The link is tied to your account and has no separate expiry date. While the account is active, you can copy the current link from the dashboard at any time; for devices you no longer use, it is worth deleting the subscription entry so one less credential sits around to be read.