Client is running
Open v2rayN on desktop or v2rayNG on Android and confirm that the main interface responds to input.
Have your subscription URL ready, then import it, choose a mode, connect, and verify the result. Each step shows where to go on desktop and Android, without requiring a full understanding of the protocols.
Finish the current step and confirm its expected result before moving on. If something goes wrong, return to the most recent step that produced the correct result.
Missing an installer, subscription URL, or accurate system time can cause the connection process to fail at a later step.
First, make sure the client is installed and opens normally. Use v2rayN on desktop devices and v2rayNG on Android devices. If it is not installed yet, open the Download Center and choose a file for your operating system and processor. After the first launch, avoid changing several options at once; keeping the defaults makes it easier to identify where a problem occurs.
The second item is a working subscription URL. It is usually a complete link beginning with https:// that supplies the client with server names, addresses, ports, protocols, and transport settings. When copying it, select every character from the beginning to the end, without spaces, line breaks, or punctuation added by a chat app. A subscription URL is a configuration credential: save it in the client, and do not paste it into a search box or public page.
The third item is the system date, time, and time zone. Some connection methods require accurate time, so a significant clock difference can prevent a complete-looking configuration from connecting. Enable automatic date and time in the system before continuing. If other network tools modify the system proxy, virtual network adapter, or DNS, quit them during setup and restore them one at a time after completing these four steps. This prevents multiple programs from controlling the same system setting.
Open v2rayN on desktop or v2rayNG on Android and confirm that the main interface responds to input.
Use the full URL without truncating parameters or adding quotation marks, spaces, or periods.
Enable automatic time and time zone, then confirm that the date is not noticeably off.
This step does not establish the connection yet. It loads the complete configuration into the client first. When finished, the main interface should show a subscription group and several selectable servers.
Open the v2rayN main window, find “Subscription Groups” or a similarly named subscription management entry in the top menu, and open subscription group settings. Add a group, enter an identifiable name such as “Common Subscription” in the remarks field, and paste the complete subscription URL into the address field. The remark is only for local identification and does not change connection parameters. Save it after confirming that there are no extra spaces at either end of the URL.
Saving the group does not download its servers. Return to the main window, open the subscription menu, and choose “Update All Subscriptions,” or update the group you just added. Watch the status bar or log area during the update. When it finishes, the main list should show server names and address types. Once entries appear, do not double-click several servers or import duplicate URLs; the next step only requires choosing one server from the existing list.
Open v2rayNG, use the function menu in the top-right corner or tap the plus sign, and open subscription group settings. Add a group, give it an identifiable name, paste the subscription URL into the appropriate field, and save it. Return to the main screen, open the top-right menu, and update the subscription. Some versions first ask which group to update; select the group you just saved.
After the update, several entries should appear in the configuration list. Each entry is a selectable connection profile, and its displayed name comes from the subscription. At this point, only confirm that the list is no longer empty; there is no need to open each entry for editing. If the system asks for clipboard access, approve it only when you have copied the subscription URL and are ready to paste it.
Reopen subscription group settings and check that the URL is complete and does not include explanatory text. Then switch to a network that can access the subscription URL and run the update again. A parsing error usually means you need to obtain the correct URL again; a connection timeout calls for checking the current network and system time. Do not repeatedly add identical subscriptions, or duplicate servers will make later selection harder.
Choose a specific server first, then decide which traffic the client should handle. The server is the connection target; the proxy mode defines traffic rules. They are separate settings.
A subscription may include servers from different regions, protocols, or routes. For the first setup, do not judge speed by the name alone. Choose one server that appears healthy and has a clear purpose, then complete the full process. Compare other servers only after Step 4 confirms that the connection works. This separates configuration problems from server performance and avoids changing multiple variables at once.
The client follows built-in routing rules to decide how connections are handled, making this a suitable starting point. It preserves common local network access while routing selected requests through the chosen server.
Most traffic is handled by the current server, making the behavior easier to assess, but local services and LAN access may be affected. After testing, switch back to rule-based mode if it better suits your needs.
Traffic bypasses the selected server, which is useful for temporarily restoring a normal connection or comparing behavior before and after enabling the proxy. In direct mode, a selected server will not produce the expected proxy result.
Click the target entry in the server list, then use the context menu or main interface to set it as the active server. The selected server usually shows a color change, check mark, or active status. Next, open routing settings and choose the client’s rule-based mode for the first setup. Routing determines how the core handles requests; system proxy settings determine whether ordinary desktop apps send requests to the client. For now, choose the route and leave the system proxy for the next step.
Tap a server in the configuration list to make it the active profile. The current entry usually shows a selection mark. Then open the routing or preset-rules section in Settings and start with the default or rule-based option. After connecting, Android’s system connection interface handles eligible traffic, so there is no desktop-style system tray proxy menu to find.
VMess, VLESS, Trojan, REALITY, and similar names describe protocols or transport combinations, not the rule-based modes used here. There is no need to change protocol parameters individually during the first connection because the subscription already provides the required configuration. For protocol design, core differences, and choosing options for different scenarios, continue to Protocol Reference; this tutorial includes only the operations required to connect.
The server and routing mode are selected. Now start the client core and send device traffic through this connection. Keep the client running after it starts; do not exit immediately.
Confirm that the server is still selected, then start the current server. In the main window or system tray menu, find the system proxy option and choose automatic system proxy configuration or the equivalent enable option for your version. Normally, the tray icon, status bar, or runtime log will change to show that the core has started and is listening on a local proxy port.
When the v2rayN main window closes, it usually minimizes to the system tray, but some system settings may terminate the program instead. During the first verification, do not close the process; keep the window open or confirm that the tray icon remains. If a browser was already open, test in a new window. Some apps read system proxy settings only at launch and may keep using their previous network settings.
Confirm that the current server in the configuration list is correct, then tap the connection button at the bottom of the main screen. On the first connection, Android displays a connection permission dialog; v2rayNG can create its local connection tunnel only after you confirm it. Return to the main screen and check that the button and the system status area show the connection has started.
Keep v2rayNG running during the connection. If the system applies strict background battery restrictions, switching to another app may pause it. If that happens, allow v2rayNG to run normally in the system’s app settings, then connect again. During initial setup, avoid enabling multiple network-control tools at the same time, as the system may keep only one connection active.
Open the client log and identify whether the stop occurred while reading the configuration, parsing the address, or establishing the connection. For a configuration parsing error, return to Step 1 and update the subscription again instead of guessing at server fields. For a connection timeout, try another server from the subscription. If the system says a port is already in use, exit other programs using the local proxy port and restart the client. If the log mentions a time-related problem, re-enable automatic date and time.
On desktop, also check whether the system proxy actually switched on. Some security policies prevent apps from changing proxy settings; reopen v2rayN with the required permissions and set the system proxy again. On Android, if no permission dialog appears, disconnect first, tap Connect again, and watch for the system prompt.
A connection icon only shows that the client has started; it does not prove that the target server works. Verification requires checking actual access, client status, and runtime logs together.
Keep the client connected and open a new browser window to a familiar HTTPS page that normally loads reliably. Confirm that it loads completely, then test a second unrelated site for comparison. Avoid downloads, video playback, or intensive speed tests at this stage; they add variables and make it harder to judge whether the basic connection works. If new pages continue to load and the client does not repeatedly disconnect, the basic setup is working.
If only some desktop apps can connect, first check whether those apps use the system proxy. Browsers usually follow system settings, but some standalone apps have their own proxy options or need to be restarted before reading the latest settings. On Android, confirm that v2rayNG still shows Connected, then check whether system data limits or battery-saving rules have paused the target app.
Return to the client and review the log entries generated during the access test. A healthy connection usually produces new request records without a continuous series of timeouts, refusals, or parsing failures. One occasional failure does not necessarily mean the connection is unusable; judge it together with whether the page loaded. Repeated identical errors on every visit require troubleshooting by error type.
The new page loads, the client stays connected, and the log shows a corresponding request when you visit it. You can now compare servers or adjust routing rules.
Check the desktop system proxy, current server, DNS, and other network tools first. Do not delete the entire configuration as a first step.
After the basic connection works, make small changes based on your needs. To compare servers, change only one server at a time and repeat the test on the same page. To change routing, note the currently working mode before switching to another rule set. To bring more apps into the connection, first check whether they follow the system proxy, then decide whether to use TUN mode. Change one item at a time and verify it before changing the next, so you can quickly return to a known working state if a problem appears.
Do not reinstall the client, change DNS, switch modes, and delete the subscription all at once. Check the items below in order to find the failure point faster.
Run a subscription update again. If the list refreshes normally, the subscription URL and basic network are at least working. If the list is empty or parsing fails, fix the subscription before moving on.
Keep the current routing and system settings and change only the server before reconnecting. If the new server works, the issue is likely limited to the original server. If every server behaves the same way, continue by checking the local settings.
Confirm that automatic time and time zone are accurate. On desktop, enable the system proxy again. On Android, confirm the connection permission again and check that background policies have not stopped the client.
Close programs that modify the system proxy, virtual network adapter, or DNS. Fully exit and restart the current client, then follow Step 3 to establish the connection again.
Check whether the failure occurred during subscription parsing, DNS resolution, connection timeout, or local port setup. Address only the issue indicated by the log to avoid expanding the scope of changes.
If you need a different installer, open the Download Center. After the basic connection works, read the guide to choosing protocols and cores.