V2Ray Setup Guide
Import a Subscription and Test Your Connection
Start with an existing subscription and follow the steps to import it, choose a mode, connect, and test in a browser. If the client is installed and your subscription is active, setup takes about 10 minutes.
The client handles connections and routing. Get your subscription URL and server access from your provider first.
- 01Subscription Group Settings
Add URL → Update Subscription
- 02System Proxy / VPN
Choose How Traffic Enters and Is Routed
- 03Active Server
Start the Core → Approve System Permission
- 04Browser and Runtime Logs
Test Access → Check Where Traffic Goes
Before you begin, open the installed client and make sure its main window appears normally. If you haven't installed it yet, go to the download center, choose the installer for your system, and return to this page once installation is complete. Get an active subscription URL from your service provider, confirm that your service is still valid, and keep the provider's instructions handy. You don't need to understand every protocol field or write a configuration file by hand. Just follow these four steps to establish a repeatable connection.
A subscription URL usually contains personal access credentials, so protect it like a password. Don't post it in public forums or include the full URL in screenshots when asking for help. If your provider only gives you a single server share link, you can import it from the clipboard, but that isn't the same as a subscription group: individually imported servers usually won't refresh when you update a subscription. The steps below cover subscriptions, which are easier to maintain over time.
01 Import a Subscription: Save the URL, Then Update
Copy the subscription URL from your provider's account page—not the page's address from your browser's address bar. A subscription URL returns a set of client configurations; the account page is just a regular website. They aren't interchangeable. If your provider offers several subscription formats, choose one marked for V2Ray or your client. After copying it, return to the client to avoid pasting an old URL by mistake.
v2rayN: Add a Subscription Group
In the v2rayN main window, open the Subscription Group menu, choose Subscription Group Settings, and click Add. Enter a short, recognizable name or note, then paste the subscription URL into the URL field. The name is only for local organization; it doesn't change the server's connection settings. Before saving, check for spaces, line breaks, or punctuation added by a chat app. Don't remove query parameters to shorten the URL.
After saving the group, return to the main window and select Update Subscription from the Subscription Group menu. If this is your first connection, choose the option to update without a proxy. If your current network can't reach the subscription URL, check the URL and network first, then follow your provider's instructions. Updating through a proxy requires an existing working connection, so it isn't a general fix for a failed first connection. When the update completes, check that server entries appear in the group.
v2rayNG: Save a Subscription and Refresh the List
In v2rayNG, open the top-right menu and go to Subscription Group Settings. Tap Add, enter a note and subscription URL, then save. Return to the main screen, open the menu, and select Update Subscription. Some versions call this Update Current Group Subscription. If you're viewing a specific group, check whether the update applies to that group or all groups so you don't mistake older entries in another group for the update results.
After a successful update, server configurations should appear in the main window. Choose one to connect to: in v2rayN, use the entry's right-click menu to set it as the active server; some versions also support double-clicking. In v2rayNG, tap the server and check its selection indicator. For now, just confirm which server is selected—don't keep switching between entries. A visible entry means the configuration was imported, not that you're connected. Next, set the traffic entry point and routing mode.
If the list is empty after an update, clear any search filters and switch to the right group. Then check the update message for parsing or request errors. An expired URL, an inactive account, or an unsupported format can all prevent import; repeatedly clicking Update won't change that. Keep only a summary of the error, and don't share the full subscription URL. Learn how subscriptions differ from individual servers in the quick reference. Save multi-subscription filtering and deduplication for advanced configuration.
02 Choose a Mode: Separate the Entry Point from Routing
Once you've imported a subscription and selected a server, decide how app traffic enters the client and how it's routed afterward. These are two separate questions: the system proxy or VPN is the entry point; global or bypass-mainland-China rules determine routing. For example, selecting global routing doesn't automatically make every desktop app follow the system proxy. Likewise, enabling the system proxy doesn't mean every request that enters the client will use a remote server. Keep these two layers separate to make testing easier.
First-Time Setup: Start with Built-In Routing Rules
In v2rayN, find Routing or the routing settings and start with the built-in Bypass mainland China rule for everyday use. Typically, destinations matching local or mainland China rules use a direct outbound route, while other destinations follow the rule set's default outbound. The actual result depends on the rules, their order, and the resource files—not just the mode's name. Keep the built-in rules for your first setup; don't add custom domains, DNS, or outbound settings at the same time.
In v2rayNG, open Settings or Routing Settings, find Routing Mode, and choose a built-in option that serves the same purpose. Some versions list bypass LAN and bypass mainland China separately; choose what you need. If per-app proxying is enabled, make sure the browser you're testing is included in the apps to route. If unsure, note your current settings, then use a configuration that includes the test browser so you don't mistake an app exclusion for an unavailable server.
Global Mode: Use It for a Controlled Test
To check whether a request can reach the selected server, temporarily use global routing as a comparison. Global usually means that traffic entering the client's routing process uses the proxy outbound; it doesn't guarantee that every connection on the device will do so. Some apps use their own proxy settings, and the desktop system proxy may not handle them. Switch back to your everyday rules after the test so you don't leave traffic that should connect directly on a different route.
This guide uses the system proxy for the first desktop connection; leave TUN as it is for now. TUN can route traffic from more apps, but it involves permissions, routing, and DNS, so enabling it during first-time setup makes troubleshooting harder. On Android, v2rayNG typically uses VPN mode, and you'll approve the connection in the next step. These entry points work differently; you don't need to match every toggle between platforms.
After choosing a mode, pause here and note the active server and routing mode. If something goes wrong, change one setting at a time so you can tell what fixed it. For rule priority, core DNS, and TUN combinations, see the advanced configuration guide. If you're unsure about the difference between a system proxy and global routing, start with the basics in Frequently Asked Questions.
03 Connect: Check the Active Server and Approve Permissions
Your server list and routing mode are ready; now you can route app traffic through the client. Before connecting, close other tools that manage the system proxy or VPN to prevent them from overwriting the same settings. If your device is managed by an organization or has a work network connection you need to keep, check the applicable requirements before changing anything. Then confirm that the selected server is in the subscription group you just updated.
v2rayN: Check the Core, Then Set the System Proxy
In v2rayN, selecting an active server usually starts or reloads the core for that configuration; check the current version's prompts for details. Open the log panel at the bottom of the main window and look for configuration or startup errors. If the right server is selected and there are no startup errors, open System Proxy from the main window or system tray menu and choose Automatically Configure System Proxy. This points the system proxy to the client's local listening address; you don't need to enter the remote server address in system settings.
Keep v2rayN running after setup. Closing the window may minimize the client to the system tray, depending on its close behavior settings, so don't assume the app has exited just because the window disappeared. If the logs say a port is already in use, check whether another instance of the client or another proxy tool is running. Stop the conflicting process and try again. Avoid changing local ports during initial setup: the browser, system proxy, and core entry point need to match, and changing just one can cause new connection errors.
If the system asks for firewall or network permission, first confirm the request is from the client you just launched or its bundled core, then allow access as needed. You don't need to disable your firewall to connect for the first time. If configuration loading fails, check the error in the client. An enabled system proxy only means the entry point was set; it doesn't prove the core is ready to accept connections.
v2rayNG: Start the VPN and Approve the Connection Request
On the v2rayNG main screen, select a server and tap Connect. The first time you connect, Android usually shows a VPN connection request explaining that the app will handle network traffic through a VPN interface. Read the prompt and approve it, then return to the client. Check that it shows a running state and that Android displays a VPN indicator. If you denied permission, the connection won't start; tap Connect again and approve the request.
If another VPN is already connected, starting v2rayNG may disconnect it; the exact behavior depends on your device's management policies. Check that the expected app is connected rather than relying only on the VPN icon in the status bar. If the connection stops immediately after you tap Connect, open the client logs and check for configuration parsing, port binding, or permission errors first. Reimporting the subscription won't usually fix these issues.
Once the client shows that it's running, keep it in the foreground for your first test, then check what happens when you switch to the browser. If it only disconnects after the screen turns off or the app runs in the background, check battery optimization and background activity restrictions. There's no need to change those settings if the first connection attempt fails immediately. Connecting and approving permissions is only the start; next, test real access to confirm the entry point, routing, and remote server work together.
04 Test Your Connection: Check Real Access and Traffic Routing
Start by testing the entry point you just configured. On desktop, use a browser that follows the system proxy and check whether any browser extensions override its proxy settings. On Android, use a browser included in the VPN's coverage. Open a new tab and visit an HTTPS page expected to use the proxy under your current routing rules, then visit a familiar page expected to connect directly. Use fresh requests; don't judge the connection by a cached page or browser home screen.
A Page Loading Doesn't Confirm It Used the Expected Route
A successful load means the request completed, but it doesn't prove that it used the proxy—a site may be reachable directly. Check the client connection logs to see whether the test domain reached the core, which rule it matched, and which outbound it used. The available details depend on the log level. If the domain isn't shown, logging may be too limited; that doesn't necessarily mean no traffic passed through. You don't need detailed debug logs for everyday use. Restore the normal log level after troubleshooting.
You can also use a trusted IP lookup service as a comparison. Note the public IP shown when connecting directly, then make a new request with a rule that clearly routes traffic through the proxy and compare it with the exit IP details from your provider. The lookup page is subject to routing too: if it matches a direct rule, seeing your local IP is expected. Geolocation databases can be inaccurate, and two exit IPs in the same region may show similar locations, so don't rely on the country or city alone.
Built-in connection or latency tests can help you compare servers, but their targets, protocols, and routes may differ from a browser's. If a test succeeds but a page fails, check the browser's entry point, domain routing, and DNS. If a test fails but browsing works, don't assume the service is unavailable. Real-world access and the relevant logs are better indicators of whether the current setup meets your needs than a single test result.
If It Doesn't Work, Check in This Order
First confirm that the subscription updated successfully, the service is still active, and the active server hasn't changed. Next, check that the client is still running and that the logs show no startup errors. On desktop, verify that the system proxy still points to the current client. On Android, check that v2rayNG is still connected through VPN and that the test app isn't excluded. Finally, check the routing mode, destination rules, and any DNS errors. This order helps avoid changing remote server settings when the actual problem is that the entry point isn't enabled.
If just one page fails, test a different destination and note whether the error is a connection timeout, DNS lookup failure, or certificate error. Correct the device's clock if it's significantly off; don't disable certificate validation to work around a certificate error. If your subscription has another known-good server, switch only the active server and try again without changing other settings. If the cause is still unclear, note your system, client name, error summary, and troubleshooting steps, then use Frequently Asked Questions to investigate. Remove personal credentials and subscription URLs before sharing logs.
Once the test succeeds, note these four details: subscription group, active server, everyday routing mode, and entry point. You won't need to import the subscription again next time. When you're done, select Clear System Proxy in v2rayN before closing the client so the browser doesn't keep sending requests to a closed local entry point. In v2rayNG, tap Stop and confirm that the system VPN connection has ended. If you set a proxy manually in your browser, restore that setting there too.
When a server changes, update the existing subscription group instead of adding the same URL again. For scheduled updates, multiple subscriptions, more detailed domain routing, or TUN, see advanced configuration. Keep the basic settings that worked in this test and change one thing at a time to make routine maintenance and troubleshooting easier.