Before You Begin: Prepare the Client and Subscription URL
Go to the download center to choose a client for your device, install it, and open the main screen. Use v2rayN on desktop or v2rayNG on Android. This guide starts with a client that opens successfully; it does not cover every difference in package architecture, runtime requirements, or system permissions. If the app will not start, follow the complete installation and setup guide first, then return here.
The client reads your configuration and runs the proxy service; installing it does not provide a working connection by itself. Get a valid subscription URL from a trusted configuration provider. A subscription URL is not the same as a regular webpage or account dashboard URL. A dashboard that requires you to sign in usually cannot be used directly as a subscription URL. Likewise, do not paste an individual configuration share link into the subscription group's URL field; use the appropriate import option for each.
Use the provider's copy button to avoid missing parameters at the end of the URL. A subscription URL may contain access credentials, so do not post it in comments, public screenshots, or online conversion tools. If the format is incompatible, first look for a subscription format intended for your client. If you need to convert a V2Ray subscription, read the format guidance in the FAQ first. Do not keep editing the URL before confirming which format you need.
Before you begin, temporarily exit other proxy or VPN tools that are handling network traffic. This helps prevent conflicts such as overridden system proxy settings or virtual network interfaces. Keep your current network connection working, and avoid changing your router, system DNS, and client rules at the same time. The first goal is a connection path you can understand and reproduce; adjust it to your needs afterward.
Step 1: Import a Subscription and Update the Configuration
v2rayN: Add a Subscription Group
Open v2rayN and find Subscription Group or Subscription Group Settings in the top menu. In the group manager, choose Add. Give the group a recognizable name, then paste the complete subscription URL you copied into the URL field. Leave the other options at their defaults and save. This only registers the URL; the configuration list may still be empty. Update the subscription next to load entries you can select.
From the Subscription menu, choose the option to update the group you just added. Depending on the version, you may see options for a regular update and an update through a proxy. For initial setup, when no working proxy is available yet, try the option that does not rely on an existing proxy. When the update finishes, select the new group and check that configuration names and protocol details appear in the list. A “saved successfully” message does not mean the import is complete; confirm that the group contains selectable configurations.
If the list contains entries, right-click the one you want to use and choose Set as Active or a similarly named option. Some versions also let you switch configurations by double-clicking; follow the menu prompts for your version. Check that the active marker or status bar shows the selected entry. Highlighting a row alone may not switch the running configuration, which can affect the connection test later.
v2rayNG: Add a Subscription, Then Update It from the Main Screen
Open the menu in the top-right corner of v2rayNG and select Subscription Group Settings, then tap Add. Enter a group name, paste the complete URL into the address field, save, and return to the main screen. Open the menu and choose Update subscriptions or Update current group subscription. If you have multiple groups, make sure the newly added group is selected so you do not update a different source by mistake.
After the update, the main screen should show the corresponding configuration cards. Tap the one you want to use and confirm that the selection marker moves to it. Do not edit the protocol, port, transport, or TLS settings at this stage; these values should come from a valid subscription. Changing a field at random can make the client settings incompatible with the server and make it harder to tell whether a problem comes from the subscription or a manual edit.
If the Subscription Update Fails, Stop Here First
If the update fails, returns no content, or reports a parsing error, first check that the URL is complete, the subscription has not expired, and your network can reach the subscription service. Being able to open the provider's dashboard in a browser does not mean the client can retrieve subscription content; the browser may be signed in, while the client is not. An empty list after a failed update is not a connection failure: fetching a subscription and connecting through a proxy are separate steps.
If you already have working configurations, do not delete the whole group just to retry. Note the error message, check whether the provider changed the subscription URL, then follow the subscription update guidance in the FAQ. Once configuration entries appear and you have selected one, move on to the next step: choose how traffic enters the client and how it is routed afterward.
Step 2: Choose How Traffic Enters the Client and How It Is Routed
“Mode” can refer to two different things in the interface. System proxy, VPN, and TUN determine how traffic enters the client. Rule-based routing, global proxy, and direct connection determine where traffic goes after entering the client. Understand these two layers before applying the basic settings below. Choosing global routing will not make an app that ignores the system proxy start using the proxy automatically.
v2rayN: Start with the System Proxy for Browser Traffic
In v2rayN, find System Proxy in the status area at the bottom of the main screen or in the tray icon's right-click menu. Choose Automatic System Proxy Configuration or the equivalent enable option in your version. The client adds its local proxy address to the system settings, allowing browsers and apps that follow those settings to send requests through the client. You usually do not need to enter a port manually in system settings; do not copy a fixed port from another guide without checking your device.
Next, check the routing settings. Start with rule-based routing and read the description of the current rules. Rules typically send some traffic through the proxy and connect other traffic directly; the exact behavior depends on the rule set. For your first test, keep the client's existing rule set rather than importing several sets from different sources. To check whether a particular request is affected by routing, temporarily switch to global proxy, test again, then restore your usual mode.
TUN is not required to get started with browser traffic. It can handle traffic from more apps, but may require administrator privileges, a virtual network interface, and DNS changes. Enabling TUN before verifying a basic connection adds more variables to troubleshoot. If an app does not use the system proxy and you need to route its traffic, finish this guide first, then see the complete installation guide for TUN setup and permission details for your platform.
v2rayNG: Connect in VPN Mode
In v2rayNG settings, confirm that VPN mode is enabled and leave the routing settings at their defaults for now. The first time you tap Start, Android will ask to set up a VPN connection. Check that the request is for the client you are using before granting permission. VPN here is the system's way of routing traffic through the client; it does not change the selected configuration's protocol or mean that every subscription entry is usable.
If you have set up per-app proxying before, check whether your browser is excluded or missing from a list that proxies only selected apps. For initial setup, use a scope you understand; do not manage a complex app list before verifying the browser connection. See the glossary for the differences between routing, direct connections, and TUN. Once you have chosen how traffic enters the client and how it is routed, you can start the service.
Step 3: Connect and Check the Client Status
v2rayN: Check the Active Configuration and Core Status
Return to the v2rayN main screen and confirm the active configuration name. Some versions apply the configuration and restart the core automatically when you switch the active entry; others have options to apply, reload, or restart the service. Follow the interface prompts, then check the status area at the bottom or open the logs to confirm that no startup error appears. An enabled system proxy does not prove that the core is running; check both separately.
If the log says a listening port is already in use, exit other proxy apps and check that you have not opened multiple instances of the client. Do not immediately change the remote server port in a subscription entry: the local listening port and remote connection port are different settings. If the log reports an unsupported field or protocol, keep the original error message, check the subscription format and core compatibility, then follow the troubleshooting guide.
v2rayNG: Tap Start and Confirm VPN Permission
Check the selected configuration on the v2rayNG main screen, then tap Start. If prompted, grant VPN permission; if you previously denied it, return to the app and tap Start again. The client should indicate that the service is running, and Android's status area should show a VPN indicator. Indicator placement varies by device, so check the client status too rather than relying on one system icon.
If the button returns to the stopped state immediately after you tap Start, check the client log or error message. Incomplete permissions, an invalid configuration, or a core startup failure can all interrupt this step. Repeatedly tapping Start will not fix a configuration problem; note the first clear error and address it. If another VPN is running, stop its service and authorize the current client again to prevent traffic from being routed through the other service.
A Running Client Does Not Mean Web Requests Are Working
A running status only means the local service has started. It does not prove that the remote configuration is reachable or that your browser is using the service. A connection test in the configuration list can help identify an issue with one part of the setup, but it cannot replace testing a real app. Do not skip the final step just because a test returns a result, and do not change DNS, the core, or routing settings before trying to load a webpage. Keep the current configuration and test a real request.
Step 4: Verify the Connection and Restore Network Settings
Cross-Check Browser Requests Against the Client Logs
Open a new browser tab and visit a webpage you can currently use for testing, then try a second site. Send fresh requests rather than relying on pages that were already open; cached content may still appear after the connection drops. Check that the page and new content load, and look for matching connection entries in the client log. If your current log level does not show connection entries, temporarily use the client's connection log view and restore the original setting after testing.
A direct connection entry in the log does not always mean the proxy is failing; under rule-based routing, it may be the expected result. To check the proxy's egress IP, use an IP lookup service you trust and compare results before and after connecting under a rule that should use the proxy. A changed address does not prove that every app is using the proxy, and one direct connection under rule-based routing does not mean everything has failed. Check the rule and the app in question.
If a Webpage Will Not Load, Troubleshoot in This Order
First make sure the device itself is online, then check that the client is still running and that the correct configuration is active. On desktop, confirm that v2rayN still manages the system proxy and check whether a browser extension is overriding proxy settings. On Android, check that the VPN is still active and that the browser is not excluded by per-app routing. Then review the logs for remote connection errors, DNS resolution errors, and routing results. Keep issues from different layers separate as you troubleshoot.
If only one website fails, try another. If only one configuration fails, test another working entry in the same group. Change one setting at a time and note the results before and after so you can distinguish a website issue from a configuration issue or a local connection problem. If the connection still fails, remove the subscription URL and access credentials from the error details, then continue troubleshooting in the FAQ. For platform permissions, DNS, or complex routing, see the complete installation and setup guide.
Keep Working Settings and Restore Network Access When You Stop
Once the connection works, note the group, active configuration, connection method, and routing mode. There is no need to enable every advanced feature right away. If the subscription changes later, update the original group and check that the active configuration is still available. Updating a subscription syncs configuration data; it cannot restore an expired service and does not replace the provider's information about your account or subscription period.
When you are finished, clear the system proxy through v2rayN before closing the desktop client. If you used TUN, turn it off as well. On Android, tap Stop and confirm that the VPN service has ended. If your browser loses connectivity after the desktop client closes unexpectedly, check whether the system proxy still points to a stopped local service, clear any leftover settings, and test again. This completes both the connection and network recovery steps.