Step 1: Import a Subscription
Before you begin, make sure the client is installed and opens successfully. If you still need to install it, visit the client downloads page and choose the appropriate option. The client does not include servers; your service provider must supply the subscription URL. It is usually a single, complete link—not a web address for managing your account or a screenshot of server listings. Copy the entire URL, without extra spaces, line breaks, or text added by a messaging app.
A subscription URL may contain account-identifying information, so treat it as private. Never post the full URL in a public forum or upload screenshots that show it when asking for help. Share the error message, client name, and steps you took instead; conceal subscription links, server credentials, and personal information in screenshots. This site provides setup guides, not subscription URLs, and cannot verify whether your subscription account is valid.
v2rayN: Add a Group, Then Update It
Open v2rayN and find the “Subscription Groups” menu, then open “Subscription Group Settings” or the equivalent management option. Choose Add, enter a recognizable label for the group, such as “Daily use,” and paste the full subscription URL into the address field. Make sure the group is enabled, then save it. The label is only for local organization and does not change the subscription. For initial setup, there is no need to change update intervals or other advanced options.
After saving, return to the main window and update the group you just added from the subscription menu. If the menu offers “Update through proxy” and “Update without proxy,” try updating without a proxy first if you do not yet have a working connection. Updating through a proxy only helps when an existing connection is available. Wait for the update to finish, then check whether server configurations appear under the group. Saving the URL and downloading its contents are separate steps; the main list may still be empty after saving alone.
Once configurations appear in the list, select a server and use “Set as active server” in the right-click menu, or the equivalent option in your version. Distinguish the highlighted row from the server currently used by the core: selecting a row does not necessarily switch the connection. Check which item is marked active. If the list is long, start with a server you know is still valid, then compare others after verifying the connection.
v2rayNG: Save the URL, Then Update the Group
Open the v2rayNG side menu and go to “Subscription Group Settings.” Use the Add option to enter a label and subscription URL, then save. Return to the configuration list and choose Update subscription from the menu; if the app supports updating a specific group, select the one you just created. When the update finishes, tap a configuration and make sure the active indicator moves to it. The Add button’s “Import from clipboard” option may also work for a single shared configuration, but that is different from a subscription group that can be updated over time.
If no configurations appear after updating, first check that you copied a subscription URL, then determine whether the error is a network request failure or a parsing failure. Do not start changing routing or listening ports while the list is empty; those settings usually cannot fix a subscription that was not imported. See the glossary for the difference between subscriptions, servers, and share links, or use the troubleshooting guide for step-by-step checks. This step is complete when the list contains configurations and you have selected an active server.
Step 2: Choose a Proxy Mode
Once you have an active server, decide how apps should send requests to the client. First, distinguish two settings: the system proxy directs apps that follow system settings to the local proxy; routing determines whether requests received by the core connect directly or go through the selected server. These settings operate at different levels and are not interchangeable. Setting routing to “Global” does not automatically route every app through the proxy or take over all device traffic.
v2rayN: Configure the System Proxy, Then Choose a Routing Preset
In v2rayN, find “System Proxy” in the main window’s status area or tray menu and choose “Automatically configure system proxy.” Some desktop systems may ask you to confirm. Afterward, check the proxy status shown by the client. For your first test, use a browser that follows system proxy settings. Avoid entering a second proxy address in a browser extension at the same time, as the two settings can conflict and make the actual traffic path unclear.
Next, find the routing settings or routing mode. If your version offers a preset such as “Bypass mainland China,” choose one that suits your needs. Requests matching direct-connection rules will connect directly; other requests will use the proxy. If preset names differ, check what each rule routes traffic to instead of relying on the name alone. For now, leave rule order, complex domain lists, and special DNS options untouched. A clear, predefined routing mode makes it easier to pinpoint connection issues.
“Global” can be useful as a brief comparison test: with the same server selected, route as many incoming requests as possible through the proxy and see whether anything changes. Restore your usual routing mode afterward. Apps explicitly set to connect directly or not configured to use the system proxy may still take a different path. For more on rule matching and outbound selection, see routing and DNS terms. For now, just make sure you understand the separate roles of the system proxy and routing.
v2rayNG: Start with VPN Mode
In v2rayNG settings, make sure VPN mode is enabled. If your version offers a mode such as “Proxy only,” do not start with an option that requires apps to specify a local proxy themselves. VPN mode uses Android’s VpnService to handle traffic from eligible apps, but the client’s routing settings still determine whether traffic connects directly or through the proxy. Keep the client’s existing basic routing mode for now, rather than changing several network settings before connecting.
Before your first test, leave per-app filtering off, or at least make sure the browser you plan to test is included in the proxy scope. If only selected apps are proxied and your test app is not on the list, it cannot verify the proxy even if the client is connected. Do not assume the server is unavailable just because one app takes a different path. By the end of this step, you should know whether your desktop browser uses the system proxy and whether your Android test app is included in the connection scope.
Step 3: Connect
Your subscription, active server, and traffic entry point are now set, so you can connect. First, stop any other proxy or VPN client that is managing network traffic. Multiple apps can repeatedly change system proxy settings or compete for the same connection. Keep the current settings and use only one client. If an error occurs, note its exact wording and make one targeted change at a time. Changing the server, routing, and DNS all at once makes it difficult to identify the cause.
v2rayN: Check Core Startup and System Proxy Status
In v2rayN, the core typically starts with the current configuration when you select an active server, save settings, or restart the core. Some versions have separate start or restart controls, so follow the interface you have. Check the logs for recurring startup, configuration read, or listening errors. Also confirm that the system proxy is still set to “Automatically configure system proxy.” The client’s tray icon alone does not mean the connection is working.
If the logs report that a local port is already in use, first close any duplicate client instances, then check whether another proxy program is listening. Do not assume a fixed port number: local listening ports, whether listeners are combined, and supported proxy types vary by client version and configuration. Check the actual values in “Parameter Settings” or the listening settings. For help locating a port conflict, follow the troubleshooting steps, then return here to continue testing.
A successful core startup means the local service is ready; it does not confirm that the remote server is available. Clients often establish a connection only when an app sends a request, so it is normal to see no traffic yet. Keep the client running for now—there is no need to exit or repeatedly restart it. Use the browser test in the next step to generate a request and check the logs.
v2rayNG: Approve the System Connection
Return to the v2rayNG configuration list and confirm that the correct configuration is active, then tap the Connect button at the bottom of the screen. The first time you connect, Android displays a system prompt asking for permission to establish a VPN connection. Make sure the request is from the client you just opened, read the prompt, and approve it. If you cancel, the client cannot create the system connection; tapping the server repeatedly will not grant permission. After approving, check for changes to the Connect button, client status, and system VPN indicator.
If Android says another VPN connection is active, identify what it is for, then disconnect it if appropriate and try again. This avoids two apps taking over in turn. Stay in the foreground while testing, and do not change battery optimization settings yet. If the connection drops only after the screen locks or you switch apps for a while, check battery management and background activity permissions. This helps distinguish an initial connection failure from an interruption in the background without investigating everything at once.
Step 4: Check That It Works
Check both app results and client logs. A connection icon shows that the client is in some running state; a server latency test shows that a particular probe received a result. Neither alone guarantees that all browser requests will work. A more reliable test is to keep the server and routing unchanged, access the same destination from the same app, confirm that the page loads, and check the logs for a connection or error at that time.
Use a New Request to Test Access
On desktop, use a browser that follows the system proxy and open a new page for a destination you know is available and that your current routing rules should send through the proxy. Do not rely on an already-open tab; cached content or an existing connection can hide changes. Confirm that new resources, such as text and images, load, then check whether the client logs show the corresponding request. If the current log level does not record successful connections, do not treat the lack of a success entry as proof of failure; use the page result and any error messages together.
On Android, run the same test in a browser included in the proxy scope. If only one app fails, return to step two and check per-app settings, then see whether that app uses its own network configuration. If no apps can access the destination, revisit the startup and permission checks in step three. Do not launch multiple proxy tools just to make one test “look successful.” One client, one active server, and one fixed destination make before-and-after results easier to compare.
If you use an IP lookup page, interpret its result in light of your routing rules. If the lookup request is routed directly, seeing your local network’s public IP does not necessarily mean the proxy has failed. Likewise, seeing a proxy IP on one page does not prove that every app takes the same route. To check for a routing issue, briefly switch to global routing and test the same request, then restore your usual mode. Do not treat the temporary comparison as a permanent troubleshooting fix.
If It Fails, Revert One Step at a Time
If the client offers a latency or real-connection test, use it as supporting information. Tests target different destinations and work in different ways, so a result in milliseconds is not a download speed, and one result is not enough to choose a server. If a test fails, try another known-good configuration from the same subscription first. If it succeeds but the browser fails, check the system proxy, app scope, and routing before reinstalling the client.
When recording an issue, note four things: the client in use, a non-sensitive label for the active configuration, the routing and system proxy status, and the log message associated with the failed action. Classify the issue as “subscription list is empty,” “core will not start,” “connected but pages fail,” or “only one app fails,” then follow the relevant checks in the troubleshooting guide. If terms like VLESS, REALITY, or DNS are unfamiliar, check the glossary. You do not need to change advanced settings just to make your first connection.
Disconnect and Connect Again Later
On desktop, when you are finished, choose “Clear system proxy” in v2rayN before exiting the client if needed. If you force-quit the process, the system may keep pointing to the local listening address, leaving your browser unable to connect after the client closes. If that happens, reopen the client and clear the system proxy, then check that the system network proxy settings are back to the expected state. Restore any existing work or personal proxy settings using their original configuration.
On Android, disconnect using the v2rayNG Connect button and check that the system VPN has stopped. The next time you connect, you usually only need to confirm that the subscription is still valid, select the right configuration, and connect; there is no need to delete and re-import the group each time. If your provider has changed the configuration, update the relevant subscription and select a valid configuration again. The complete setup loop is now in place: configurations are available, traffic enters through the right path, the client runs normally, requests can be tested, and disconnecting restores normal network access.