Start with your use case, then narrow down the nodes
A node is the proxy server entry point your client connects to. A subscription provides the client with a set of nodes and related configuration. Choosing a node determines which proxy route your traffic takes to reach a website. Location, multiplier, and route labels can help narrow your options, but they’re set by the provider and don’t replace testing the actual connection.
Use this order when comparing nodes: first check which exit location your target service requires, then review the traffic multiplier, compare latency and stability, and finally confirm that the protocol works with your client and network. This is more practical than sorting every node by latency and picking the first one.
- Everyday browsing: Prioritize consistent responsiveness and a reasonable multiplier, and keep a backup.
- Large downloads: Focus on sustained throughput and your remaining data allowance; low latency is only one factor.
- Video streaming: First confirm that the content is accessible, then check playback quality, startup time, and buffering.
- Voice and gaming: Check jitter, packet loss, and UDP support, and confirm that the app’s traffic is actually routed through the proxy.
Factor 1: Latency measures response time—and how much it varies
Latency isn’t the same as download speed
Latency tests in Clash clients typically send a request through the proxy to a specified HTTP or HTTPS URL and record how long it takes. They aren’t simply ICMP pings. Results depend on the test URL, connection reuse, core implementation, and current load—and don’t represent response times for every website.
For example, if one node shows 45 ms and another shows 110 ms, that only means the first responded faster under those test conditions. It doesn’t mean it will always download faster. Download speeds also depend on route bandwidth, server load, destination rate limits, and congestion during peak hours.
Run three tests under the same conditions
- Use the same network and test URL, and pause downloads and cloud sync.
- Test each candidate node three times, about 10 seconds apart, and note any timeouts.
- Choose two candidate nodes, open the sites you actually use with each, and compare initial page loads and subsequent requests.
- Test again during your usual usage hours, especially between 8 and 11 p.m.
| Candidate node | Three latency tests | Initial assessment |
|---|---|---|
| Node A | 48 / 210 / 76 ms | The lowest result looks good, but the variation is significant; test further. |
| Node B | 92 / 95 / 90 ms | Consistent response times make this a good everyday candidate. |
| Node C | 65 ms / timeout / 68 ms | Investigate the intermittent failure first; don’t judge by successful results alone. |
Three tests are enough for an initial screen, but not for a reliable packet-loss estimate. To assess video calls or gaming, check the network statistics in the app itself. A successful HTTP test doesn’t prove that UDP forwarding works, nor that a game server will use the same route.
Factor 2: Multipliers affect data usage, not speed tiers
Labels such as “0.5×,” “1×,” and “2×” in node names usually refer to the provider’s traffic billing multiplier. If usage is billed by multiplier, transferring 3 GB through a 2× node uses about 6 GB of your allowance; a 0.5× node uses about 1.5 GB. Check your subscription provider’s terms to see whether uploads and downloads are combined and how usage is rounded.
Multipliers aren’t speed tiers defined by the Clash core. A 2× node doesn’t mean twice the bandwidth, and a 0.5× node doesn’t mean half the speed. Node names in the client may even have outdated labels, so check your plan details and usage records instead.
Check your allowance before large transfers
- A 20 GB transfer uses about 20 GB of allowance at 1×, or about 40 GB at 2×.
- If you have only 30 GB left, handle essential tasks first, then consider higher-multiplier routes.
- Speed tests use data too. Repeated tests with large files may count toward your plan.
Keep stable, low-multiplier nodes in mind for downloads, and reserve more responsive nodes for interactive tasks. Don’t switch to a high-multiplier route just to max out a speed-test chart; sustained performance on real tasks is more useful than a single peak result.
Factor 3: Check the actual exit location; treat node names as clues
The entry point is where your device connects to the proxy service. The exit is the location of the public IP address seen by the destination website. A relayed route may connect through a nearby entry point and reach the site from another region, so a nearby entry point and a nearby exit aren’t the same thing.
A node labeled “Japan” usually describes its exit location, but that doesn’t guarantee every website will identify it as Japanese. IP databases update at different rates, and services may also consider your account region, payment details, device location, or session history. Choose a location based on how the target service actually responds.
How to verify an exit location
- On the client’s “Proxies” page, find the policy group used by the target rule and manually select a candidate node.
- Open the “Connections” page, make a request to the target site, and check the matched rule and proxy chain.
- Visit a trusted IP lookup site to confirm the request went through the proxy and check the exit details.
- Reopen the target service and check its content or availability. If needed, close the existing connection and try again.
“Proxies” and “Connections” are common interface labels; some clients or versions may call them “Proxy Groups” or “Connection List.” If you can’t find the relevant option, look for the equivalent feature. For basic setup, see the user guide.
For services that require a fixed location, create a dedicated proxy group for that region instead of using an automatic group that mixes countries or regions. An automatic switch could change the exit location and affect sign-in verification or content availability.
Factor 4: Check core compatibility first, then consider network conditions
Shadowsocks, Trojan, VMess, VLESS, Hysteria2, and TUIC are different proxy protocols or protocol families. They define how data travels between the client and server, but node speed also depends on the route and server load. Protocol names alone don’t determine a fixed speed ranking.
Clash is a widely used name in the client ecosystem, but actual protocol support depends on the core and its version. mihomo is a core in this ecosystem and was previously known as Clash Meta; older Clash cores don’t have the same feature set as current mihomo. A subscription downloading successfully also doesn’t mean the current core can parse every node in it.
| Protocol or feature | What to check | Common misconception |
|---|---|---|
| Shadowsocks、Trojan、VMess | Encryption method, transport settings, and core compatibility | All nodes using the same protocol have the same speed |
| VLESS and related transport settings | Whether the core supports the specific combination used by the subscription | Recognizing the VLESS label guarantees a connection |
| Hysteria2、TUIC | Core support and UDP availability on your current network | A failed HTTP latency test always means the server is down |
| UDP forwarding | Node, server, proxy group, and traffic routing method | Enabling TUN automatically provides full UDP support |
Hysteria2 and TUIC use UDP-based transport and may fail to connect on office or public networks that restrict UDP. If that happens, compare with a working TCP-based node on the same network and check the logs instead of repeatedly restarting the client.
TUN is a virtual network interface mode that routes more app traffic through rule processing. It isn’t a proxy protocol and can’t add UDP support on the server side. System proxy settings usually affect only apps that honor them. If a game isn’t going through the proxy, first check how its traffic is being routed before judging the node.
When to use manual selection, url-test, and failover
Use a manual group for a fixed location and a specific purpose
select is a manually selected proxy group. It gives you more control when you need to keep a fixed exit location, compare two routes, or choose nodes with different multipliers. Pick a primary node and keep a backup on a different route.
Use url-test to compare responsiveness among similar nodes
url-test checks candidate nodes against a configured URL on a set interval and selects based on the results. It works best with nodes that share a location, have similar multipliers, and serve the same purpose—not with every node in a subscription mixed together. Automatic selection usually prioritizes latency; it won’t evaluate plan costs or whether content is available on your target platform.
Here’s a proxy group snippet you can merge into your configuration. Node names must exactly match those in your current config. “Japan-01” and “Japan-02” are examples; replace them with names that actually appear in your subscription. Your rules must also point to this group—creating a proxy group alone won’t change where traffic goes.
proxy-groups:
- name: Japan Auto
type: url-test
proxies:
- Japan-01
- Japan-02
url: https://www.gstatic.com/generate_204
interval: 300
tolerance: 50
interval: 300: Sets the check interval to 300 seconds. Actual scheduling also depends on the core and its lazy-check behavior.tolerance: 50: Sets a 50 ms switching tolerance to prevent frequent changes for minor latency differences. The current core implementation determines the exact switching behavior.url: All candidate nodes use the same test URL. Make sure it’s reachable on your network.
Don’t replace your entire subscription file with this snippet, and don’t define two proxy-groups keys at the same YAML top level. If your client supports overrides or merging, use that feature to save local changes and avoid losing them when the subscription updates. The exact option depends on your client.
Use fallback to keep backups in priority order
fallback is a failover group that typically uses the first available node in the list, rather than continually choosing the lowest-latency one. It’s useful when you want to prefer a primary route and switch to a backup only if the primary is unavailable. However, a reachable test URL doesn’t guarantee that your target service will work, so test the backup on the actual site too.
Screen your nodes in five minutes
- Check the configuration: Confirm the subscription updated successfully, nodes appear on the Proxies page, and there are no parsing errors.
- Remove unsuitable candidates: Based on exit location, multiplier, and core support, keep 2–3 nodes.
- Run consistent latency tests: Test each node three times on the same network, noting timeouts and significant variation.
- Try real tasks: Open a site you use regularly, stream about two minutes of video, or run a small download for about 30 seconds to check sustained speed.
- Check the rules and backup: Verify the proxy chain on the Connections page, save your primary and backup choices, and test again during peak hours.
If all nodes time out at once, first check your local network, subscription status, test URL availability, and core logs. If only one node fails, check its protocol settings and server status. If latency is normal but a site won’t open, focus on the matched rule, exit location, and existing connections.
There’s no need to chase the lowest number in the list. A good everyday node meets your location requirements, has an acceptable multiplier, stays stable during your usual hours, and works with your protocol on the current network. After the initial screening, avoid aimless switching and keep reproducible comparison notes to make troubleshooting easier.