Before you begin, make sure your device can access the internet without a proxy, and temporarily quit any other apps that route or capture network traffic. Have the complete subscription URL ready; do not use the provider's account or management page URL. For your first setup, change only the settings covered in this guide and leave everything else at its default. That makes it easier to identify what changed if something goes wrong.
1. Import a Subscription and Update the List
A subscription URL is an entry point for retrieving a set of configurations, not a webpage to sign in to in your browser. Copy the subscription URL provided by your service and check that it is complete, with no extra spaces, line breaks, or punctuation from a chat message. It may contain private access credentials, so hide the entire URL before sharing screenshots, asking for help, or posting logs.
v2rayN: Add a Subscription Group
Open the v2rayN main window, find Subscription Group in the top menu, and select Subscription Group Settings. Add a group, enter a recognizable name in the remarks field, and paste the URL into the subscription address field. The remark is only used to identify the source on your device; it does not change connection settings. Make sure the group is enabled, save it, and return to the main window.
Open the Subscription Group menu again and choose Update Current Group or Update All Subscriptions. Before you have an active proxy connection, use the menu option that updates without a proxy. Only try updating through a proxy if your current network cannot reach the subscription URL and you already have a working proxy. Watch the log at the bottom of the window during the update. When it succeeds, the server list should show the new entries, and the saved group name should appear when you switch groups.
v2rayNG: Save the URL, Then Update
In v2rayNG, open the side menu and select Subscription Group Settings, then tap Add. Enter a remark and the complete URL, save, and return to the main screen. Open the menu in the upper-right corner and select Update subscription. Saving the URL and downloading the configurations are separate actions: if you have only saved it, no new servers will appear in the main list until you run the update.
If you have a single configuration sharing link rather than a subscription URL, use the client's Import from clipboard option. On Android, this is usually in the add menu on the main screen; on desktop, look in the Servers menu. A single imported configuration does not become a subscription or update when the subscription is refreshed. Check what type of link you have before choosing an import method.
Before Continuing, Make Sure the List Is Not Empty
When servers appear, first check that they belong to the expected group. This confirms that the configurations were retrieved, not that the remote servers are reachable. If the list is still empty, check the update message, then verify that the URL is complete, the subscription has not expired, and your network can reach it. Do not keep adding the same group. For more on update errors, see the FAQ: Installation, Setup, and Troubleshooting. Once the list looks right, move on to choosing how traffic enters the client.
2. Understand Traffic Entry and Routing Modes
Options such as System Proxy, Global, Bypass, and TUN operate at different levels. The traffic entry method determines how app traffic reaches the client; routing rules determine whether traffic is sent direct or through the proxy once it gets there. For your first connection, set up one simple path instead of enabling every option at once. Otherwise, even if access starts working, it will be hard to tell which setting made the difference.
v2rayN: Start with the System Proxy
On desktop, start with the system proxy and leave TUN off. Find System Proxy at the bottom of the main window or in the tray menu, and make sure the options for setting or automatically configuring the system proxy are available. You will enable it after choosing a server in the next step. Browsers and other apps that follow system proxy settings usually use this route, but apps with their own proxy settings may not. Do not assume every app is covered.
Clear System Proxy removes the proxy setting at the system level; it does not turn off every client feature. Do Not Change System Proxy may leave the existing system setting in place, so it does not mean the proxy has been cleared. To stop using the desktop proxy, explicitly choose the clear option. Some clients continue running in the tray after the window is closed.
Routing: Keep the Built-In Rules for Now
In the Routing menu, keep the client's built-in rules or choose a preset that matches your needs. Split routing sends different destinations through different routes, so a site may show no change in exit IP if it matches a direct rule. Global proxy usually sends most captured traffic through the proxy, but check the rules in the selected preset. It does not automatically route apps that do not use the system proxy.
Do not confuse the PAC option in the desktop proxy mode menu with routing rules in the core. PAC can decide whether an app request uses the proxy before it reaches the client; routing rules select an outbound route inside the client. If your first test behaves differently than expected, restore the simple system proxy entry point and check routing separately. This avoids confusion from overlapping rules.
v2rayNG: Route Traffic Through the System VPN
On Android, traffic usually enters through the system VPN interface, so you do not need to copy the desktop system proxy setup. Keep the default routing rules for your first connection, and check whether per-app proxying is enabled. If your browser is excluded, a browser test will not show the proxy's effect. Also make sure another app is not using the VPN connection. Leave DNS and per-app rules unchanged for now. For details on routing fields, see the routing configuration reference. Save TUN settings for after your first successful connection.
3. Choose a Server and Connect
You now have a list of configurations and know how traffic will enter the client. Choose one server, check that it is basically reachable, and then route app traffic through it. Test one active configuration at a time and note which entry you selected. Avoid switching repeatedly between servers and modes so each attempt in the logs corresponds to a clear action.
v2rayN: Test a Server, Then Set It as Active
Select one or a few candidates in the server list, right-click, and run the Real Connection test or the similarly named option. The result shows whether the test destination was reachable from your device at that moment; it is not a guarantee of consistent speed. A TCP latency test only shows that the port responded. It does not verify a complete proxy request, so a low latency value alone does not prove the configuration works.
Select a server that passed the test and use the right-click menu to choose Set as active server, or the equivalent option in your version. Confirm that the active status changes in the main window. Then open the system proxy menu and choose the option to set or automatically configure the system proxy. Watch the log panel: you should see the core start, begin listening, or handle subsequent requests—not exit immediately after launch. Log wording varies by core, so do not look for one exact success message.
If you see errors such as address already in use or failed to load configuration, stop retrying for a moment. Close any duplicate client instances and check that another program is not using the local listening port, then try loading the configuration again. Do not expose the listening address to the internet just to work around a port conflict; for typical desktop use, keep it bound to the local loopback interface. See the inbound configuration reference for field details.
v2rayNG: Select a Configuration and Approve the VPN Request
Return to the v2rayNG main screen, tap the configuration you want, and confirm it is selected. Then tap Connect. The first time you connect, Android will show a VPN connection request. Make sure it was opened by v2rayNG, then approve it. This permission lets the app create a network interface; it does not confirm that the remote server works. Continue by checking the app status and testing access.
After connecting, the button state usually changes and a VPN icon appears in the system status area. If the app immediately returns to a disconnected state, open its logs and check the latest error instead of repeatedly approving the same request. If your device restricts battery use or background activity, keep the app in the foreground while testing. Adjust background permissions later if needed, so an app being stopped in the background is not mistaken for a server failure.
Once the client stays running and the logs no longer show an immediate startup error, continue to the next step. Do not rush to change advanced settings; first confirm that your browser requests are following the expected route.
4. Verify That the Proxy Is Working
To verify the connection, check app access, client logs, and the destination IP—not just the connection button. In your browser, load a new page rather than relying on cached content. A new private window can reduce cache interference, but it does not change system proxy settings or automatically rule out browser extensions.
First, Confirm That Requests Reach the Client
Choose a known, accessible HTTPS site that you expect to reach through the proxy. Load it while watching the client logs for entries related to that destination or its connection. Some log levels show fewer details, so missing per-request entries do not automatically mean the connection failed. If you do see a connection refused, DNS resolution, or handshake error, investigate that specific error.
If nothing changes in a desktop browser, first check that the system proxy is still enabled. Then check whether a browser extension or the browser's own proxy settings are overriding it. On Android, check whether the browser is excluded from per-app proxying. If one app works but another does not, check how the affected app connects before replacing the entire subscription.
Then Compare the Exit IP
In the same browser, visit a trusted IP lookup page and note the result. Check whether it matches what you expect from the routing mode. With split routing, the lookup site may go direct, and some pages report different address families separately. An unchanged exit IP alone does not prove the proxy is broken, and a changed geolocation label does not prove that every app is using the proxy.
For a clearer comparison, note your current routing setting, temporarily select the built-in global proxy preset, then refresh the lookup page and check the logs. If the exit IP changes and returns to its original value when you restore split routing, the two rule sets are likely taking different paths. Restore your original routing setting when you're done; do not treat a temporary test setting as your permanent configuration. Avoid changing DNS, ports, and transport settings just to make a lookup result look right.
Troubleshoot by Layer and Restore Settings When Done
If the test still fails, check in this order: regular internet access → subscription list → active server → local service → app traffic entry → routing result. If the regular connection is down, restore it first. If the list is empty, return to the subscription steps. If the core fails to start, read the error. If the browser traffic is not captured, fix the entry method first. Change one setting at a time and retry the same destination so you can tell whether the change helped. For more detailed explanations, see the FAQ Troubleshooting section. You do not need to investigate every setting before completing your first connection.
After verification succeeds, keep the working server and mode. You can explore DNS settings or custom routing later. When asking for help, include the client name, operating system, step where the error occurred, and logs with sensitive details hidden. Do not share your subscription URL, server credentials, or complete private configuration.
When you finish, clear the system proxy in v2rayN, then exit the tray app if needed. If you only close the main window, check whether the client is still running. In v2rayNG, tap Disconnect and make sure the system VPN icon disappears. Finally, open a regular webpage to confirm your internet connection is back to normal. A repeatable first-use workflow includes connecting, verifying, and disconnecting.