These 10 answers cover four steps: choosing a client, importing a config, starting the proxy, and troubleshooting. For desktop and Android users setting up a subscription URL or a single-node link for the first time. Learn the difference between a connected node and app traffic routed through the proxy, and where to find errors.
Choose a client: check your OS and core first
1. Which client should I download?
For desktop, start with v2rayN. On Android, choose between v2rayNG and v2flyNG. A client stores configs, starts the core, and manages proxy settings; you still need to obtain a subscription URL or node details separately. Installing the client does not mean you already have a working node.
v2rayN
RecommendedManage subscriptions, nodes, and system proxy settings on desktop. On the download page, choose a build for your operating system, then configure it in the client.
Best for: Windows, macOS, and Linux desktop users
v2rayNG
An Android client powered by the Xray core. Import a subscription or scan or paste a single node link.
Best for: Android users with VLESS, VMess, and other configs
v2flyNG
An Android client powered by the v2fly core. Before importing, check that the protocols in your subscription are supported by the core.
Best for: Android users who have confirmed their nodes are compatible with the v2fly core
2. Are V2Ray, the client, and the core the same thing?
No. V2Ray is often used as a broad term for this type of proxy setup. v2rayN, v2rayNG, and v2flyNG are user interfaces; Xray and v2fly are cores that handle connections. A node appearing in the interface does not mean the selected core supports all of its transport settings.
Import a config: subscription or single node?
3. Where do I paste a subscription URL?
A subscription URL retrieves a list of nodes; it is not a server address for one node. In v2rayN, go to Subscription Group → Subscription Group Settings, add a group, and enter the subscription URL. Save it, then update the subscription. On Android, add the URL under Subscription Group Settings in v2rayNG, then return to the main screen and update. Menu names can vary by version; look for Subscription Group.
Check your platform
Choose the client for your operating system on the download page. After launching it for the first time, make sure the main screen opens normally before setting up a subscription.
Add a group
In v2rayN, open Subscription Group → Subscription Group Settings, add a group, paste the full subscription URL, and save.
Update the list
Select Update All Subscriptions and wait for the nodes to appear. In v2rayNG, save the URL under Subscription Group Settings, return to the main screen, and update.
Select a node
Choose a node from the list and set it as the active node. Then enable the system proxy or the Android VPN service and test it in a browser.
4. Do I need a subscription group for a single VMess or VLESS link?
No. A single-node link contains one config and usually starts with vmess:// or vless://. Copy the full link, then in v2rayN use the clipboard import option in the Servers menu. In v2rayNG, tap “+” on the main screen and choose Import from clipboard. After importing, expand the node details and check the address, port, transport, and security settings.
Subscription URL
- Purpose
- Retrieve a list of nodes
- Where to add it
- Subscription Group Settings
- What to do next
- Update manually or on a schedule
If the node list is empty, check the subscription update result before changing routing settings.
Single-node link
- Purpose
- Import one node
- Common prefixes
- vmess://、vless://
- Where to add it
- Import from clipboard
If a link is missing required parameters, the client can’t fill in the server config for you.
First connection: nodes, system proxy, and routing each play a part
5. Why is my browser still using its usual connection after I select a node?
Selecting a node tells the core which server to connect to. Whether a desktop browser uses that connection also depends on the system proxy or the browser’s own proxy settings. In v2rayN, check System Proxy in the system tray menu and switch to a mode that uses the local proxy. If the browser has its own proxy configured, check those settings too. On Android, start the connection from the v2rayNG main screen and approve the VPN connection request from the system.
- On desktop, make sure the client is running, the intended node is active, and the system proxy is enabled.
- To configure an app’s proxy manually, use the local listening ports shown under Settings → Parameter Settings in the client. Common ports are
10808for SOCKS and10809for HTTP; these values can be changed. - Terminal apps may not follow the system proxy set by the desktop interface. If you configure a proxy for a terminal app, make sure the protocol and port match.
6. What’s the difference between rule mode and global mode?
These modes change how traffic is routed; they won’t fix an incorrect server address or authentication setting. Rule mode uses criteria such as domains and IP addresses to decide what goes direct or through the proxy. Global mode sends traffic handled by the client’s routing system through the proxy by default. Both require the app’s traffic to reach the client in the first place.
| Mode | How it works | When to use it for initial troubleshooting |
|---|---|---|
| Rule | Routes traffic according to the loaded rules, sending some destinations direct. | Keep the intended split between direct and proxied traffic for everyday use. |
| Global | Routes requests reaching the client through the proxy. | Temporarily rule out the effect of a routing rule. |
| Direct | Sends the request without forwarding it through a remote node. | Check whether the app itself can connect to the network. |
In v2rayN, check the current mode under the Routing menu on the main screen. If switching to Global still doesn’t connect, check the node settings, core logs, and system proxy. Restore your preferred routing mode after testing.
Can’t connect? Find out where the connection fails
7. The client says it’s connected, but webpages won’t load. Why?
“Connected” may only mean the local service has started; it doesn’t prove that a target site returned data through the remote node. First check whether the system proxy is enabled, then look in the client logs for connection timeouts, authentication failures, or port conflicts. Change one thing at a time—node, DNS, routing, or listening port—so you can tell what affected the result.
8. Why is browsing still slow when the latency is low?
A single latency result measures the time for a specific test request; it doesn’t reflect how quickly a webpage loads in full. A TCP connection test, a real connection through the proxy, and a download test measure different things. Compare nodes using the same test method, then check the pages you actually need to access. Don’t use a 30 ms TCP result to predict download speed.
Connection says it succeeded, but webpages still won’t load?
Check System Proxy in the v2rayN system tray menu and review the core logs. If the logs show that local port 10809 is in use, check the listening port under Settings → Parameter Settings, then update any apps configured to use it.
Can’t open a site in just one browser?
Check whether that browser uses a separate proxy extension or manual proxy settings. If it’s set to SOCKS port 10808 but the client now uses another port, update the browser settings to match.
Latency is 30 ms, but pages load slowly?
Check whether the test measured a TCP handshake or a real connection through the proxy. Test another node using the same method, then compare connection times with how quickly page resources load.
Test returns -1 or times out?
First check that the node address and port are reachable, then look for the specific error in the core logs. A single timeout can’t tell you whether the remote server is down, the network is blocking traffic, or the local proxy hasn’t started. Test again on the same network and compare with other nodes.
Ongoing maintenance: update subscriptions and migrate configs
9. If a subscription update fails, will my imported nodes disappear?
An update failure usually means the client couldn’t retrieve a new list this time; it doesn’t mean all existing nodes have immediately stopped working. Keep your current working config and check that the subscription URL is complete and still valid, then determine whether the error was a timeout or a server refusal. In v2rayN, find the group under Subscription Group, verify its URL, and try updating again. In v2rayNG, check the same URL under Subscription Group Settings. If the subscription URL must be accessed through your current proxy, try the client’s option to update through a proxy.
- Test your existing node first, so you don’t confuse a failed subscription fetch with a failed node connection.
- Compare the URL with the latest one from your subscription provider. Check for spaces added or parameters missing when you copied it.
- Note the status and time shown during the update. Repeated timeouts and explicit permission errors require different fixes.
10. How do I restore my config after changing computers or reinstalling?
First check whether you saved a subscription URL or only a single-node config in the client. Add the subscription URL under Subscription Group Settings on the new device and update it. For manually added nodes, reimport the link or use the client’s config export and import options. Before migrating, note the core type, routing mode, and local ports; these settings may not be restored with the subscription.
- When launching the client on a new device for the first time, make sure the client and core run normally before importing a subscription.
- If you changed the SOCKS or HTTP listening port on the old device, check it again under Settings → Parameter Settings on the new device. Don’t assume it’s still
10808or10809. - After importing, select a node and enable the system proxy or Android connection. Then check the client logs and test an actual connection. Restoring the node list is only the first step in migration.