First-Time Setup · 4 Steps

v2rayN Setup Guide: Subscriptions and Connections

Import a subscription, choose a proxy mode, enable a server, then verify the result in your browser and logs. Allow about 10 minutes for your first setup and get one connection working before moving on.

Before you begin, open the installed client and have a subscription URL you’re authorized to use. If you haven’t installed it yet, visit the client download page and choose the right operating system and processor architecture. The client reads configuration and forwards connections; installing it does not provide a server. Get your subscription URL from your service provider. A website homepage or account login page is not a substitute.

For your first setup, keep the default local ports, leave DNS unchanged, and don't enable TUN yet. If you have other proxy or VPN tools on the device, disconnect them first to avoid competing changes to system settings. Look for a clear result at each step: an entry appears in the list, a mode is selected, the core starts, and a webpage loads. If a step fails, fix it there before continuing; don't change several later settings and hope one works.

Step 1: Import a Subscription and Update the List

Copy the full V2Ray subscription URL. It usually starts with https:// and may include a path and account-identifying parameters. Don't copy any surrounding instructions, line breaks, or leading or trailing spaces. Never paste the URL into a public chat or screenshot: it may let others access your server configuration, so protect it like account credentials.

Open Subscription Group Settings

In v2rayN, click Subscription Group at the top, open Subscription Group Settings, then click Add. Enter a recognizable name in Alias, such as “Everyday,” and paste the copied URL into Optional address (URL). Make sure Enable update is checked, then click OK to save. Leave the automatic update interval at its default for now and confirm that a manual update works first.

Subscription Group → Subscription Group Settings → Add → Optional address (URL) → OK

After saving, return to the main window and switch to the group you just created. An empty list at this point isn't necessarily an error: saving the group stores the URL but doesn't fetch its contents. Open Subscription Group again and select Update current subscription (without proxy). Since you don't have a working proxy yet, use this option first to avoid relying on a connection that isn't set up.

Check the Update Result Before Continuing

Wait for the update to finish. Check whether server entries appear in the list, then review the logs for the subscription update result. The aliases, protocols, addresses, and other fields come from the subscription. Entries mean the client received configuration, not that every server will connect. Before continuing, confirm you're viewing the right group, that it isn't empty, and that no filter is hiding all entries.

If the update fails, reopen group settings and check that the URL is complete and Enable update is checked. For a timeout, check whether your current network can reach the subscription service. For authentication or access errors, ask your provider whether the subscription has expired, been reset, or has access restrictions. If the logs say the format can't be recognized, make sure you have client-compatible subscription data, not a login prompt or error page returned by a website.

If the subscription service requires a proxy, try Update current subscription (through proxy) only when you already have another working connection. Don't keep switching between the two update options when the list is empty during initial setup. If you only have an individual vmess:// or vless:// share link, copy it and choose Import batch URLs from clipboard in the Server menu. This imports entries but doesn't create a subscription group that can be updated automatically.

In v2rayNG, open Subscription Group Settings from the side menu, add a name and subscription URL, and save. Return to the main screen and update the subscription from the upper-right menu. Use the “+” button on the main screen to import share links from the clipboard; don't confuse this with adding a subscription. For details on subscription formats and group management, see the subscription section of the full guide. For this step, you're done when server entries appear in the list.

Step 2: Choose a System Proxy and Routing Mode

Once entries appear in the list, decide how apps will send traffic through the client. For a first desktop setup, use the system proxy: open the System Proxy menu at the bottom of the v2rayN main window and select Set system proxy automatically. This points system proxy settings to the client's local listener. The client must be running to receive requests. The server isn't enabled yet, so don't worry if webpages don't load at this point or change other settings right away.

Main window bottom → System Proxy → Set system proxy automatically

Next, open Routing at the bottom and select Bypass mainland China for your first setup. This preset is useful for checking common split-tunneling behavior, but the exact matches depend on the current rules and rule data. To compare temporarily, switch to Global and test the same webpage, then restore the original mode. Don't treat a temporary troubleshooting setting as the right choice for every network.

Set system proxy automatically is mainly for apps that follow the system proxy. Browsers usually use it, but some extensions can override it. Games, download tools, and command-line programs may have their own network settings. For your first test, use one browser that follows the system proxy. Don't judge whether the client works by testing several apps with different behavior at once.

Use the Standard Proxy First; Leave TUN Off

TUN uses a virtual network interface to handle traffic from more apps, involving permissions, routing, and DNS. It's not a fallback switch to flip whenever a connection fails. Get the basic connection working with the standard system proxy first, then read about TUN mode configuration if you need it. Enabling both entry points makes it harder to tell where traffic is coming from during initial troubleshooting.

v2rayNG connects differently: after you start it from the main screen, it usually handles traffic through the system VPN service. You don't need to look for the desktop option to set the system proxy automatically. Approve the VPN request when prompted, then check the app's routing settings. If another VPN service is already connected on the device, disconnect it first to avoid mistaking a replaced connection for an invalid subscription.

Before moving on, make sure you can identify two things: how apps send traffic to the client, and which routing preset is selected. Learn more about system proxy, Global routing, and TUN in the proxy modes section. Leave these settings as they are for now and focus on enabling a server.

Step 3: Enable a Server and Check Startup

Return to the server list, select a subscription entry, right-click it, and choose Set as active server. Don't rely on the row's highlight color: selecting an entry only prepares it for an action; the active server is the configuration the client is using. Check the active-server indicator in the list or the current server details at the bottom to confirm the change. Some versions reload the core automatically; wait for that to finish before testing access.

Server list → Right-click an entry → Set as active server

Typically, v2rayN uses the core to handle requests continuously once an active server is set. There may not be a separate, prominent Connect button. If you can't find one, don't keep reimporting the subscription. Leave the app running and check the logs for startup failures, configuration errors, or a port already in use. The log panel and its location vary by version; look for it in the main window.

Separate Startup Errors from Network Errors

If you see a message that a local port is already in use, check whether the client is running twice or another proxy tool is using the same port. Close duplicate instances and try again; that's easier to diagnose than changing several ports at once. If you do need to change a port, review the local listener settings together in the settings dialog, then reapply the system proxy so it doesn't keep pointing to the old port.

If a configuration or protocol parameter isn't supported, update the client and subscription first, then check whether the entry requires a specific core feature. Don't remove security options, transport parameters, or server names just to make an error disappear; these fields often need to match the server. An entry appearing in the list doesn't mean the current core supports every setting it contains.

Once the core starts, check whether the server is reachable. The latency or speed tests in the server list's right-click menu can help narrow down your choices, but check what each test measures: a successful TCP connection doesn't prove the full proxy handshake works, and one timed-out test doesn't mean every webpage will fail. Choose one entry and verify it with a real connection in the next step instead of running lots of tests across the whole group.

In v2rayNG, tap an entry to make it the current configuration, then tap Connect on the main screen and approve the VPN request when prompted. Check the connection status in the app after startup. If it stops immediately, check the logs before changing routing. A VPN status on your device only confirms that local traffic capture has started; test actual access to confirm the remote server works.

Keep the client running while you test. Closing a desktop window may minimize it to the system tray or exit the app, depending on your settings; check for its tray icon. If the app exits while the system proxy remains configured, your browser may keep sending traffic to a local port with no listener. Restart the client or restore the system proxy first, then check your basic network. Don't mistake this for a server failure.

Step 4: Verify Web Access and Check the Logs

Open a browser that follows the system proxy, create a new tab, and visit an HTTPS site you can access and are authorized to use. Choose an ordinary page that will reload, rather than relying on an existing tab: it may show cached content or reuse a connection established before you changed settings. For the first test, disable extensions that set their own proxy, or switch them back to using the system proxy, to avoid conflicts.

Check the v2rayN logs while the request is in progress. If the current log level records access or connection details, look for whether the request reached the client, whether a handshake failed, and whether the outbound result matches your expectations. If the default logs don't show every request, that doesn't necessarily mean traffic isn't reaching the client. If needed, temporarily increase the log level, then restore it when you're done to avoid accumulating excessive logs.

Check Access and Routing Separately

First confirm the page loads fully, then check whether the request took the expected route. With Bypass mainland China selected, test a destination that should connect directly and one that should use the proxy. A direct connection working doesn't prove the proxy server is working. If you use an exit IP lookup service, first check which route the lookup itself takes; seeing your local exit IP may be the expected result of the routing rules.

For a clearer comparison, note the current routing mode, temporarily switch to Global, reopen the test page, then restore the original setting. This helps narrow down the issue but doesn't capture traffic from apps that ignore the system proxy. If Global works but the original preset doesn't, check routing matches and rule data. If both fail, start with the app entry point and server connection logs.

If the browser works but command-line tools don't, don't reinstall the client right away. Command-line tools may not use the desktop system proxy and may need proxy options or environment variables they support themselves. For initial setup, use browser access as your success criterion. Configure other apps after the basic connection is stable to avoid confusing app-specific behavior with a broken proxy connection.

Troubleshoot in This Order

  1. Check the entry point first. Make sure the client is still running, the system proxy is set to Set system proxy automatically, and no browser extension is overriding it. If needed, fully close and reopen the browser to establish a new connection.
  2. Check the active server next. Confirm the entry is in the current group and has been set as the active server. Check the logs for configuration errors, connection timeouts, or handshake failures; don't judge by the row highlight alone.
  3. Then test another server entry. Keep local settings unchanged, switch only the server, and retry the same page. If only some entries fail, focus on the affected server, network path, or subscription service status.
  4. Check your basic network last. Select Clear system proxy, then test an ordinary webpage with no other traffic-capture tools running. If the basic network also fails, fix that first. Re-enable the proxy once the connection is restored.

When an error appears, note its type before making one change to address it. Timeouts may involve the network path or remote response; authentication failures call for checking your subscription status; certificate errors require checking the system clock and configuration. Don't disable certificate verification to get rid of an error. Never share full logs, subscription URLs, or share links publicly. If you ask for help, redact addresses, user identifiers, destinations, and other sensitive details.

Initial setup is complete when the browser loads pages reliably, routing behaves as expected, and the logs show no persistent connection errors. Keep the settings that you've verified for everyday use. If an entry stops working after a subscription update, troubleshoot in the same order. Before exiting v2rayN, you can select Clear system proxy and confirm your regular connection works again. In v2rayNG, stop the connection in the app.