Open a client for the first time and you meet four words: subscription, node, protocol, routing. Most people pause here — what does each one control, and which do you change when the connection fails? This beginner's guide works from the outside in, putting every term back where it belongs: the subscription decides which nodes you get, the node decides where your traffic exits, the protocol decides what that traffic looks like as it crosses the network, and routing decides which traffic goes through the proxy and which goes direct.
Each section below follows the same shape: what it is, what it affects, and the mistakes beginners make with it. By the end you should be able to read every setting in your client and know which layer to check first when something goes wrong — instead of changing parameters from top to bottom.
Subscription links: where your node list comes from
A subscription link is an http/https address provided by your service. When the client requests it, it receives a configuration file, usually in one of two forms. The first is a base64-encoded node list, one URI per line, each starting with ss://, vmess:// or trojan://. The second is YAML or JSON that clients such as Clash or sing-box read directly; along with nodes, it carries rule sets and policy groups.
The core problem it solves is synchronisation. Nodes get added, removed, moved to new addresses and re-tuned; entering them by hand is slow and easy to get wrong. A subscription reduces all of that to a single update. Clients usually fetch it at startup and at fixed intervals, and most let you trigger an update manually from settings.
# Config snippet returned by a subscription link (illustrative)
proxies:
- name: "Hong Kong-01"
type: ss
server: hk01.example.com
port: 443
cipher: chacha20-ietf-poly1305
password: "******"
- name: "Japan-02"
type: trojan
server: jp02.example.com
port: 443
sni: jp02.example.com
password: "******"
One thing to be clear about: a subscription link is a credential. Anyone who has it can import your nodes and use up your traffic. So don't paste your subscription address into public groups or forums, and don't share it in screenshots.
If a subscription link leaks, go back to your user panel and reset the subscription address; the old link stops working immediately. Then delete the old profile in your client and import the new link. No password change is needed, and your existing plan is unaffected.
Another common misconception: updating a subscription syncs node changes from the server; it does not overwrite the rules and policy groups you edited locally (clients differ slightly here). If you have hand-edited your config, check whether your changes will survive an update before you run one.
Nodes and routes: direct, relay and dedicated lines compared
A node is one record in the config file: a server address, a port, and a set of protocol parameters. Choosing a node really means choosing where your traffic exits. The exit region determines the location some services see, and the exit route determines how stable the connection is.
Route type isn't about where the exit is — it's about how traffic travels from you to that exit. It's the layer beginners overlook most, and the one that shapes how the connection actually feels. There are three common kinds:
Direct
The client connects straight to the address the server exposes. It's the shortest path and the cheapest to run. The trade-off is that this path runs over public international links, queuing alongside everything else at peak hours — congestion and jitter show up directly in your experience.
Relay
Traffic first reaches a relay server, which forwards it to the exit node — two hops in total. The extra hop adds overhead, but relays usually run on optimised international routing, so the path is more predictable and generally more stable than direct. This is the workhorse route type in most subscriptions.
IEPL dedicated line
A dedicated line puts your traffic on a point-to-point private circuit that doesn't share bandwidth with public internet traffic. The benefit shows up as more predictable jitter and packet loss, with peak-hour performance closer to off-peak. The trade-off is cost, so these routes are usually reserved for stability-sensitive use.
| Route type | Traffic path | Key characteristics | Best for |
|---|---|---|---|
| Direct | Client → exit server | Short path, low cost; affected by congestion on public links | Everyday browsing, off-peak hours |
| Relay | Client → relay server → exit server | Two-hop forwarding, predictable path, more stable than direct | Video streaming and long everyday sessions |
| IEPL dedicated line | Client → dedicated line entry → exit server | Runs on a private circuit; jitter and packet loss are more predictable | Meetings, real-time collaboration and other stability-sensitive uses |
In short route type sets the floor on stability. In the same exit region, switching routes can change the experience completely — so when you look at a service, check which route types it offers first, then how many regions.
One more thing: policy groups in a client bundle several nodes into one group, then pick from them automatically by latency test, manually, or in rotation. Nodes are the resource; policy groups are how you use it. Don't confuse the two.
Common protocols: from Shadowsocks to Hysteria2
The protocol decides how the client and server handshake, how they encrypt, and what the traffic looks like on the wire. It doesn't affect your exit location, but it directly affects whether you connect at all and how fast it feels. A single server can expose several protocol entry points at once, and the subscription lists them separately.
| Protocol | Transport | Key characteristics | Watch out for |
|---|---|---|---|
| Shadowsocks | TCP / UDP | AEAD ciphers (chacha20-ietf-poly1305, aes-256-gcm and others); lightweight implementation with low overhead | Few parameters, good for a first setup |
| VMess | TCP, can run over WebSocket / gRPC | UUID authentication, several transport options | Time-sensitive: a large clock difference between the two ends breaks the handshake |
| VLESS | TCP, often paired with TLS / REALITY | No encryption of its own — TLS handles that, which keeps it light | Depends on correct TLS parameters; get them wrong and it won't connect |
| Trojan | TLS(TCP) | Carried as standard HTTPS, usually on port 443 | The SNI value has to match the certificate |
| Hysteria2 | QUIC(UDP) | Built-in congestion control, performs better on lossy links | Runs over UDP; unusable where UDP is blocked |
| TUIC | QUIC(UDP) | Also QUIC-based, with fast connection setup | Also depends on UDP being available |
VMess handshakes include a timestamp check. If your device clock and the server clock differ too much, requests are rejected outright. When a node looks available but never connects, check that your device time is set automatically — that's faster than cycling through nodes.
In short no protocol is universally better. Work through it in this order: does your client support it → does your network handle UDP well → does the service offer routes for it. Once all three are yes, talk about personal preference.
Routing and the three modes: rule, global and direct
Routing (also called split tunnelling) decides whether a given connection goes through the proxy or direct. The client matches it against a rule list, typically by domain and domain suffix, IP range and GeoIP location, process name, or port. Rule lists usually fall into three blocks: what should be proxied, what should go direct, and what should be blocked.
Clients generally offer three modes. The only difference is what happens by default:
- Rule mode: matches against the rule list — proxied entries go through the proxy, direct entries go direct, and everything else takes the default exit. This is the one to use day to day.
- Global mode: all traffic goes through the proxy exit; whether direct entries in the rule list still apply depends on the client. Useful for a quick check of whether a problem comes from your routing rules.
- Direct mode: nothing goes through the proxy; the client keeps only local DNS and the rule engine. Useful for temporarily standing down on a network that doesn't need a proxy.
Three symptoms point to misconfigured routing: domestic sites get slower (traffic detours overseas and back), LAN devices such as printers, screen-mirroring targets and NAS boxes disappear, and some apps fail to sign in or pay. If you see these, first check whether the mode has been switched to global.
How DNS relates to routing
To decide whether a domain should be proxied, routing has to resolve it first. If that resolution happens locally, your queries are visible to the local network — the classic DNS leak. The more common consequence, though, is a mismatch between the resolved address and the route: you're exiting overseas but you get handed a local CDN address, so speeds never pick up.
Most modern clients handle this with fake-ip or remote resolution: domains that need the proxy are resolved by remote DNS, while direct domains still use local DNS. In most cases the defaults are fine — only revisit your DNS settings if pages load slowly or a few sites won't open at all.
Keep your routing troubleshooting in a fixed order: confirm the mode is set to rule, then check which rule the domain in question matched, and only then touch DNS. Working backwards makes it easy to tangle two problems together.
Client and platform differences: system proxy, TUN, per-app routing
The same subscription behaves differently across platforms, and the differences come down to two things: how traffic is captured, and whether you can route per app.
Capture methods: system proxy and TUN
A system proxy only applies to apps that respect the system proxy setting: browsers and most desktop software do, but some games, terminal tools and apps with their own network stack ignore it. TUN mode creates a virtual network adapter and captures traffic at the network layer, covering far more; the trade-off is that it needs higher system privileges and is more likely to conflict with other virtual adapters.
Platform differences
- Windows: the widest choice of clients, and mainstream ones support both system proxy and TUN. Note that TUN can conflict with the virtual adapter drivers some security suites install.
- macOS: also supports system proxy and TUN (utun), with a relatively clean setup; the first time you enable TUN you'll see a permission prompt.
- Android: captures traffic through the system VpnService and lets you tick which apps go through the proxy — the finest per-app granularity of any platform here.
- iOS: captures everything through a VPN profile and generally offers no per-app routing, so rules are your only lever — which is why rule quality matters more on iOS.
Troubleshooting order and five common mistakes
When a connection fails, the fastest route is to work through the layers instead of changing settings at random. The suggested order: check that your device time is synced, confirm the client is in rule mode, try another node, and only then consider another protocol. That order starts with the layer that's easiest to verify.
- ✅ Import your subscription link only on your own devices — don't forward it to public groups or share it in screenshots
- ✅ When you can't connect, work through time sync → mode check → another node → another protocol, changing one variable at a time
- ✅ Before updating your subscription, check whether your locally edited rules and policy groups will be overwritten
- ❌ Copying node addresses, ports and passwords by hand — those entries won't follow along when the subscription updates
- ❌ Leaving global mode on permanently, so local services and LAN devices go through the proxy too and every failure gets amplified
- ❌ Using VMess on a device whose clock is off — the server rejects the handshake outright
Putting these terms to work in a real choice
Pulling the earlier sections together, there are really only a few things worth confirming when you pick a subscription service: whether the route types cover how you work, whether your client supports the protocols, how easy subscription updates are, and whether you can get a refund if it isn't for you.
Take VPNWY as an example: 110+ countries and regions, 150+ routes, no limit on the number of devices, no email address required to sign up, and a full no-questions-asked refund within 30 days of your first payment. Monthly plans and data packs are priced on the pricing page, so we won't repeat them here.
The short version the subscription decides what you get, the node decides where you exit, the protocol decides how the traffic travels, and routing decides which traffic goes where. The first two come from your provider; the last two come from your client configuration — when something breaks, work out which half you're in first.
Three common questions
My node list shrank after a subscription update — is that normal?
Nodes under maintenance or being re-tuned are taken offline on the server side, and your local list syncs on the next update. If only a handful of nodes remain for several days, contact support to confirm the status of your plan and routes.
Does global mode make things faster?
No. Global mode changes coverage, not speed — it sends everything through the proxy, and for domestic sites that detour usually makes things slower.
Can I change the protocol myself?
Protocol parameters come down with the subscription, so there's nothing to fill in by hand. If the server exposes several protocol entry points for the same machine, the subscription lists them separately — just switch nodes in your client.