Before you begin, make sure the client is installed and opens normally. If you haven't installed it yet, choose the right installer for your device on the client download page. Get a subscription URL from your service provider, and confirm your device can access the internet without a proxy. The client reads configuration and forwards requests; installing it alone does not provide a usable server configuration.
A subscription URL is usually a single link that lets the client retrieve server settings. It is not a login page for a browser. It may contain information that identifies your account, so don't share it in public chats, screenshots, or online conversion tools. This guide uses an existing subscription; there's no need to write a configuration file or enable TUN first. If any terms are unfamiliar, look up “subscription,” “routing,” and “core” in the glossary, then return here.
Step 1: Import a Subscription and Update Servers
Copy the full subscription URL. Make sure you don't include surrounding instructions, line breaks, or spaces, and don't mistake your provider's account page for a subscription URL. They may come from the same website, but the client needs a link that returns configuration data. If your provider offers multiple formats, choose one specified for your client or a compatible protocol. If you're unsure, check the provider's instructions before trying a subscription converter.
v2rayN: Add a Subscription Group
Open v2rayN and go to Subscription Group Settings from the Subscription Group menu at the top. Click Add, enter a recognizable label for the group, such as “Everyday,” and paste the copied link into the subscription URL field. Keep the other defaults for now, save, and close the settings window. Back on the main screen, you should see the new group tab. It's normal for the group to be empty at this point: saving the URL doesn't automatically retrieve server details.
Next, open the Subscription Group menu and update the subscription. Prefer an update option labeled “without proxy,” or use the direct update option in your version. Since you don't have a working connection yet, an update “through proxy” may depend on a connection that isn't set up. When the update finishes, check for server entries in the list and a success message in the log at the bottom. If you have multiple groups, make sure you're viewing the new one, not a different empty group.
v2rayNG: Save the Subscription, Then Update It
Open the v2rayNG side menu and go to Subscription Group Settings. Tap Add, enter a label and subscription URL, then save or confirm. Return to the server list on the main screen, open the menu in the upper-right corner, and tap Update subscriptions. In some versions, the update option is on the group screen. The steps are the same: save the link, fetch the configuration, then confirm that selectable servers appear in the list.
If the update finishes but no servers appear, first check that the right group is selected, then review the error in the log. An empty URL, an expired link, and a connection timeout are different problems; repeatedly tapping Update won't diagnose them. If the subscription URL is only accessible through an existing proxy, you'll need another working connection or an update URL that can be reached directly. Don't import configuration from an untrusted source just to update a subscription.
Once servers appear in the list, continue to the next step. Their presence means the configuration was imported, not that every server can connect. For now, don't delete entries in bulk or change protocol fields; keep the original subscription settings. If the log reports a parse error or unexpected response, see the Help Center for subscription update troubleshooting, then return here to choose a proxy mode.
Step 2: Choose a Proxy Mode and Routing
At this stage, distinguish between two settings: proxy mode determines how requests enter the client; routing determines how they're handled afterward. For example, setting a system proxy on desktop directs apps that honor system settings to the local proxy. “Bypass LAN” is a routing rule that determines whether matching traffic connects directly or goes through the proxy. These are separate settings; changing one doesn't determine how the other behaves.
v2rayN: Start with the System Proxy
In the v2rayN main window or system tray menu, find System Proxy and select Auto Configure System Proxy. The client will set the system proxy to its local listening address and port. Open the menu again and confirm that this option is selected—not Clear System Proxy or an option that leaves the current settings unchanged. Some desktop environments require you to confirm the change in system settings. When in doubt, check the system's proxy settings directly.
Next, find Routing. For your first connection, choose a built-in rule with “Bypass LAN” in its name. This usually keeps local device traffic on a direct connection while other requests are handled by the rule. If the interface also offers a Global routing mode, it generally sends more requests that have entered the client through the proxy; it does not automatically route traffic from every app on your device. Stick with one routing option for your first test so you can identify the cause of any issues.
You don't need to enable TUN for this guide. The system proxy is usually enough to test browser access through the client. Terminals, games, and apps that manage their own network connections may ignore system proxy settings, so their results don't necessarily mean the browser setup has failed. If you need a virtual network adapter to route traffic, complete the basic test first, then read the TUN mode guide in Advanced usage and configure permissions, routing, and DNS one at a time.
v2rayNG: Check VPN Mode and App Scope
In v2rayNG Settings, make sure VPN mode is selected, not proxy mode, which only opens a local proxy port. VPN mode uses the system's virtual network interface to receive traffic, and starting it triggers a system authorization prompt. For your first setup, leave “Per-app proxy” disabled. Otherwise, your browser might be outside the selected app scope, making the client appear to run while the browser still uses its normal connection.
If per-app proxy was already configured on your device, check whether it is set to “proxy selected apps only” or “bypass selected apps”—these mean opposite things. Don't rely only on whether an app is checked. For routing, start with a bypass-LAN rule and leave the other defaults unchanged. “Allow connections from the LAN” opens an entry point for other devices; you don't need to enable it just to connect from your phone.
For now, leave DNS, traffic sniffing, and custom routing unchanged. These settings matter for specific use cases but aren't necessary for a first connection. Note your current proxy mode and routing rule so you can test again under the same conditions if anything goes wrong. For per-app routing or custom rules, continue with Advanced.
Step 3: Choose a Server and Connect
Return to the server list and choose a complete entry that your service provider marks as available. A server name is just a label, not a guarantee of quality or protocol support. If your subscription includes multiple entries, test one at a time; compare the others after you connect successfully. Avoid changing the server, proxy mode, and routing repeatedly during troubleshooting, or it will be hard to tell which change affected the result.
v2rayN: Set the Active Server and Check the Core
Select the server entry in the v2rayN list, open the context menu, and choose Set as active server or the equivalent option in your version. Some versions let you switch servers by double-clicking, but check the selected marker and status message rather than relying on the highlight alone. Wait a moment for the client to reload the core using the current configuration. Check the log at the bottom for recurring errors, and confirm that the system proxy is still set to Auto Configure System Proxy.
On desktop, there may not be a separate Connect button to press. Requests are forwarded according to the configuration only after the active server is set, the core is running, and an app uses the local proxy. A listening port in the status bar shows where the proxy accepts connections; it doesn't mean the remote server is reachable. If the log says the port is already in use, close another running proxy client or duplicate process and try again. For now, avoid changing multiple port settings at once.
If you see a system network permission prompt on first launch, check the program name and install location, then grant permission if needed. You don't need to allow LAN access for local use, and you shouldn't disable the entire firewall just to dismiss a prompt. If the program exits immediately after launch, check the client log and system message to distinguish a missing runtime, permission issue, or configuration loading error. Resolve that first, then test the remote connection.
v2rayNG: Connect and Approve the VPN Request
On the v2rayNG main screen, tap the server you want and make sure the active marker moves to that entry. Then tap Connect in the lower-right corner. The first time, Android will show a VPN connection request. Allow it after confirming it came from the v2rayNG app you just opened. Return to the client and check that the button and status indicate an active connection. If you dismissed the authorization prompt, tap Connect again; selecting a server doesn't start the VPN.
If another app is using the system VPN connection, stop that connection and try again. Once connected, keep v2rayNG running and don't immediately switch to battery-saving settings or clear background apps. Check battery optimization and background permissions only if testing in the foreground succeeds but the connection often drops after switching apps. This helps rule out configuration issues before blaming background restrictions.
At this point, confirm that the client is running and the intended server is selected. The running indicator only shows local client status; the next step is to test an actual request. If the log keeps showing connection timeouts, try another known-working entry and repeat this section. If multiple entries fail, check that the subscription is valid, the device time is correct, and the local network is working.
Step 4: Test the Connection and Disconnect Safely
Don't rely on a single icon to verify your connection. First open an HTTPS page that you can normally access in your browser to make sure the new settings haven't disrupted basic connectivity. Then visit a site that should be routed through the proxy under your current rules. Reload each page for every test; if needed, open a new browser window to reduce interference from cached content or existing connections. A page loading confirms access, but you'll need to check your routing rules and connection logs to tell whether it went through the proxy.
Check the Result and the Request Path
On desktop, make sure a browser proxy extension isn't forcing traffic through a different proxy. If an extension overrides system settings, v2rayN's system proxy setting may not affect that browser. On Android, confirm that per-app rules haven't excluded the browser you're testing. Then check the client's connection or log screen for the request you just made and any related errors. Don't assume the request never reached the client just because a particular log entry is missing; log levels and client versions affect what's displayed.
The client's built-in tests can provide extra information, but first check what each test measures. A TCP latency test usually only shows whether a connection to a particular port can be established. A real connection test is closer to actual browsing, but still depends on the test URL, DNS, and routing. A latency result for one entry doesn't guarantee that every site will work. A more reliable check is a page that loads correctly, no recurring client errors, and consistent results across repeated tests.
To check your exit details, use a network diagnostics page you trust and compare the results before and after connecting. This only works if the request is routed through the proxy; if the diagnostics page is set to connect directly, an unchanged exit address doesn't mean the client has failed. Don't rely solely on the displayed location, either: geolocation databases can be outdated or differ in how they attribute addresses. The goal is to confirm that requests follow the expected path, not to match a particular label on a page.
Narrow Down the Problem by Symptom
If no pages load, check your basic connection, selected server, and any connection errors in the log. If only one site fails, check which routing rule matches its domain before investigating the site itself. If the browser works but a terminal doesn't, first check whether the terminal uses the proxy instead of reinstalling the client. For DNS errors, note the exact message and continue troubleshooting in the Help Center; don't replace all your DNS settings at once.
Once the basic connection works, keep a short record of the subscription group, active server label, proxy mode, and routing rule. When you change settings later, change one at a time and repeat the same page test. Subscription updates can change server details, and manually edited entries may be overwritten. For ongoing group management, server filtering, or custom outbounds, see the Advanced Configuration Guide instead of adding these options during your first connection.
Finally, open a page that normally works without a proxy to confirm your connection is still working after disconnecting. If the browser can't connect after v2rayN closes unexpectedly, check whether the system proxy still points to a local address and restore its previous setting. That completes the full process: import a subscription, choose a mode, connect, and test. Add per-app proxy, TUN, or custom DNS later only if you have a specific need.