First-Time Setup · How-To Guide
How to Use v2rayN and v2rayNG
Follow these steps: import a subscription → choose a proxy mode → connect → verify it works. This guide walks through your first connection: get a working setup before customizing rules. If you already have a client but can’t connect, go straight to the troubleshooting guide and follow the steps for your symptoms.
Before you begin, install a client from the client downloads page and make sure your network can access everyday websites. The client manages connection settings; it does not provide servers. You’ll also need a valid subscription URL from a trusted source or an authorized connection configuration. Subscription URLs may contain access credentials, so don’t include them in public screenshots, chat messages, or support attachments.
Step 01
Import a subscription
A subscription URL is different from a regular web address. It points to server configurations that the client can read; updating the subscription adds those configurations to your list. Go back to the provider’s page and copy the full URL clearly labeled as a subscription link. Don’t copy an account management page or mistake the logged-in page in your browser’s address bar for a subscription. Preserve all URL parameters, and avoid adding spaces, line breaks, or punctuation.
v2rayN: Add a group, then update it
Open v2rayN and find “Subscription Group” in the top menu, then select “Subscription Group Settings.” Add a group, enter a recognizable name in the remarks or alias field, and paste the full subscription URL into the address field. For your first setup, leave the other options at their defaults. Check that the URL is complete, save the settings, close the window, and return to the main screen. You’ve saved the subscription source, but haven’t fetched its server configurations yet.
Open the “Subscription Group” menu again and update the subscription. Some versions offer separate options to update with or without a proxy. If you don’t have a working connection yet, start with the option that doesn’t use a proxy. Try the other option only if you already have a working connection and the subscription service requires proxy access. When the update finishes, select the group you added and check for server entries. The configuration is imported only when entries such as aliases, addresses, or protocol types appear in the list.
v2rayNG: Save the subscription, then update it from the main screen
Open v2rayNG, tap the menu in the top-right corner, and select “Subscription Group Settings.” Tap the add button, enter a remark and subscription URL, then save. Return to the main screen, switch to the relevant subscription group, and select “Update Current Subscription” from the top-right menu. Menu options may differ between versions; the key is to update the group you just saved, not add the same URL again.
Wait for the update to finish, then check the main screen for selectable entries. If the update succeeds but the list is empty, confirm that the correct subscription group is displayed and check for active filters. If the update fails, verify the subscription URL, account status, and network connection. Don’t create multiple copies of the same group or change DNS and transport settings to fix a subscription issue; doing so adds more variables to troubleshoot.
You’re done when the target group contains selectable server configurations. A subscription is a way to manage multiple configurations; each server entry is an individual connection configuration. For details, see the glossary. Once the list is ready, choose how app traffic enters the client and which route it takes.
Step 02
Choose a proxy mode
Think of proxy mode in two layers. The first is the traffic entry point: whether desktop apps follow the system proxy or Android apps enter the VPN service created by the client. The second is traffic routing: once traffic reaches the client core, rules send it through a proxy, directly, or block it. Enabling the system proxy doesn’t send every connection through a proxy, and choosing global routing doesn’t automatically capture apps that never send traffic to the client.
Desktop: Choose a route, then enable the system proxy
Find the routing settings in the v2rayN main window or system tray menu. For a first setup, start with a built-in standard split-routing option, such as a rule set that bypasses mainland China. It typically sends traffic matching direct-connection rules straight to its destination and handles other traffic according to the selected rules. To temporarily rule out split-routing as the cause, you can compare with a global proxy mode, but first check its description and confirm that the default route uses the proxy. Names and rules vary by version; don’t assume what “global” means based on the label alone.
After choosing a route, find the “System Proxy” option. To let browsers and other apps that follow system settings use the client, select “Automatically Configure System Proxy.” In the next step, you’ll set the active server before enabling this. “Clear System Proxy” usually removes the system proxy settings provided by the client; “Do Not Change System Proxy” means the client won’t take over this part of the configuration. There’s no need to enable TUN or add another proxy extension to your browser for a first connection.
Android: Check routing settings and app coverage
Check the current routing mode in v2rayNG settings or the routing menu. Start with a built-in route; don’t add custom domains, IP addresses, or rule files yet. If you previously configured per-app proxying, make sure your browser isn’t excluded. An excluded app may connect directly even when the main screen says Connected, so it won’t be a reliable way to test the proxy route. For your first setup, remove any custom app filters so the test is easy to reproduce, then restore them one at a time if needed.
These are traffic-handling rules; to enable the traffic entry point, you still need to tap Connect and approve the system VPN permission. If another tool is already using the VPN connection, disconnect it before starting v2rayNG to avoid the tools repeatedly replacing the active connection. Don’t troubleshoot a first connection by running multiple traffic-capture tools at once.
You’re done when you know which routing mode is selected and have confirmed that the app you’ll use for testing isn’t excluded. Leave protocol parameters, encryption fields, and transport settings as provided by the subscription; the server and client must match, so don’t change these settings at random. For more on global routing, direct connections, and split routing, see the FAQ. Next, select a server and connect.
Step 03
Connect
Choose a server from the subscription group. If the list contains old configurations, make sure you select an entry from the group you just updated, not an expired one. For your first test, stick to one configuration and one routing mode, changing only one variable at a time. Switching servers, cores, and DNS settings repeatedly makes it hard to tell what caused the problem.
v2rayN: Set the active server
Select the target entry in the server list, then use the right-click menu to choose “Set as Active Server” or the equivalent option in your version. Some versions let you double-click an entry to make it active, but highlighting an entry doesn’t always enable it. Check the menu confirmation, active indicator, or current server shown in the main window. Then review the client logs or status information for startup errors such as a failed configuration load or a port already in use.
Once the core starts successfully, open “System Proxy” and select “Automatically Configure System Proxy.” Keep the client window open so you can see its status. If you minimize it to the system tray, make sure you haven’t selected “Exit.” Exiting the client stops its proxy service; if the system still points to that proxy, your browser may temporarily lose access. When you’re done, clear the system proxy before exiting to avoid leaving settings that point to a stopped service.
If the system firewall prompts you, first check that the program named in the prompt matches the client or core you started, then follow your device’s security policies. You usually don’t need to allow local network connections just to browse the web. Don’t disable the entire firewall to troubleshoot a basic connection issue, or expand the local proxy listener to all network interfaces.
v2rayNG: Connect and approve VPN access
On the main screen, tap the target server entry and confirm that the selection indicator moves to it. Then tap the Connect button. The first time you connect, Android usually displays a VPN connection request. Review and approve it to let the client route traffic. This permission is managed by Android; it isn’t a subscription account login. If you declined the request, return to the main screen and tap Connect again—there’s no need to delete and re-import the subscription.
After connecting, check the client’s button state and the running status in your system notification area. Button positions and icons vary by version; the important thing is that the client remains active, not that a particular color appears. If the button immediately returns to the stopped state, check the error message. If it mentions an existing VPN, an invalid configuration, or a startup failure, resolve that issue rather than repeatedly tapping the button.
You’re done when the core is running and the system proxy is enabled on desktop, or VPN access is approved and the service remains active on Android. This confirms only that the local traffic path is set up; it doesn’t guarantee that the remote server is reachable. Don’t rely on a “Connected” status alone—test with an actual request next.
Step 04
Verify the connection
Check both the app’s access result and the client’s traffic activity. Opening a webpage alone doesn’t prove that the request went through a proxy; it may have matched a direct-connection rule. Likewise, a running client doesn’t prove that it connected to the remote server. Together, these checks help distinguish traffic that never reached the client, unexpected routing, and a failed remote connection.
Use a fresh request to check the traffic path
Open a new browser tab and visit a known working HTTPS page. If possible, use a page path you haven’t opened during this session to avoid interference from cached content or existing connections. Confirm that the page loads, then check the client logs for activity around the same time. If the logs show destination addresses and outbound routes, check whether the request reached the core and used the proxy or a direct route. Log detail depends on your settings; if individual requests aren’t shown, don’t assume the traffic failed to reach the client.
Next, visit a destination that should use the proxy under your current rules. If you’re unsure which rule applies, briefly switch to the global proxy mode you checked earlier, then restore your regular split-routing settings. Keep the server, browser, and test page the same, changing only the route. Testing a site that would normally connect directly can’t confirm whether the proxy path works.
Distinguish a successful test from a working connection
Built-in latency or connection tests can help you narrow down configurations, but their targets and protocols may differ from those used by your browser. A server passing a test doesn’t guarantee that every website will work, and a failed test may be caused by the test target or method. Always check a real app request and the error logs. Don’t reinstall the client or delete multiple configurations based on a single test result.
To compare behavior with the client on and off, first clear the system proxy on desktop, then stop the client service; on Android, tap the client’s disconnect button. Make a fresh browser request and compare page access and client logs. Your browser may reuse an existing connection or show cached content, so close the test tab and open a new one if needed. When you’re done, reconnect as described above and confirm that the selected server and routing mode haven’t changed unexpectedly.
If verification fails, keep the details needed to troubleshoot
If everyday sites work but proxy destinations don’t, check the active server and subscription status. If no pages load, check your local network, whether the system proxy points to a running client, and whether another tool is capturing traffic. If the client shows no matching request, check whether the app follows the system proxy or is excluded by a per-app rule. Investigate DNS only if you see a name resolution error; don’t change all your network settings as a first step.
If the cause is still unclear, note the time of the error, client name, selected routing mode, and error message, then follow the relevant steps in the troubleshooting guide. Before sharing logs, redact subscription URLs, server addresses, user IDs, and authentication details. Include only the error context needed to diagnose the issue. You can temporarily increase the log level while troubleshooting, then restore your usual setting to avoid retaining unnecessary connection details.
You’re done when the test app can access its intended destination and the traffic path matches the selected routing mode. Keep the configuration you verified, and update the subscription as needed. If an update replaces the active entry, select a server again and run a quick test. For your next session, you’ll usually only need to select a server, connect, and check the target page—there’s no need to add the subscription again.
After setup
Find help by topic
Once access works, keep the current configuration. For explanations of subscriptions, cores, protocols, and routing, see the glossary. To understand how system proxy settings relate to routing modes, see the FAQ. For failed subscriptions, connection timeouts, slow speeds, or background disconnects, use the troubleshooting guide. Read only what you need to avoid turning a first connection into a full network reconfiguration.
Follow the same order when you’re done: on desktop, clear the system proxy before exiting the client if needed; on Android, disconnect before closing the app if needed. Before changing devices, reinstalling the app, or adjusting settings, keep the subscription source and any important configuration safe. Don’t rely on public screenshots as a configuration backup.