First-Time Setup · 4 Steps
v2rayN Setup Guide
Import a subscription, choose a proxy mode, connect, and verify the traffic path. The main steps use the desktop client, with Android instructions included where they apply.
- Subscription Groups
- System Proxy and Routing
- Browser Tests
Before You Begin
Start by choosing the right client on the downloads page, then install it and open the main screen. Use v2rayN on desktop and v2rayNG on Android. This guide walks through one connection path you can verify. For your first setup, leave the default local listener settings unchanged; don’t also change ports, enable TUN, or import complex routing rules. That makes it easier to pinpoint which step is causing a problem.
Next, have a subscription URL you’re authorized to use, or a complete server share link. The client provides configuration management and connection controls; installing it does not automatically add servers. A subscription URL usually provides a group of configurations, while a share link usually represents one configuration. Don’t confuse the two. Access details in a URL may be tied to your account, so don’t post them in public forums or share screenshots that show the full address.
If you have other proxy tools on your device, stop their connections and disable any automatic traffic capture first. This avoids multiple programs changing the system proxy at once. Confirm that your regular internet connection works and your device’s date and time are correct, then start with step one. Follow the steps in order. If an expected result doesn’t appear, stop and troubleshoot that step; there’s no need to redo the entire setup.
Step 1: Import a Subscription
v2rayN: Add a Group and Update the Subscription
Open the v2rayN main window. Find “Subscription Group” at the top, then open “Subscription Group Settings” or the equivalent management option and add a group. Enter a label you’ll recognize and paste the complete subscription URL into the address field. Check that the beginning and end are intact, especially for extra spaces, line breaks, or punctuation added when copying from a chat app. Leave the other options at their defaults for now, then save and close the settings window.
Saving the URL creates a subscription entry; it doesn’t fetch the server configurations. Return to the main window, open the “Subscription Group” menu, and choose to update the current subscription or all subscriptions. Some versions offer separate options to update through or without a proxy. Since you haven’t connected yet, start with the option that doesn’t use a proxy. When the update finishes, configurations should appear in the server list. Switch to the group you just added to confirm which entries it contains.
If the list is still empty, check the subscription update result in the logs before trying to connect. A timeout means the URL couldn’t be reached at that time. An authentication error may mean you need a new, valid URL. If the response can’t be parsed, make sure you copied a subscription endpoint, not an account management page. If the group appears empty, also check that the main screen isn’t filtering for a different group. For more help, see Troubleshooting: Installation, Setup, and Common Issues. Don’t repeatedly import the same URL and create duplicate groups.
v2rayNG: Save the Subscription, Then Update It
In v2rayNG, open the app menu and go to “Subscription Group Settings.” Use the add option to enter a label and subscription URL, save, and return to the main screen. Choose “Update subscription” from the menu and wait for the configuration list to refresh. The update option may be under the More menu in the top-right corner. The key steps are to save the group first and then run an update. Wait until the configurations appear before moving on; there’s no need to connect yet.
If you only have a share link that starts with a protocol name, copy the entire link and use “Import from clipboard” under the “+” menu on the main screen. v2rayN also has a clipboard import option. Don’t paste a single share link into a field intended for subscription URLs. After importing, you can open the configuration editor to check that the type was recognized correctly, but avoid changing the address, port, transport, or security settings. For more about protocol names and fields, see the protocol reference.
Step 2: Choose a Proxy Mode
Understand the Difference Between System Proxy and Routing
In v2rayN, find the system proxy and routing options in the bottom status bar. The system proxy tells apps that follow system settings to send requests to the local client. Routing decides whether requests that have entered the core are forwarded through a remote server or connected directly. They apply at different stages: choosing “Global” routing doesn’t automatically send every app through the client, and choosing “Auto Configure System Proxy” doesn’t mean every destination will be routed through a remote server.
For your first setup, use the system proxy as your only traffic-capture method and leave TUN disabled. You can review the routing option now, then choose “Auto Configure System Proxy” after selecting a server and confirming that the core starts in step three. “Clear System Proxy” removes the system proxy settings; “Do Not Change System Proxy” keeps the current settings and does not disable an existing proxy. Keep these three options distinct—you’ll need to know the difference when you finish.
To connect directly to common local destinations and sites in mainland China, choose the client’s “Bypass Mainland China” rule. The exact behavior depends on the active rule set. To reduce uncertainty from destination-based routing during an initial test, you can temporarily choose “Global,” then switch back to your usual rules afterward. Global describes routing for requests that enter the core; it does not capture all traffic on the device. Don’t leave a mode enabled if it doesn’t suit your everyday use.
Android: Start with the Default Traffic-Capture Scope
v2rayNG typically uses Android’s VPN interface to route eligible app traffic through the client. Open Settings and find the routing options, then choose a rule that suits your needs. If you’re unsure what the options mean, keep the defaults for now. Also leave “Per-app proxy” disabled during the first setup. Otherwise, your browser might be excluded, making it look like the connection isn’t working. You can narrow the list of proxied apps after basic testing.
If per-app proxy was already configured on your device, check whether the current mode is “Proxy only selected apps” or “Bypass selected apps.” The same app selection can mean opposite things in these modes, so don’t rely on the checkmarks alone. Also confirm that another VPN service isn’t occupying the connection slot. At this stage, choose the traffic-capture method and routing rule without changing server settings. You’ll select a specific server and connect in the next step.
Step 3: Connect
v2rayN: Test a Configuration and Set It as Active
Return to the v2rayN server list, select a configuration, and use the right-click menu to find “Test server real connection latency” or a similar option. Start by testing just a few entries; there’s no need to test the whole list at once. A real connection test generally uses the core to reach a specified test address, making it more representative of actual use than simply checking whether an address responds. However, it only reflects that test destination and the conditions at that time; it doesn’t prove that every app can connect.
Choose a configuration with a valid test result and use the right-click menu to select “Set as active server,” or the equivalent option in your version. Confirm that the active marker moves to the selected entry, then check the status bar logs. v2rayN typically starts or reloads the core when you activate a configuration; there may not be a separate, prominent “Connect” button. Now choose “Auto Configure System Proxy” so apps that follow system proxy settings use the local listener.
Check the logs for recurring startup errors. If the client reports that a local port is already in use, the listener hasn’t started correctly. Resolve the conflict instead of repeatedly switching remote servers. If the logs report unrecognized configuration fields, an unsupported protocol, or a missing core, check that the client, core, and configuration are compatible. Seeing the core name doesn’t mean the connection succeeded: core startup and a successful remote connection are two separate checks.
If the selected configuration times out, try another configuration from the same subscription. If only one entry fails, first check that configuration or its service status. If all entries fail, investigate the subscription, local network, device time, and client logs. Change one thing at a time, and note which configuration and routing rule you used. That gives you a consistent baseline for the next verification step.
v2rayNG: Select a Configuration and Approve VPN Access
On the v2rayNG main screen, select the configuration you want to use and confirm that it’s marked as active. Then tap the Connect button in the lower-right corner. The first time you connect, Android will show a VPN connection request. Check the app name and approve it. After you grant permission, the connection status on the main screen should change, and Android will usually show a VPN status indicator. This means the traffic-capture channel is active; it doesn’t by itself confirm that the remote server is working.
If the connection drops immediately after you grant permission, check the app logs instead of repeatedly tapping Connect. If it stops soon after you switch to another app, check background restrictions and battery settings. Adjust them only if you’ve confirmed that the app is being stopped in the background; you don’t need to disable all battery-saving features before your first connection. Keep the client running and use a browser to make a real request next.
Step 4: Verify the Connection
Check Traffic Capture, Then Test a Request
On desktop, open the proxy page in your system network settings and confirm that the manual proxy points to the local listening address and port used by the client. Don’t copy a fixed port number from another guide; check the current v2rayN settings. The proxy address is usually a loopback address, not the remote server address. Entering a remote address in the system proxy settings is not a substitute for the client. On Android, confirm that v2rayNG still shows a connected status and that the system VPN indicator remains visible.
Next, open a browser that uses the system proxy settings and start a new tab. Visit a site you’re authorized to access where you can tell whether the page has loaded. Make a fresh request to avoid misleading results from a cached page. Check that the page loads fully, then try another action, such as opening a different page on the same site. A spinning tab or a few visible words on the homepage doesn’t confirm that all resources loaded.
If the client provides access logs or connection records, check for the destination and routing result while making the request. Log levels and details vary by version. If the default logs don’t show every visit, that doesn’t necessarily mean the request bypassed the client. If needed, temporarily increase the log level and restore it afterward to avoid retaining excessive browsing records. When sharing diagnostic details, include only relevant errors and hide private information such as subscription URLs, authentication fields, and destinations.
Use a Side-by-Side Test to Rule Out False Positives
To check further, compare the same browser and test destination with and without the proxy. On desktop, clear the system proxy, make a new request, then restore automatic proxy settings and try again. On Android, stop the connection for one test, then reconnect and repeat it. Change only the traffic-capture status; don’t also switch servers or routing rules. If a public page loads in both states, that only shows it’s reachable by both routes—it doesn’t prove that the proxy is broken.
Checking your public exit IP can provide supporting evidence, but interpret it in light of your routing rules. If a destination is routed directly, seeing your local public IP may be expected. If your browser has its own proxy extension, the result may come from that extension rather than the system settings. A reliable check combines traffic-capture status, the active configuration, an actual request, and available logs. A successful connection test, a VPN icon, or a changed IP alone does not prove that all traffic is proxied.
If the client test succeeds but the browser fails, first check whether the browser uses its own proxy settings or an extension. Then confirm that the system proxy port matches the client listener. If the browser works but one app doesn’t, check whether that app follows system proxy settings; on Android, also check whether per-app rules exclude it. Don’t change all the server settings because of one app. For a more complete list of symptoms, continue with Troubleshooting.
Disconnect and Prepare for Next Time
After testing, restore any temporary routing rules to your usual settings. When you’re done on desktop, choose “Clear System Proxy” before exiting v2rayN, so the system doesn’t keep sending app requests to a stopped local port. If your browser stops working after you exit, check whether manual proxy settings are still enabled. On Android, tap Stop and confirm that the app is disconnected and the system VPN indicator has disappeared.
You usually don’t need to import the subscription again next time. Check the current group and active server, update the subscription if needed, enable traffic capture, and make a real request. That completes the basic workflow: the configuration is loaded into the client, requests reach the core, the remote connection works, and the app’s result can be verified. To learn about VMess, VLESS, Trojan, or core compatibility, see the protocol reference; you don’t need to learn every setting before your first use.