v2rayN Setup Guide Subscriptions, Connections, and Verification
Complete four tasks in order: import a working configuration, define the proxy scope, start the connection, then cross-check the result through app access and client logs.
Import subscriptionAdd the URL and refresh the list
02
Choose a modeDefine the system proxy and routing scope
03
Start the connectionSelect a configuration and run the core
04
Verify the resultCheck the access path and log status
Before you begin
Prepare the subscription URL and the matching client
This page covers the core steps for a first-time setup. Before you begin, install the client, obtain a valid subscription URL, and make sure the device can access the internet normally.
A
Confirm that the client is installed
Use v2rayN on desktop and v2rayNG on Android. If the operating system asks for network access on first launch, allow the client according to the device’s security policy. Otherwise, subscription updates and connection tests cannot continue.
B
Copy the complete subscription URL
A subscription URL usually starts with https://. Copy it in full, including the beginning, ending, and query parameters, without copying any explanatory text. The configuration provider manages the URL; this guide does not generate subscription content.
C
Keep a working base network
The device must be able to reach the subscription service before the subscription can be updated. If the browser and other apps cannot access the internet, restore the local network first, then return to the client. This prevents a basic network issue from being mistaken for a client configuration problem.
01
Step 1
Import the subscription and refresh the server list
A subscription lets the client manage a set of server configurations in one place. Do not rush to enable the system proxy during the first setup. Without a usable configuration, the client may appear to be running while still being unable to establish a working connection. Save the subscription URL, run an update manually, and confirm that the results have been added to the server list.
Add a subscription in v2rayN for desktop
After opening v2rayN, start with the menu at the top of the window. Open Subscription groups or a similarly named subscription-management entry, then add a new group. Use an identifiable note, such as its purpose or configuration source, and paste the complete subscription URL into the address field. Before saving, check that the URL starts correctly and contains no trailing spaces or line breaks. Return to the main window, open the subscription menu, and select Update all subscriptions. Saving the group alone is not enough.
During the update, the window status area shows the progress. When it finishes, return to the server list. You should see the configurations parsed from the subscription, and the group name you entered should appear in the sidebar or group selector. At this stage, only confirm that the list is not empty; do not edit protocols, ports, or transport settings one by one. These fields are usually configured by the provider, and manual changes can easily create mismatched settings.
Add a subscription in v2rayNG for Android
Open v2rayNG, tap the top-right menu, and open Subscription settings. Tap the add button, enter a note and the subscription URL, then save. Return to the configuration list, open the menu again, and select Update subscriptions. Once the update succeeds, selectable configurations appear in the main list. If the list is still empty, pull to refresh or reopen the main screen, then confirm that the correct subscription group is selected.
Android devices may impose additional background-network and battery-saving restrictions. When the subscription is updated in the foreground, however, keeping the app open and waiting for the process to finish is usually enough. Do not tap repeatedly during the update, as this may send duplicate requests. Once a success message appears or the list changes, continue to configuration selection.
Once configurations appear in the server list, step one is complete. Next, select a configuration and decide which app traffic the client should handle. This corresponds to the system proxy and routing mode on desktop, and to the connection scope and split-routing rules on Android.
02
Step 2
Choose a configuration and proxy mode
The proxy mode determines how much traffic the client takes over. For a first setup, the goal is not to enable every option but to establish a path that can be tested. Start with the client’s standard system-proxy or default-routing setting, confirm that the connection works, and then adjust split routing, TUN mode, or custom rules to suit your apps.
v2rayN: Select a server and set the system proxy
In the v2rayN server list, click the configuration you plan to use and set it as the active server using the available control. The active item is usually shown as selected, highlighted, or named in the tray menu. Afterward, check the bottom status bar or system tray menu to confirm that a server is selected. If the subscription contains multiple entries, choose just one for the first test rather than editing several configurations at once.
Next, open v2rayN’s System proxy menu. For most first-time setups, choose the option to automatically configure the system proxy or enable the system proxy. This makes browsers and desktop apps that follow system proxy settings send requests through v2rayN. If you start only the core without enabling the system proxy, the client may show as running while the browser continues using its previous direct path. This is a common reason the client is running but browsing behavior has not changed.
Routing mode determines whether each destination is reached directly, through the proxy, or blocked. For an initial test, choose the client’s standard split-routing option, such as bypassing local-network and mainland China addresses. This makes it easier to test both direct and proxied paths. Global mode sends more traffic through the current configuration and can help briefly isolate routing-rule issues, but it should not be the only long-term setting when app requirements are unclear. Custom routing involves domain rules, address rules, and rule priority; see troubleshooting and routing details for the principles.
v2rayNG: Select a configuration and define the connection scope
In the v2rayNG main list, tap a configuration to make it the selected item. Once the selection marker appears, open Settings and review the routing options. For a first setup, keep the default routing settings and avoid adding multiple sets of custom rules. Return to the main screen and use the connection button at the bottom to start the service.
If only specific apps should use the connection, select them in the per-app proxy settings. If you do not need app-level separation yet, keep the standard connection scope and run one overall test first. Changes to the per-app list directly affect verification: an excluded app continues using the original network. Choose the browser or app you will test with, and confirm that it is within the allowed scope.
At the end of this stage, three things should be clear: the subscription list contains a configuration, one configuration is selected, and the proxy scope is defined. The next step starts the client connection and uses its status messages to determine whether the core is running successfully.
03
Step 3
Start the connection and read its status
Before starting the connection, confirm that the device’s system time, time zone, and date are correct. TLS uses system time to validate certificates, and clock drift can directly cause a handshake failure. Also make sure the current network is stable; stop switching between Wi-Fi and mobile data before starting the connection.
Start the v2rayN desktop connection
v2rayN usually starts the corresponding core after a server is selected. If the current version offers a clear start or restart service command, run it once and wait for the status bar to update. Then open the v2rayN menu from the system tray and confirm that the system proxy matches your selection. The main log area reports core startup, local-port listening, and connection requests. On the first review, you do not need to understand every line; just check for repeated errors.
If the window closes but the tray icon remains, the client is usually still running in the background rather than exited. Reopen the main window from the tray icon when you need to change settings. To stop the connection completely, disable the system proxy first, then use the exit command to close the client. This prevents the system proxy from pointing to a stopped local service.
Start the v2rayNG Android connection
Confirm that the configuration is selected on the v2rayNG main screen, then tap the connection button at the bottom. The first time this type of connection is established, Android displays a network-connection permission dialog. Confirm that the app name matches the current action, then allow the connection. After authorization, the button and top system area show a status change, and the client log begins recording requests.
If tapping the button immediately returns to a disconnected state, open the log and read the last few lines. Focus on the first clear error rather than repeated follow-up messages. Common messages may involve DNS resolution, connection timeouts, certificate names, unreachable ports, or configuration fields. Keeping the original error text helps determine whether the issue is in the local network, subscription configuration, or remote service.
A connected status only shows that the local service has started; it does not by itself prove that the target request used the proxy as intended. The system proxy may be disabled, or the test app may be outside the per-app scope. Do not stop after seeing a green status. Perform the next verification step to confirm that the actual access path matches the routing mode.
04
Step 4
Verify that the system proxy and routing are working
Verification should cover both app access and client logs. A page loading alone cannot show whether it loaded directly or through the current configuration; a connected client status alone cannot confirm that the test app used the right path. Combine both observations to determine whether the setup is actually working.
Reopen the test app
Fully close the browser or app used for testing, then reopen it. Some apps read system proxy settings at startup; if they were already running before the proxy was enabled, they may retain an old connection. After restarting, visit one commonly used page that should be reached directly under the current routing rules, followed by a destination that clearly requires the current configuration. Both should load within a reasonable time.
When using v2rayN, watch the main-window log as well. If a new connection record appears after the browser makes a request, the browser has handed the request to v2rayN. If the page is unchanged and no new request appears in the log, first check whether the system proxy is enabled, whether the browser uses its own proxy settings, and whether another program is overriding the system settings.
When using v2rayNG, switch back to the client after the test app makes a request and inspect the log. If per-app proxying is enabled, confirm again that the test app is included. An excluded app will not generate proxy requests in the log even while v2rayNG remains connected. After changing the app list, close and reopen the test app before testing again.
Confirm that split-routing results match the current mode
With a standard split-routing mode, direct destinations and proxy destinations should follow their respective paths. Routing results, outbound identifiers, or connection types in the log can help confirm this. If every request follows the same path, check whether global mode was selected by mistake, then see whether custom rules appear before the built-in rules. Complex rules are unnecessary at first; if the default mode provides stable access, keep it.
After verification, record the working subscription group, active configuration, and routing mode. When updating the subscription later, you usually only need to refresh it and select a working configuration rather than recreate the same subscription. If the connection fails after changing networks, check basic access on the new network first, then decide whether to switch configurations or adjust DNS.
✓
Post-connection checks
Quick fixes for common issues
The checks below cover the shortest paths for the most common first-time setup issues. For persistent errors, protocol-specific problems, or complex DNS symptoms, go to the troubleshooting guide instead of repeatedly changing unrelated options here.
The update succeeds but the list is empty
Confirm that the currently displayed group is the one you just added, then run the update again. If the client says the format cannot be recognized, ask the configuration provider whether the subscription content supports the current client. Do not manually split or alter the encoded subscription text.
The client is running but the browser is unchanged
On desktop, check that the system proxy is enabled and fully restart the browser. On Android, check that the test app is included in the per-app proxy scope. Then watch for a new log entry when the request is made.
No pages open after connecting
Disable the system proxy or stop the connection first, then confirm that basic network access returns. Select another configuration and start again. If the base network itself is unavailable, fix the local network before changing client routing.
The log repeatedly shows timeouts or certificate errors
Correct the system time, refresh the subscription, and test again with another configuration. If the error remains, record the complete message and review the node timeout or DNS issues section.
Next steps
Keep the basic setup, then troubleshoot by symptom
After the first successful connection, save the current working state. For subscription auto-updates, DNS, node timeouts, an ineffective system proxy, or client crashes, open the troubleshooting guide and check one section at a time instead of changing too many variables at once.