What is a subscription link, and how is it different from a download link?
A VPN subscription link is an address a client uses to retrieve connection configurations, and it usually includes credentials tied to your account. Import it into a compatible client, which then fetches the configuration from that address. If routes change later, you can refresh the subscription to retrieve the latest configuration.
It’s neither an installer nor proof of payment. A “monthly subscription” refers to a billing plan; a “client subscription” is a way to update configurations. They’re not the same thing. Monthly plan data resets each month on the activation date, but that doesn’t mean the client refreshes its routes on that same day. Updating a subscription also doesn’t reset your plan’s data.
A subscription may return a list of nodes or a full configuration with nodes, proxy groups, and routing rules. The result depends on the format provided by the service and what the client supports. An address that can be copied isn’t necessarily readable by every client, and encoded content doesn’t mean the link is safe to share publicly.
| Item | Primary use | What to know |
|---|---|---|
| Client download link | Download and install the software | Can’t be imported as a subscription link |
| Subscription link | Retrieve and update connection configurations | May contain account credentials; keep it private |
| Single-node share link | Import the settings for one route | Usually can’t replace ongoing updates from a full subscription |
| Local configuration file | Load a configuration from your device’s storage | Won’t sync server-side changes unless linked to an update URL |
Get a subscription link from your account
GaoVPN subscriptions are available after you log in. Open the account dashboard, check your account and plan status, then use the option provided to get a subscription compatible with your client. Interface labels may change between versions, so follow the current instructions in the dashboard rather than looking for a “universal link” on a public webpage.
- Check your device platform. Visit the client download page in the dashboard for the relevant instructions, and install the client you plan to use first.
- Check your plan status. If the dashboard says your plan is unavailable or your data status is unusual, resolve the account issue first. Repeated imports won’t fix it.
- Choose the format that matches your client, then copy the entire address. Don’t copy only the shortened text shown on screen, and make sure no spaces or line breaks are included.
- Return to the client and import the link. If one-click import is available, confirm which app will open. If it doesn’t launch the right app, use the client’s manual import option instead.
GaoVPN doesn’t require an email address. Keep your account credentials secure after logging in, and treat your subscription link as sensitive information. On iOS, access is subject to the dashboard’s active-plan checks. Don’t bypass the dashboard to look for installation files or configuration links from unknown sources.
How to import on different platforms: check the format, then permissions
GaoVPN supports Windows, macOS, iOS, Android, and Linux. Check the client setup guides and dashboard instructions for the specific client, format, and steps. The general workflow below applies broadly, but button names vary between apps.
Windows and macOS
In most clients, add a remote address from the configuration, subscription, or configuration management screen. Save it, update the subscription, then select the imported configuration for use. Seeing it in the list doesn’t mean it’s active. To route browser traffic through the client, check the system proxy setting. To route traffic from more apps, follow the guide to see whether TUN mode is appropriate. It may require system permission and can conflict with other networking software.
iOS and Android
Add the subscription address in the client, or open an installed compatible app from the dashboard. Your device may ask permission to create a VPN configuration. This permission is needed to route network traffic locally; it doesn’t confirm that the subscription is active. After importing, select the configuration and start the connection. Mobile operating systems may delay background updates, so a manual refresh before use is often a more reliable way to check.
Linux
Clients with a graphical interface generally work much like desktop apps. With command-line clients, first check whether the program expects a full configuration file or can fetch a subscription URL itself. Don’t use a remote link as if it were a local configuration path. When troubleshooting, check configuration parsing errors and startup logs. Avoid putting commands containing tokens in shared scripts or public terminal logs.
Keep “subscription format” separate from “node protocol.” Shadowsocks, VMess, Trojan, VLESS, Hysteria2, and TUIC are different protocol names, not interchangeable subscription formats. A client that can read a subscription list may still lack support for some protocols in that list. If you see an “unsupported protocol” error, check the client version and dashboard instructions rather than simply renaming the node.
Seeing a route is only the first step. A complete result means the configuration is selected, the connection is active, and the target app is routed as expected.
When to update: follow changes and troubleshoot issues instead of refreshing constantly
There’s no single refresh schedule that works for every client. Start with the update settings recommended by the client or its official guide. If automatic updates are available, make sure they’re enabled and check the last update time. Don’t set refreshes too frequently: repeated requests won’t make routes faster and may trigger server-side limits.
Refresh once after the initial import to make sure you have the current configuration. A manual update is also useful after a route change announcement, when reconnecting after a long break, or if a previously working route keeps failing. If an update fails, keep any working configuration for now rather than deleting it. The old configuration may still work, and removing it could make troubleshooting harder.
If you’ve changed routing rules, find out how your client handles updates first. Some clients replace the remote configuration; others support separate local overrides. Store custom rules in a location the client explicitly supports, and keep a backup of anything important before updating. Backups may contain keys, so don’t share them publicly.
Troubleshooting failed imports and connections that don’t work
First identify where the problem occurs: the address can’t be retrieved, the content can’t be parsed, the route won’t connect, or only one app fails to use the proxy. Troubleshoot each issue separately to avoid unnecessary changes. Work through the checklist below; there’s no need to reset all your settings first.
- ✅ Check the link’s source and completeness: copy it again from the dashboard, remove extra spaces, and make sure you haven’t copied a login page or client download link.
- ✅ Check your account and plan status: expired credentials, a reset link, or a plan status change can affect the result. Follow the message in the dashboard.
- ✅ Check the format and core support: if parsing fails, check the format first. If the client reports an unsupported protocol, check its capabilities and version.
- ✅ Check your local network and retrieval path: your current network may not be able to reach the subscription server. Follow the official instructions to see whether update requests need to go through a proxy.
- ✅ Check the selected configuration, system proxy, and routing mode: make sure the new subscription is selected, the app uses the system proxy, and the target domain is routed through the expected exit.
- ✅ Check the exit and app behavior: look up your exit IP, then test a commonly used app. Don’t rely only on the connection toggle or a cached page.
You can use the site’s IP lookup to check your browser’s exit IP. It only shows the route used by that particular request, though, and can’t confirm that every app on your device uses the same route. An app may have its own proxy settings or bypass the system proxy.
Check DNS separately, too. A DNS leak generally means DNS requests aren’t using the expected protected route; seeing an unfamiliar resolver alone isn’t enough to draw that conclusion. Check the client’s DNS mode, routing rules, and test results together. Your browser’s encrypted DNS settings may also change the route used for lookups. If you need help, share the client name, operating system, and an error message with sensitive details removed.
What to do if your subscription link is exposed
Sharing the full link puts more at risk than just revealing route names. Its credentials may let someone retrieve your configuration or use resources linked to your account. If you shared it by mistake, remove or delete the public post first, then look in the dashboard for an option to reset the subscription or update credentials. If there isn’t one, contact support through the support ticket portal.
Deleting a chat message doesn’t prove that nobody saved it, and changing your login password doesn’t necessarily invalidate an old subscription link. Confirm that the old link has been revoked. After resetting it, replace the old link on each of your devices and update the subscription. Also check backups, synced notes, and automation scripts for saved credentials.
When sharing a troubleshooting screenshot, hide the entire subscription link, QR code, and any keys in the configuration. A QR code is just another way to encode the same information; it isn’t safer to share publicly because it’s not text. Don’t confuse syncing configurations between your own devices with sharing access credentials with someone else.
Get the right format from the dashboard, import it, select it and connect, update when the configuration changes, then verify the result using your exit IP and apps. Keep the link private. If it’s exposed, reset the credentials rather than just deleting a message.