About 10 minutes · First-time setup

v2rayN Setup Guide: From Subscription Import to Connection Verification

This guide follows the practical setup order: add the subscription to the client, choose a proxy mode, select a server and connect, then verify the result in a browser and the target application. Each step explains where to click, what changes indicate success, and what to check first when something goes wrong.

Before you begin

Prepare the client and subscription URL

Before starting, install the client and obtain the subscription URL provided by your service provider. It is usually a link beginning with a network protocol that lets the client retrieve server entries and connection parameters. It is not a single server, and its contents do not need to be entered manually.

A

Confirm that the client is running

After starting the desktop client, check whether the v2rayN icon appears in the taskbar notification area. If it remains after the main window closes, the client has usually been minimized to the background. After opening v2rayNG on Android, you should see the server list and a connection button at the lower right. If the system asks for network connection permission on first launch, approve it as prompted; otherwise the client cannot establish its local proxy channel.

B

Copy the complete subscription URL

Copy the subscription URL from your provider's management page; do not copy only the portion visible on screen. Extra spaces, line breaks inserted by chat apps, and an expired URL can all cause updates to fail. Because the URL contains access credentials, do not paste it on public pages, include it in screenshots, or forward it to unrelated people.

C

Start with basic mode verification

The goal of a first setup is to confirm that the subscription and servers work normally, not to tune complex routing immediately. Keep the client's default port and rules at first, and complete one browser access test. Once connected, read the routing section in the configuration reference and add split-routing rules gradually.

Contents

Complete the four steps in order

The steps depend on one another. Until the subscription updates successfully, there will be no server entries to choose from; until a server is active, enabling a proxy mode alone provides no outbound connection to forward traffic. Start with step one and confirm each state change instead of skipping ahead.

Step one

Import a V2Ray subscription link

Open the main window in v2rayN, find “Subscription Groups” or a similarly named menu item, open the group settings, and choose Add. Use a recognizable service name for the group; paste the complete subscription link into the URL field. Leave other options at their defaults for now, make sure the URL was not truncated, and save. Saving creates a local subscription record only; you must also run an update before the client reads the server configuration from the URL.

Return to the main interface, open the subscription menu, and choose Update current group or Update all subscriptions. The status bar or log area usually shows the result. When successful, several entries appear in the server list with protocol details, address aliases, or notes from the provider. The number of entries depends on the subscription and does not by itself indicate quality. For now, confirm that the list is no longer empty and that there are no obvious parsing errors.

On Android in v2rayNG, open “Subscription Group Settings” from the side menu, tap Add, enter a name, paste the URL, and save. Return to the server list and choose “Update subscriptions” from the menu. When the update finishes, the server entries appear in the list. Existing manually added configurations may remain alongside the new entries; use the group name to tell them apart rather than deleting anything.

Subscription group Saved
Automatic subscription updates
Read server entries from group settings
Update the current group
Run an update after saving the URL
Ready to run

Read the message first when an update fails

If the interface reports an invalid URL format, remove spaces before and after the URL and copy it again from the source page. If it reports a connection failure or timeout, confirm that the current network can reach the subscription source and that the system clock is accurate. If the update appears complete but the list is still empty, the subscription may have returned no valid entries, or a group filter may be hiding the new content. Do not click Update repeatedly in quick succession; it will not fix an invalid URL and can make multiple log entries harder to read.

Subscription updates can fail for many reasons, including an expired URL, an update request that requires an already established proxy, or a client port conflict. If the message is inconclusive, follow the subscription update troubleshooting steps. Once the server list appears normally, move on to choosing a proxy mode.

Step two

Choose system proxy, rule mode, or TUN mode

Once server entries appear, decide which application traffic should go through the client. Keep two concepts separate: the server determines where traffic goes, while the proxy mode determines which traffic enters the client. Selecting a server without enabling the right proxy entry point may leave the browser or other applications using the original network path.

On desktop in v2rayN, start by choosing “Set system proxy automatically” from the system proxy menu, then use rule mode for split routing. Most browsers and desktop apps that read the system network settings will follow this configuration. Rule mode uses the client's routing rules to choose how each connection is handled and suits everyday use. Global mode sends more requests through the same outbound and can help briefly determine whether a rule match is causing an access issue, but it is not recommended as a long-term way to reroute all traffic without a specific need.

TUN mode uses a virtual network interface to take over a broader range of system traffic, making it useful for programs that do not read system proxy settings. It usually requires additional system permissions and may conflict with other virtual networking tools. There is no need to enable TUN during the first setup: verify the subscription and server with the system proxy first to narrow the problem. If the browser works but a standalone program never changes, then consider switching to TUN mode.

On Android in v2rayNG, tapping Connect creates a system-level VPN channel, while routing settings determine which connections use the selected server. For the first test, keep the client's preset rules and avoid changing domain policies, app filters, and custom routes at the same time. Change one option at a time and verify the result before continuing; this makes later problems easier to trace.

Recommended first

System proxy and rule mode

Best for first testing with a browser and common desktop apps. There are fewer setup steps, and the original system settings are easier to restore when the client is closed.

Use when needed

TUN mode

Useful for applications that do not read system proxy settings. Confirm that the basic connection works first, and watch for system permission prompts before enabling it.

How to choose the right mode

If you only need to confirm that the subscription works, system proxy and rule mode are sufficient. If the browser works but a command-line tool, game launcher, or standalone app bypasses the client, first check whether that application has its own proxy settings, then decide whether TUN is necessary. To understand the relationship between domain rules, IP rules, and outbound tags, see the routing chapter in the configuration reference; this guide does not cover complex rule writing.

After setting the mode, do not test several applications at once. Keep one browser window as a consistent test target, then continue to step three to select a specific server and start the connection. This separates traffic-capture problems from server connectivity problems.

Step three

Choose a server and establish a connection

Return to the server list and select a subscription entry. In desktop v2rayN, double-click the target entry or use its context menu to set it as the active server. The selected entry is usually marked by a color, check mark, or status-bar text. Then confirm that the client core is running and that the system proxy status matches the choice made in step two. Clicking a row once does not always switch the active server, so rely on the current server name shown in the status area.

On Android in v2rayNG, tap a server entry to make it the current configuration, then tap the connection button on the main screen. The first time the system creates the channel, it displays a connection permission prompt; after approval, the button and status area change. A system network-channel indicator usually also appears in the top status bar. If the client immediately returns to a disconnected state, open the client log and read the final lines instead of switching servers repeatedly.

When the server list is long, use the client's testing feature to filter out entries that cannot establish a basic connection. Test results reflect network conditions at that moment, do not predict long-term performance, and cannot replace real access testing. After choosing an entry that passes the basic test, set it as the active server and inspect the connection log. Normally, the core shows the local inbound port and loaded configuration after startup. If you see timeout, rejected, or configuration parsing errors, record the key terms.

Three connection states to check

Check each item
  1. Active server is clear: The name in the status bar matches the entry you just selected.
  2. Core is running: The log does not show an immediate exit after startup or repeat the same error continuously.
  3. Proxy entry point is enabled: On desktop, the system proxy or TUN status matches step two; on Android, the connection remains active.

The connection button is on, but access still fails

A connected status only means that the local channel and client process have started; it does not guarantee that the remote server is available. First switch to another entry from the same subscription for comparison. If every entry fails at the same point, check the local clock, network connection, client permissions, and whether the subscription was just updated. If only one entry fails, the problem is more likely limited to that entry's service status or parameters.

Do not change the port, DNS, routing, and core options simultaneously while troubleshooting. Changing several variables at once makes both success and failure difficult to attribute. For clear English errors in the log, consult common V2Ray runtime log errors. For a broader fault classification, visit Troubleshooting in the help section.

Step four

Verify that the proxy is really working

After the connection is established, do not rely only on the client's button color. Verify it at three levels: local status, browser access, and the target application. First check the client: the active server name is correct, the core keeps running, and the log does not repeatedly show connection failures. Next, open a new browser window and visit the page normally used for testing. A new window reduces interference from old connections, cached data, or existing sessions.

If the target page opens normally, return to the client and check whether the log contains a corresponding new connection record. New inbound, routing, or outbound entries show that the browser request entered the client. In rule mode, some connections may be classified as direct; that is an expected routing result. The important point is that destinations requiring a proxy use the expected outbound, not that every log entry follows the same path.

After the browser test passes, open the application you actually need to use. If the browser works but the target application does not, the server path is usually available and the issue is whether the application reads the system proxy. Check its network settings for “Use system proxy” or manual proxy options. Desktop command-line programs often need proxy environment variables configured separately; browser success does not mean the terminal will follow automatically. When you need to distinguish browser and terminal checks, read the separate checklist for a system proxy that is not taking effect.

Observed result Usually means Next step
Client running, browser access works The basic subscription, server, and system proxy path is working Test the target application and adjust rules if needed
Client running, browser shows no change The system proxy is inactive, no rule matched, or the server connection failed Check the log first, then the proxy status and active server
Browser works, standalone app fails The application may not read system proxy settings Check the application's proxy settings; evaluate TUN mode if necessary
Access returns after switching servers The original entry is currently unavailable or its network path is unstable Keep the working entry and update the subscription later

Run a restoration test when finished

Once access works, disconnect deliberately and see whether the browser returns to its original network path, then reconnect once. This brief disconnect-and-reconnect test confirms that the client truly controls the system proxy and can reveal whether the desktop client restores the system proxy after exiting. When finished, keep the client status, system proxy status, and actual usage needs aligned.

If you plan to use rule mode long term, learn subscription updates, server switching, and basic routing next; there is no need to edit the underlying JSON immediately. Complex DNS settings, policy objects, and custom inbounds are better handled after the basic workflow is stable. See the V2Ray configuration file reference for the relevant structures. The first connection workflow is now complete.

Two-minute review

When the connection does not work, check in this order

Effective troubleshooting is not about toggling switches repeatedly. Identify whether the problem is with the subscription, server, client process, proxy capture, or a specific application. Follow the order below to avoid changing advanced settings before the basic connection works.

  1. Did the subscription update successfully?

    The server list should contain valid entries, and the update log should not show URL parsing or request failures.

  2. Is the active server clear?

    The current server shown in the status bar should match the selected list entry; switch to another entry for comparison if needed.

  3. Is the core still running?

    An immediate exit after startup usually leaves an error message. Read the final log lines before deciding what to change.

  4. Does the proxy mode capture the target application?

    Verify the system proxy with a browser first, then determine whether the standalone application needs its own proxy settings or TUN mode.

  5. Did you change too many settings at once?

    Revert the DNS, routing, or port changes you just made, keep the basic configuration, and test again.

After the basic workflow

Learn only what you need next

After the first setup is complete, you do not need to read every advanced option at once. Open the page that matches your current issue to reduce the chance that unrelated settings affect the working connection.