Step 1 · Subscription source
Import a subscription
Make sure you have the subscription URL ready. A subscription URL returns server configurations for the client to use; installing the software does not provide working servers by itself. Copy the full URL from your configuration provider’s account page. Do not use an account login page, documentation page, or the image URL of a subscription QR code. If you only have a single server share link, you can import it from the clipboard as described by your provider, but it cannot be updated like a subscription group.
Open the v2rayN main window and go to Subscription Group > Subscription Group Settings, then click Add. Enter a recognizable remark, such as “Everyday use,” and paste the URL into the subscription address field. Check that there are no extra spaces or line breaks, save, and return to the main window. In some versions, Add is represented by a plus button. The goal is to create a group containing a subscription URL, not to add a server manually.
Next, open the Subscription Group menu and select Update Subscription (without proxy). In some versions, the menu specifies whether to update the current subscription or all subscriptions. If you have not connected yet, try updating without a proxy to avoid routing the request through a proxy that is not working. When the update finishes, check that server entries appear and belong to the group you just added. The configuration has been imported only when servers appear in the list; saving the URL alone is not enough.
In v2rayNG, open the top-right menu, go to Subscription Group Settings, and use the plus button to add a remark and subscription URL. Save, return to the server list, then select Update Subscription from the menu. To import a single server from the clipboard, copy the full share link first, then choose Import from clipboard from the plus menu. Avoid switching repeatedly between these two methods, or the same configuration may appear multiple times and make it harder to identify the right server.
If the list is still empty after updating, check the client notification or logs. An unreachable URL, a response that is not subscription data, and an expired subscription each require a different fix. Check the subscription status on your provider’s site, then copy the URL again; repeatedly clicking Update will not help. If your current network cannot access the subscription directly, use a network path you know works or follow your provider’s import instructions. For specific response errors, see troubleshooting subscription update failures. Network diagnostics are outside the scope of this guide.
Subscription URLs may contain access credentials. Do not include the full URL in screenshots shared in chats or in public logs. The https://example.com/sub shown here is only a format example and cannot be used to obtain servers. Once actual configurations appear in the list, leave the other settings unchanged and move on to choosing how traffic is handled.
Step 2 · Traffic routing
Choose a proxy mode
First, distinguish two settings that are easy to confuse. The system proxy determines whether apps that support it send requests to the client. Routing rules determine whether the client sends those requests through a proxy or connects directly. They are separate settings. Even with global routing enabled, a browser that does not send traffic to the client will not be affected. Conversely, enabling the system proxy does not mean every destination will go through a remote server.
For your first setup, use a routing rule already provided by the client. In the v2rayN main window, look for a built-in option such as “Bypass LAN and mainland China” in the Routing selector. Some versions require you to enable the preset in Routing Settings before selecting it in the main window. This type of preset usually connects directly to LAN addresses and destinations matched by its rules, while proxying other requests. It is a useful starting point for testing, but the exact behavior depends on the active rules.
For now, do not import large rule sets from unknown sources or edit domain and address entries. Rules are generally matched in order, and an overly broad rule can override later settings, changing how some sites connect. “Global” usually means that traffic sent to the client is routed through the proxy outbound; it does not mean every app on the device is intercepted. Global mode can be useful for a brief comparison, but it is not a universal fix.
In v2rayNG for Android, look for Routing Settings and choose a built-in preset similar to the one you want on desktop. For the first setup, keep the default VPN routing method and do not change per-app exclusions, DNS, or transport settings at the same time. Android’s per-app proxy setting determines which apps use the VPN route. If your browser is excluded, it may bypass the proxy even when the connection is active. Check the app selection before switching servers.
Leave the local listening port, LAN connections, and TUN mode at their defaults for now. The desktop system proxy is usually enough to test browser traffic. TUN also involves a virtual network interface and system permissions, so it is best not to change it while importing your first subscription. Enable LAN connections only if other devices need to use this computer as a proxy; they are not required for this computer to connect.
By the end of this step, you should know which routing rules are active and which app you will use for testing. If you are unsure when traffic is proxied versus direct, keep the built-in preset and continue. After connecting, see routing and DNS in Troubleshooting. Next, set a server as active and enable traffic routing.
Step 3 · Start the connection
Connect and route traffic
Return to the v2rayN server list and choose a server recommended by your configuration provider. Right-click it and select Set as active server. Some versions also allow you to double-click; use the context menu and the active indicator in the list to confirm. Highlighting a row alone may not change the active server. Check that the active indicator is on the intended entry, then look at the log at the bottom for configuration loading or core startup messages.
v2rayN usually loads the selected configuration when you switch the active server; it may not have a prominent Connect button. Still, check that the core starts successfully. If the log reports that a port is already in use, exit any duplicate client instances and restart the current one. Do not leave an old process running while repeatedly changing ports. For details, see troubleshooting local listening port issues.
Once startup errors have stopped, open System Proxy from the main window or tray menu and select Set system proxy automatically. The tray icon may be in the system’s hidden icons area, which you may need to expand. This points the system proxy to the client’s local listening address, allowing browsers and apps that support the system proxy to send requests to the client. Minimizing the client to the tray does not exit the program; keep it running while you test.
“Do not change system proxy” is not another way to say “Set system proxy automatically.” It leaves the current system proxy settings unchanged, which is useful when you know which app manages them. Do not treat it as an enable button during your first setup. Other proxy software, browser proxy extensions, or organizational policies may override one another. Keep just one clearly identified traffic-routing source to avoid having the browser use an old port while the client is running normally.
v2rayNG works differently: tap the desired server in the list, confirm the selection indicator, then tap Connect on the main screen. The first time you connect, Android displays a VPN connection request. Read the prompt and approve it. The client can handle network traffic through the system interface only after permission is granted. If another VPN connection is already running, Android may need to switch to this one; you do not need to run two tools at once.
A system VPN icon or a running status in the client only indicates that traffic routing has been enabled; it does not prove the remote server is working. The same applies to the selected system proxy on desktop: it only confirms that the setting was applied. Keep the current server and routing rules unchanged and test a real connection first. Changing several options at once makes it difficult to tell which setting affected the result.
Step 4 · Test real traffic
Verify the connection
First, open a regular webpage that normally works to make sure the proxy settings have not interrupted your basic network connection. Then, in a new browser tab, visit a test destination recommended by your configuration provider or a legitimate test site known to match your current proxy rules. Use the same browser if possible, and temporarily disable any proxy extensions so they do not bypass the system settings.
Once the page loads, check the client logs to confirm that requests are routed as expected. Versions that show connection details may log destination domains, connection errors, and the selected outbound. Look for new entries around the time of your test, not old startup messages. With split routing, it is normal for ordinary websites to connect directly. The exit address may also vary by test site, so use a destination that matches your proxy rules rather than treating a direct connection as a client failure.
A server speed test can be useful, but it is not conclusive. A TCP connection test mainly shows whether a connection can be made to a particular port. Even a real connection test covers only its specified destination, not every website. If the client reports success but the browser fails, check the browser’s proxy source, the system proxy address, and whether the app is excluded before assuming the subscription is faulty.
If neither ordinary webpages nor the test destination load, first choose Clear system proxy from the System Proxy menu, then try an ordinary webpage again. If connectivity returns, the basic network is probably working and the issue is more likely with local traffic routing or the proxy path. If it still fails, check the device’s network connection first. Change one setting at a time and note the results; this makes it easier to find the cause than changing servers, DNS, and routing all at once.
If only the test destination fails, switch to another authorized server in the same group and repeat the same test. If the logs keep reporting connection timeouts, see troubleshooting server timeouts. If the logs show a name resolution error, continue with the DNS symptoms in the Troubleshooting guide. Before sharing a screenshot, hide subscription URLs, server credentials, and personal network information; include only the error type and relevant steps.
Once the connection works, leave the client running for everyday use and update the subscription as needed. Updates may rename servers or remove old entries, so check that the active server is still available afterward. Do not repeatedly import the same subscription just because a page loads slowly once. Compare against the same test destination to distinguish a temporary network issue from a configuration change.
When you are done, select Clear system proxy in the v2rayN desktop client. Confirm that ordinary webpages load again, then exit the client. If you stop the core but leave the system proxy enabled, apps may keep sending requests to a local port that is no longer listening. In v2rayNG, tap Stop on the main screen and confirm that the client has disconnected. You have now completed the full cycle: subscription, routing, traffic handling, and real-world testing. For further adjustments, consult the detailed guide for the specific issue.