First-time setup · 4 steps

v2rayN Setup Guide
Import a Subscription and Verify Your Connection

Follow this order: import a subscription → choose a proxy mode → connect → verify. First establish a working connection, then adjust routing and other advanced settings.

Before You Begin: Client and Subscription URL

Start by choosing an installer for your device on the client downloads page, then install or extract it. If you download a desktop archive, extract it fully to a folder you can read and write to before launching the program. Don’t run it from the archive preview. The client stores subscriptions, settings, and logs locally, so keeping it in a temporary extraction folder may make your configuration hard to find later.

After opening the client, get a valid subscription URL. The client reads configuration and routes traffic; installing it does not provide servers to connect to. Your service provider supplies the subscription URL, which usually retrieves multiple server configurations at once. A single share link contains just one configuration. Check which type you have before choosing an import option.

Subscription URLs may contain access tokens, and share links may include connection credentials. Copy the complete value, but don’t expose it in public screenshots, chat logs, or support requests. If you’re copying it from your service dashboard, use the provided copy button to avoid including instructions, quotation marks, or line breaks. Make sure you can access ordinary websites before importing.

Step 1: Import a Subscription and Update the List

v2rayN: Add a Subscription Group

Open the “Subscription Group” menu in the main window, go to Subscription Group Settings, and choose Add. Enter a recognizable name in the remarks or group name field, such as “Everyday use,” then paste the complete subscription URL into the address field. Leave the other options at their defaults for now, save, and return to the main window. This name is only a local label; it does not change the servers in the subscription.

After saving the URL, update the subscription. Open the “Subscription Group” menu again and choose the command to update the current group. If your version only offers “Update all subscriptions,” you can use that when there is just one subscription. Some versions offer separate commands for direct updates and updates through a proxy. If you haven’t established a working connection yet, try a direct update first; don’t rely on a proxy entry you haven’t configured.

When the update finishes, switch to the group you just added and check the server list in the middle of the window. You should see entries with details such as type, alias, address, and port. This only confirms that the subscription was read; it doesn’t mean every server will connect. If the list is still empty, switch to “All” to rule out a group filter, then check the update result in the logs. Avoid adding the same URL repeatedly, which can create duplicate groups.

v2rayNG: Save the URL and Update the Subscription

Open “Subscription Group Settings” from the menu in the top-right corner of the main screen. Tap Add, enter a remark and subscription URL, and save. Return to the main screen and choose “Update current group subscription” from the menu. If you’re viewing a different group, switch to the one you just created first. After a successful update, the main list will show the servers in the subscription. Tapping an entry selects it but does not connect.

If you have a single share link, don’t enter it in the subscription URL field. In v2rayN, use “Import share links from clipboard” in the main window; you can usually also import with Ctrl+V. In v2rayNG, choose “Import from clipboard” from the Add menu. A link imported this way won’t become a subscription that updates automatically; reimport it or edit it manually when it changes.

Once configurations appear in the list, you can choose a proxy entry and routing mode. There’s no need to edit protocol parameters or change the ports, transport protocols, or TLS settings generated by the subscription.

Step 2: Choose a Proxy Entry and Routing Mode

First, distinguish two settings that are easy to confuse: the system proxy determines how apps send requests to the client; routing determines where those requests go after they enter the client. Choosing Global routing does not automatically send traffic from every app through the proxy. Enabling the system proxy does not mean every request will be routed to a remote server. For initial setup, establish one clear traffic path to make troubleshooting easier.

v2rayN: Set the System Proxy to Auto-Configure

Find the system proxy option at the bottom of the window or in the taskbar tray icon’s right-click menu, then choose “Set system proxy automatically.” This points the system proxy settings to the client’s local listening port. Browsers and apps that follow the system proxy settings can then send requests to the client. Some apps use their own network settings and may not follow the system proxy, so start by testing with a browser.

“Clear system proxy” removes the system proxy settings and is useful when you’re done or want to restore a direct connection. “Do not change system proxy” means the client leaves the existing value alone; it does not automatically restore a direct connection. If a proxy was already enabled, selecting “Do not change system proxy” may leave it in place. For your first setup, choose “Set system proxy automatically” rather than switching among the three options.

Next, open the routing presets and choose “Bypass mainland China.” This preset usually uses domain and IP rules to send matching requests directly and route the rest through the proxy; actual routing depends on the rules and data files loaded by the client. The “Global” preset generally sends requests not handled by higher-priority rules through the proxy outbound, which can be useful for troubleshooting. Preset names don’t define the actual rules or make an unavailable server connect.

For initial setup, leave “Enable TUN mode” off and don’t enable “Allow connections from the LAN.” Neither is needed to test with a browser. TUN involves a virtual network interface, permissions, and taking over routing; LAN listening expands who can access the local proxy. Once the basic connection is stable, if you need to route traffic from more apps, read the TUN and routing guide in Advanced Usage.

v2rayNG: Keep the Default Routing and App Scope

On Android, app traffic usually enters through the system VPN interface, so there’s no need to look for the desktop “Set system proxy automatically” option. Check the routing settings and keep the defaults to start. If your version offers options to bypass LAN or mainland China addresses, choose them based on your needs before connecting. Don’t change DNS, per-app proxy settings, and custom routing all at once.

If you’ve configured per-app proxying before, make sure the browser you’re using for verification is included. Otherwise, the client may show as connected while the browser still connects directly. For your first setup, keep the default app scope and narrow it only after verification succeeds. With the proxy entry and routing set, you can now choose a server and start the core.

Step 3: Select a Server and Connect

v2rayN: Set a Server as Active

Choose a configuration in the server list, right-click it, and select “Set as active server.” Clicking a row may only select it for editing or testing; it doesn’t necessarily change the server currently in use. After setting it, check the active indicator in the list or the current server shown at the bottom of the window to confirm the target is active.

v2rayN usually loads the core when you set an active server or change a configuration. If the interface prompts you to reload, use the “Reload” menu command, then check the logs. The log panel may be at the bottom of the window or available from a menu, depending on the desktop version. Look for startup failures, port conflicts, and configuration parsing errors; the program icon being visible doesn’t prove the connection is working.

Check the system proxy and routing status again to confirm they still match your selections. The default local port can be a useful reference, but rely on the current settings and status bar rather than replacing your existing port because a guide mentions a default. If the logs report that a port is in use, first close any duplicate client instances. If the conflict persists, check the listening port in Settings.

v2rayNG: Connect and Approve the System Prompt

Tap the server you want to use in the main list and confirm that its selection indicator is shown, then tap Connect on the main screen. The first time you connect, Android will show a VPN connection request. Allow it after confirming the request came from the client you opened. If you deny permission, the client can’t route app traffic through this interface.

Once connecting starts, the button, status text, or system status bar will usually change. These indicators can confirm that the service is running, but they don’t prove that the remote server is reachable. If another app is using the same system VPN interface, disconnect it first, then connect from the client. Switching between services may cause Android to stop the previous connection.

You can start with the client’s connection test to check for clear errors, then verify in a browser. A TCPing result in the list only reflects partial connectivity to the target port; it doesn’t replace an actual proxy request. A download speed test isn’t necessary for the first connection either. If something fails, keep the current settings and note the error type. Don’t change the server, routing, and DNS all at once, or it will be hard to tell what helped.

Step 4: Verify Websites and Outbound Routing

Open a new browser tab and visit a site you know is normally accessible to confirm your basic connection is working. Then visit a site that should use the proxy under your current rules and check that new content loads. Make fresh requests instead of relying on a previously cached page. If both sites load, you can move on to checking traffic routing, but this alone doesn’t prove that routing matches your expectations.

Return to the client and check the logs or connection records for the time you visited the sites. If the current log level records connections, check whether the target domain and outbound match your expectations. For example, routing rules commonly use direct for direct outbound and proxy for proxy outbound; the labels depend on your configuration. If the logs don’t show every request, the absence of an individual entry doesn’t mean the request failed to reach the client.

Don’t rely on a changed exit IP as your only test. With “Bypass mainland China” enabled, the site you use to check your IP may be routed directly, so seeing your regular network address doesn’t necessarily mean the connection failed. A better approach is to compare the destination, current routing mode, and connection records. To find out why a domain matches a particular rule, see Advanced Routing Rules and DNS Configuration; there’s no need to change the entire routing setup during initial connection.

If It Fails, Check the Proxy Entry, Server, and Routing

If the client’s test succeeds but the browser can’t access websites, first check how traffic enters the client. On desktop, confirm that “Set system proxy automatically” is still active and check whether the browser has its own proxy settings. On Android, confirm the system VPN is still connected and that per-app rules haven’t excluded the browser. Don’t change the protocol first; the request may not have reached the core at all.

If the browser request reaches the client but the logs keep showing connection timeouts, try another configuration in the same subscription and retry the same destination. If only one server fails, check whether it’s still available. If several fail, check the subscription status, basic network connection, and system time. For TLS or certificate errors, first make sure the device’s date and time are correct; don’t disable verification.

If some sites work and others don’t, check whether the routing matches the destination. You can temporarily switch to “Global” for comparison: if the same destination works in Global but fails with the original preset, investigate the matched rule or direct route rather than assuming the entire subscription is invalid. Restore the original preset when you’re done so temporary troubleshooting settings don’t become permanent. For more error symptoms and troubleshooting steps, see Frequently Asked Questions.

When You’re Done: Restore the Proxy Entry Before Exiting

When you’re done on desktop, choose “Clear system proxy” before exiting the client. Closing the main window may only minimize it to the tray, leaving the process running. Conversely, if the process exits while the system proxy still points to a local port, your browser may lose network access. If that happens, reopen the client and clear the proxy, or check your system network settings and disable any manual proxy you no longer use.

On Android, tap the connection button to disconnect, then confirm the system connection has ended before leaving the client. Once verification succeeds, keep the basic settings that work. When you update a subscription, switch servers, or adjust routing later, change one category of settings at a time and repeat the same checks. That makes it easier to return to your last working setup if something goes wrong.

First confirm that traffic reaches the client, then check the active server and routing outbound.