Getting Started · Four-Step Setup

v2rayN Setup Guide

Import a subscription → Choose a proxy mode → Connect → Verify the connection

Start with an installed client and follow the full connection workflow. Get one server entry working before adjusting routing or DNS. The basic setup usually takes about 10 minutes, excluding downloads and troubleshooting.

Not installed yet? Choose a client to download

Step 1: Import a Subscription

Before you start, get your subscription URL, make sure it is still valid, and check that your device date and time are set to sync automatically. The client reads connection settings; it does not create a working remote server. A subscription URL can usually import multiple server entries, while a VMess, VLESS, or Trojan share link describes a single connection. Use the correct import option for each, or the format may not be recognized and the server list may remain empty after updating.

v2rayN: Create a Subscription Group and Update It

Open v2rayN and find Subscription Group in the top menu or its equivalent, then open Subscription Group Settings. Add a group, enter a recognizable label, and paste the full subscription URL into the address field. Check for extra spaces, line breaks, or chat-app text at either end. Leave other options at their defaults, save, and return to the main window.

Open the Subscription Group menu and select Update subscription, or use Update subscription without proxy if your version offers it. For the initial setup, you probably do not have a working proxy yet, so try a direct update first. When it finishes, the main list should show server details such as protocol, address, and port. Switch to the group you just created and make sure its entries are displayed, not stale settings from another group.

If the update fails, read the error message first. An expired URL, an invalid login session, a certificate error, or an HTML page returned in place of subscription data can all prevent parsing. Before opening the subscription URL in a browser, make sure the browser environment is trustworthy; never paste the full URL into a public testing site. Use Update via proxy only if you already have a working connection and the subscription URL actually requires a proxy. Otherwise, the connection needed to update would depend on the connection you have not imported yet.

v2rayNG: Add a Subscription URL

In v2rayNG, open the side menu and go to Subscription Group Settings. Use the add option to enter a label and subscription URL. Save, return to the main screen, and select Update subscription from the menu. Wait for the list to refresh, then find the newly imported server entry. If you have a single share link, use the clipboard import option in the add menu instead of treating it as a subscription URL and repeatedly trying to update it.

You have completed this step when the list contains a server you can select—not when you are connected. For now, avoid importing several configs from unknown sources or changing multiple fields at once. Subscription URLs may contain access credentials; hide the URL, user ID, and password in screenshots when asking for help. Once the list looks right, move on to proxy mode settings.

Step 2: Choose a Proxy Mode

Think of proxy mode in two layers. The first determines whether app traffic enters the client; the second determines which outbound route handles requests once they reach the core. In v2rayN, System proxy controls the first layer, while routing settings control the second. Changing routes alone will not make a browser use the proxy, so it may still connect directly. Enabling the system proxy without a working core can also make the browser fail to reach the local proxy.

v2rayN: Set the System Proxy, Then Choose a Route

Find System proxy at the bottom of the main window or in the tray menu, then select Set system proxy automatically. Clear system proxy removes the system proxy entry configured by the client; Do not change system proxy leaves the current system settings untouched and does not clear an existing proxy. For a first test, choose automatic configuration so browsers that follow system proxy settings use the same path.

Next, find the routing mode. For everyday browsing, start with a preset such as Bypass mainland China. This typically routes local network addresses and targets matched by mainland China rules directly, while sending other requests through the proxy. The actual result depends on the active rules and rule data. Do not assume where every domain will go based on the mode name alone. If one site behaves unexpectedly, inspect its matching rule instead of importing the same subscription again.

Global routing generally sends requests that reach the core through the proxy outbound. It does not mean every app on your device is covered: some apps have their own proxy settings, and some traffic does not follow the system proxy. For your first test, leave extra traffic-capture options such as TUN off, and do not run another proxy client at the same time. For how routing rules relate to outboundTag, see the routing section of the JSON manual.

v2rayNG: Check VPN Mode and Routing

In v2rayNG settings, confirm that VPN mode is enabled, then open routing settings and choose a suitable preset. If the app offers per-app proxying, leave the default scope for your first test or make sure the browser you are testing is included. Otherwise, the VPN icon may appear in the status bar while the excluded browser continues to connect directly.

At this point, you have chosen a mode, but have not confirmed that the remote server is reachable. On desktop, note the system proxy and route you selected; on Android, note the VPN mode and app scope. Next, choose one server and connect. Keep troubleshooting focused on this configuration so you can compare results without changing the target at every step.

Step 3: Select a Server and Connect

Return to the server list and choose an entry from a known source with complete settings. A region label only describes the location shown in the config; it does not prove the actual exit location or connection quality. For your first connection, use a config the subscription provider says is still working. Do not judge by the entry name alone, and do not remove encryption, transport, or TLS settings just to make troubleshooting easier.

v2rayN: Set the Active Server

Select the target entry in the v2rayN list and activate it using Set as active server in the right-click menu, or the equivalent option in your version. A highlighted row may only be selected; make sure the active marker has moved to that entry. The client usually loads the config and starts or restarts the core. If your version has a separate start control, follow the on-screen instructions, then open the log panel and check the results.

Start with the logs to check whether the local service launched correctly. Resolve local errors first, such as an address already in use, a config parsing failure, or an unsupported transport setting. A successful startup only means the core is listening; it does not mean it has connected to the remote server. Many network connections are created only when the browser sends a request, so a changed tray icon is not proof that traffic is working.

The local listening address is usually 127.0.0.1. Ports may be separate for SOCKS and HTTP in some versions, while others use a mixed port. Use the actual values shown in Parameter settings; do not copy ports from an outdated guide. If the logs say the listening address is already in use, close any duplicate client instances. If you need to change a port, update the system proxy or app proxy settings to match. See inbounds configuration for details on ports and listener fields.

v2rayNG: Connect and Approve VPN Access

In v2rayNG, tap the target server entry to select it, then tap Connect on the main screen. The first time, Android will usually show a system VPN connection request. Confirm it after checking that it comes from v2rayNG. Then check the connection status and the VPN icon in the status bar. If another app is using the VPN interface, stop that connection before trying again in v2rayNG.

If the button switches back immediately, open the logs to see the specific error, then check system authorization, core settings, and server parameters. If the connection stays up but pages do not load, do not reinstall the client yet. Keep the current config unchanged and move to the next step: check the browser request, logs, and exit path in turn.

Step 4: Verify the Connection

Change only one variable at a time. Keep the current server and route, open a browser that follows system proxy settings, and temporarily disable any proxy extensions configured in the browser. On Android, make sure per-app rules have not excluded the browser. First open a page you can normally access to confirm basic connectivity, then visit a target expected to use the proxy. Note whether each page loads and whether the client logs a matching request.

Check the Request, Then the Exit

After opening a page, check the client logs. If the current log level records access events, you should find an entry matching the test time and target domain. No entry does not necessarily mean no traffic; access logging may be disabled. Check the system proxy status and browser settings too. If you do find an entry, check its outbound tag and look for errors such as timeouts, resolution failures, or handshake failures.

To check the exit IP, use an IP lookup page you trust and compare results before and after connecting. Turn off the proxy and note the original result, then reconnect to the same server and check again. If routing sends the request directly, an unchanged exit IP is expected. To rule out routing as a factor, briefly switch to global routing for a test, then restore your usual split routing. A changed exit IP only confirms that this request took a different path; it does not prove that every app or DNS request follows the same route.

Results may be affected by cached pages, existing persistent connections, or browser-specific DNS settings. After changing modes, open a new test window or restart the browser and try the same target again. Avoid changing servers, DNS, and TUN settings all at once during testing; even if things start working, you will not know which change made the difference.

Connected but Websites Won't Load: Check Each Layer

If the browser says the local proxy refused the connection, return to v2rayN and check that the core is still running and that the system proxy points to the actual listening port. If even a normally accessible direct-connection page will not load, clear the system proxy or stop the VPN first and check the device's underlying network. Changing routes will not fix a basic network outage.

If the logs show that a request reached the core but timed out while connecting remotely, try another server known to work and compare. For certificate or handshake errors, check the system time and subscription settings; do not simply disable certificate verification. If only domain access fails while the basic connection works, check DNS next. Details on dns, domainStrategy, and routing matches are in the DNS configuration manual; you do not need to enter these fields manually for this guide.

After Verification: Everyday Use

Your basic setup is working when the expected target loads, the logs show no recurring errors, and traffic follows the route you selected. Restore your usual mode if you temporarily switched to global routing, keep one verified server entry, and adjust split routing one setting at a time. When a subscription expires or the provider changes its settings, update it from Subscription Group instead of deleting and rebuilding the entire client config.

When you are done, v2rayN can select Clear system proxy before you exit. If another tool managed the proxy before, restore those settings rather than overwriting them. In v2rayNG, tap Stop and make sure the VPN icon disappears. Reopen a regular page to confirm your connection is back to normal. Next time, follow this order: choose a server → enable the connection mode → verify your target.

For the full config structure, see the JSON configuration manual. To choose between desktop and Android clients, read the client selection guide. If the basic connection is not working yet, review the four steps on this page before adding advanced settings.

Download v2rayN