V2Ray Setup Guide:
Import a Subscription and Test Your Connection
Follow the steps in order: import, choose a mode, connect, and test access. Allow about 10 minutes to follow along. Get one configuration working before changing other settings.
Haven’t installed a client yet? Choose one for your deviceBefore You Start: Get Your Client and Subscription Ready
Install the client for your device and make sure you have a valid subscription URL. A subscription URL lets the client retrieve a set of connection configurations and refresh the list. A node is one specific configuration in that list. Installing a client won’t create usable nodes or replace an account or subscription from your service provider. This site offers client guides; contact your service provider about connection details and subscription validity.
Save the subscription URL somewhere you can access it securely. Copy the entire address, including any parameters after the question mark, and don’t mistake a help page URL for a subscription URL. Subscription URLs may contain credentials, so don’t post them publicly. Before asking for help, hide the URL, account identifiers, server addresses, and other sensitive details. Also check that your device has the correct date, time, and time zone, and that your current network can load ordinary webpages.
If you’re using another proxy tool, disconnect it first to avoid conflicts between system proxy settings or VPN traffic routing. Keep the client’s default settings for now; there’s no need to change DNS, ports, or advanced routing at the outset. DNS translates domain names into IP addresses, and is best adjusted separately after the basic connection works. First, follow the steps below to establish a connection you can test consistently.
Import a subscription and select a configuration
Copy the subscription URL from your service provider’s account page, then return to the client. It should be a single, complete line with no surrounding instructions or line breaks. Some providers offer multiple subscription formats; choose one that works with your client. If you have a single share link instead, use the client’s clipboard import feature rather than entering it in the subscription group URL field. These are different import methods; mixing them up often results in a failed update or an empty list.
Add a group in v2rayN for desktop
Open the menu for subscription groups and go to “Subscription group settings,” then add a group. Enter a name you’ll recognize, such as “Daily subscription,” and paste the full URL you copied. Make sure the group is enabled, then save and close the settings window. Back in the main window, open the subscription update menu and update that group or all groups. You may see options to update through or without the proxy. If you haven’t connected yet, try updating without the proxy first; whether that works depends on whether the URL is reachable from your current network.
Wait for the update to finish, then check the configurations in the group. When they appear, select one and choose “Set as active server” from the right-click menu, or use the equivalent option in your version. Hovering over an item doesn’t necessarily make it active; check that the active indicator changes. Don’t delete existing groups in bulk or assume a configuration will work based on its name. You’ll test access in the next step.
Add a group in v2rayNG for Android
Open the side menu, go to “Subscription group settings,” and tap the add option. Enter a name and subscription URL, save, then return to the main screen. In the main menu, choose “Update subscription,” “Update current group,” or an equivalent option, and wait for the refresh to finish. Open the group, tap a configuration, and check that the selection indicator moves to it. Saving a subscription group only stores the URL; you still need to update it to retrieve the latest configurations.
If the list is still empty after updating, first check that you’re viewing the right group and haven’t enabled a filter, then review the update message. An expired URL, an ended subscription, an incompatible format, or a network that can’t reach the URL can all cause this. Don’t keep adding groups with the same URL to retry; it’s easier to troubleshoot one group at a time. If updating requires an existing connection, you’ll need another working configuration or an accessible subscription URL from your service provider. See Frequently Asked Questions for more troubleshooting tips.
At this point, one configuration should be clearly selected. Pause here before connecting. Next, decide which app traffic should enter the client and how it should be routed.
Choose a proxy mode and routing preset
First, distinguish between capturing traffic and routing it. Proxy mode determines whether an app’s requests can enter the client. Routing rules determine whether those requests are proxied, sent directly, or blocked once they’re inside. So enabling the system proxy doesn’t mean every app will use it, and choosing global routing won’t capture traffic that never entered the client. For your first setup, use a standard mode, confirm your browser works, then consider capturing traffic from more apps.
v2rayN: Start with the system proxy and test your browser
Find “System proxy” in the main window or tray menu, then choose “Automatically configure system proxy” or the equivalent option in your version. This directs system proxy traffic to the client’s local listening address. Most browsers that follow system proxy settings will use it, but some apps have their own proxy settings, so this toggle alone isn’t conclusive. Don’t enable TUN at the same time on your first run. TUN captures traffic through a virtual network interface and involves extra permissions and network considerations; set it up after the basic connection is stable.
Next, check the “Routing” preset. If you want local network resources and addresses in mainland China to connect directly, choose “Bypass LAN and mainland China” or the equivalent preset in your interface. Keeping LAN traffic direct helps you access your router’s admin page and other local devices. If preset names look similar, read their descriptions. “Global” doesn’t mean faster, and “Direct” doesn’t mean the proxy is working. Routing only selects an outbound path; it can’t fix subscription settings or server connection errors.
v2rayNG: Choose VPN mode and check app scope
Open Settings, find the operating mode, and select “VPN” for your first setup rather than “Proxy only.” VPN mode receives traffic through Android’s virtual network interface. “Proxy only” usually requires each app to be configured with the local proxy address; regular apps won’t connect automatically. VPN mode controls how the client captures traffic. It doesn’t mean every connection will use the proxy; routing rules still apply.
Next, open “Routing settings” and choose a preset that suits your needs. If you don’t need to limit traffic by app, leave per-app proxying disabled for now to avoid excluding the app you want to use. If you do need to choose apps, check whether the current setting proxies only selected apps or bypasses them; these options work in opposite ways. Save your changes, return to the main screen, and make sure the active configuration hasn’t changed. For “Allow connections from the LAN,” leave the default disabled for your first setup; you don’t need to make the client accessible to other devices for local use.
You should now be able to explain two things: how traffic enters the client, and which destinations are routed through the proxy. There’s no need to adjust ports, DNS, or rule priority yet. For custom rules, see the configuration reference. Keep these settings and move on to connecting.
Connect and check the running status
Make sure the configuration you selected is still active, then check that your network isn’t waiting for a sign-in page. If you’re on public Wi-Fi, complete the network sign-in in your browser first. While connecting, avoid repeatedly switching configurations or proxy modes; give the client time to initialize. A running indicator on the main screen only shows that the local service has started. It doesn’t confirm that the remote connection or webpage access is working.
v2rayN: Check the core and system proxy
On desktop, select the active configuration and use the start or restart service option in your version; some versions load it automatically when you switch configurations. Check the status area and logs for errors such as a failed configuration load, a port conflict, or a process exiting unexpectedly. The core handles connections and traffic forwarding, and an open client window doesn’t guarantee that it’s running. If a port is already in use, don’t terminate an unfamiliar process. Close other proxy programs first, then restart the client.
Then check that the system proxy is enabled; starting the core alone may not enable the proxy. You usually don’t need to run the client as an administrator just to troubleshoot system proxy mode. Only grant elevated permissions when the feature explicitly requires them. To keep the client running in the background, minimize it to the tray rather than exiting. If you’re unsure whether it’s still running after closing the window, check the tray and client settings instead of relying on the window disappearing.
v2rayNG: Allow the system VPN connection
Tap the start button in the lower-right corner of the Android main screen. The first time you connect, Android usually asks to let the app set up a VPN connection. Confirm the app’s identity, then allow the connection. Return to the client and check whether the start button and status text have changed, and whether Android shows a connection indicator. Button colors and system icons only show local status; you still need to test real access.
If no permission prompt appears and the connection stops immediately, check whether another VPN is already active, or whether system settings enable restrictions such as always-on VPN or blocking connections without a VPN. Don’t let multiple apps compete to capture traffic. If the connection only stays active in the foreground, allow the client to run in the background in your system’s battery settings, then test with the screen locked. Menu names vary by device, so look for the equivalent settings; you don’t need to disable battery management for every app.
If the connection fails to start, stop it and check the client logs. Note the first error related to this attempt. Don’t change DNS, switch ports, and reimport the subscription all at once, or you won’t know which change mattered. Once local startup issues are ruled out, test access as described below. For crashes or permission issues, narrow it down with our troubleshooting FAQs.
Test that it works, then disconnect
Keep the client running, open your usual browser, and visit a familiar HTTPS page. Make sure it loads fully, then open the site or app you want to use through the proxy. Don’t rely on the homepage title alone: an old page may come from cache, and images or login requests may still be failing. Open a new page or refresh the content to trigger new network requests. You don’t need to submit account details, make a payment, or share other sensitive information to test the connection.
Now compare the result with the routing preset you chose. If the rules send the destination directly, a successful visit only confirms that the direct connection works; it doesn’t prove the proxy route is available. If needed, check the client logs for connection entries from the test time and see which outbound was used. An outbound is the route the client selects for a connection. Some log levels don’t record every request, so missing entries don’t prove the connection failed. For your first test, don’t change advanced logging settings. Note the destination, test time, and current mode instead.
Browser works, but other apps don’t
Start by checking the traffic scope. Desktop apps may not follow the system proxy, or they may have a different proxy address set in their own network settings. Switching configurations usually won’t fix that. On Android, check whether per-app proxy settings exclude the app, and whether the app needs to be fully closed and reopened. Confirm that its requests are reaching the client before setting up TUN or changing the app’s own proxy settings. Don’t route all traffic through the proxy just to fix one app.
If every test fails, check these in order: confirm the device’s regular internet connection works, the right configuration is active, the subscription is valid, and the system proxy or VPN is enabled. Then check the connection logs. For authentication errors, ask your service provider to verify the configuration and subscription validity. For persistent timeouts, try another configuration from the same subscription. Change one thing at a time and repeat the same test to tell node, app, and local mode issues apart.
Speed test results aren’t the same as everyday performance
Latency tests in the client can help with an initial shortlist, but they don’t replace testing real access. TCPing mainly measures the time to establish a TCP connection; it may not include the full proxy handshake, DNS lookup, or page resource transfers. A configuration returning a latency value doesn’t guarantee that a particular site will work, and one timeout doesn’t mean every request will fail. Start by checking whether the target app can reliably do what you need. Then read about the difference between latency tests and download speed tests.
Once the test succeeds, note the configuration, mode, and routing preset you used. Subscription updates may remove or replace existing entries, so check the active configuration again afterward. When you’re done, clear the system proxy before exiting v2rayN. In v2rayNG, tap Stop and make sure the system connection indicator disappears. If your browser can’t connect after you exit, first check whether the system proxy still points to the stopped local service rather than reinstalling the client.