Available on Windows / macOS / Android / Linux

V2Ray Setup Tutorials
How to download and configure v2rayN

From choosing a client to verifying a connection, this guide covers subscription imports, routing, and Troubleshooting, while explaining how v2rayN, v2rayNG, Xray, and V2Fly relate in practice.

Common server regions United States Japan Hong Kong Singapore South Korea

Core settings

From system proxy settings to routing rules, with each option mapped to the client interface

Configuration problems are rarely caused by a single switch. First confirm that the client, core, and subscription are working, then check the system proxy, routing, and DNS. This is clearer than repeatedly switching nodes.

Connection entry point

System proxy mode
Controls which apps connect

A node shown as available in v2rayN does not mean that browser traffic is being handled by the client. System proxy mode directs apps that follow the operating system proxy settings to the local inbound port. For everyday use, start with automatic system proxy configuration, then fully close and reopen the browser so old connections do not keep using the previous route. If only certain programs fail to connect, check whether they use their own proxy or bypass system settings instead of changing node parameters immediately.

This layer answers whether an app has entered the client; it is separate from the protocol, server region, and reachability of the remote service. Verifying the entry point separately from the node issue avoids repeatedly importing subscriptions or changing transport parameters.

System proxy
Configure system proxy automatically
Keep existing system proxy
Bypass local network addresses
Re-establish app connections after changes

Client downloads

Choose a client for your operating system

v2rayN is the main desktop entry point, while Android users can choose between v2rayNG and v2flyNG. The download page lists files for different processor architectures and distributions.

Windows

Use the v2rayN desktop edition or the classic WPF edition. It suits desktop environments that need tray controls, system proxy switching, subscription groups, and full routing configuration.

Go to downloads

macOS

Use the cross-platform v2rayN desktop interface. Choose the build for your device’s processor when downloading, then authorize the system proxy and import your subscription after installation.

Go to downloads

Android

v2rayNG with the Xray core is the preferred choice; v2flyNG is another option depending on your subscription and core preference. Most modern devices use the arm64 architecture.

Go to downloads

Linux

v2rayN provides desktop installation options for Debian-, Ubuntu-, and Fedora-based distributions, with separate builds for x64 and arm64 processors.

Go to downloads

Getting started

Complete the basic setup in three steps: import, select, verify

Do not adjust every advanced option during the initial setup. Establish a minimal working connection first, then add routing and DNS rules as needed by your applications.

  1. STEP 01

    Import a subscription or share link

    Desktop clients can import a subscription URL or single-node share link from the clipboard, and Android clients provide the corresponding entry point. After importing a subscription, run an update and confirm that the server list appears. If it is empty, first check for extra spaces in the copied content, confirm that the URL is complete, and verify the device time. Do not change routing rules before receiving a node list; the problem is still in the subscription retrieval stage.

  2. STEP 02

    Select a node and enable the proxy

    Choose an active node from a subscription group, then start the client core. Windows, macOS, and Linux desktop clients also require a system proxy mode; Android requires confirmation of system connection authorization. Selecting a node only puts the configuration into a ready state. A complete connection requires the core to start successfully and handle app traffic. Keep the default routing during the first test to avoid advanced rules affecting verification.

  3. STEP 03

    Check logs and real-world access

    After connecting, test access in a new browser window, then check the client logs for DNS resolution, TLS handshake, or connection timeout messages. A latency test only describes the response to a probe; it cannot replace a full webpage visit. If the browser is still using an old connection, fully exit and reopen it. If every node fails, check system proxy settings, DNS, the local network, subscription validity, and remote status in that order.

Open-source ecosystem

How Project V, V2Fly, Xray, and graphical clients fit together

Similar names do not imply the same role. Understanding the three layers—ecosystem, core, and client—helps identify whether a setting belongs to interface operations, configuration format, or protocol implementation.

Project V is the starting point of the technical ecosystem

Project V established an open-source technology ecosystem around proxy protocols, transport methods, routing, and configuration structures. Terms such as VMess, VLESS, WebSocket, gRPC, TLS, REALITY, and routing belong to different layers: some handle identity and data transfer, some carry the connection, and others determine where traffic ultimately goes. The client interface organizes these fields into forms, but the underlying data is still converted into configuration that the core can read.

So-called “V2Ray configuration” is not a single switch; it is the combined result of inbound, outbound, transport, security, DNS, and routing settings. Most users receive complete parameters through a subscription and only need to handle client import and the system proxy. When maintaining rules manually, learning each section’s role step by step makes errors easier to find than copying a large configuration wholesale.

V2Fly and Xray are different core families

V2Fly continues the community-maintained path for technology related to Project V, retaining familiar configuration structures and protocol capabilities. Xray developed within a similar configuration system and covers common combinations involving VLESS and REALITY. Both are running cores: they read configuration, listen for local inbound traffic, resolve domains, match routing rules, and establish outbound connections. A core is not the same thing as a desktop window or mobile interface.

Choose a core based on the node’s requirements, client support, and configuration fields. If import succeeds but startup fails, first check the logs for unsupported fields or format errors. If the core starts but access fails, check the network, DNS, certificate name, and remote response. Separating “can the configuration be parsed?” from “can a connection be established?” is key to handling complex failures.

Graphical clients handle system integration and daily management

v2rayN targets Windows, macOS, and Linux desktops, handling subscription updates, node selection, system proxy settings, routing rule editing, core switching, and log viewing. v2rayNG targets Android and typically works with the Xray core; v2flyNG also targets Android and follows the V2Fly core path. All three clients are maintained through open-source collaboration, but their release cadence, interface structure, and supported fields are not identical.

Client upgrades may change the interface, update the running core, or affect configuration compatibility. Before updating, note the active subscription group, system proxy mode, and custom routing. Afterward, verify a minimal connection before restoring advanced settings. If an old configuration no longer works directly, adjust it using the logs and current field documentation instead of overwriting configuration directories between different clients.

Open-source licensing enables reviewable maintenance

Open-source licenses define the boundaries for using, modifying, and distributing code, while allowing protocol implementations, configuration handling, and fixes to be reviewed by the community. For ordinary users, the practical value is that documentation, issue records, and version changes can form traceable technical resources. Licensing does not replace correct configuration or guarantee that every third-party subscription source is reliable; clients, cores, and node services should still be assessed separately.

These tutorials are based on public configuration semantics and the clients’ actual interfaces, focusing on what each option does, how options depend on one another, and the recommended troubleshooting order. For subscriptions, they explain only importing and management; for protocols, they cover only fields and connection mechanisms. This layered approach keeps client, core, and remote-service issues from being folded into one conclusion.

Featured FAQs

First identify the layer where the problem occurs

Subscriptions, nodes, system proxy settings, DNS, and routing affect the connection in sequence. Identifying the stage from the symptoms is more effective than repeatedly deleting and reinstalling the client.

Why is the list still empty after a successful subscription update?

First confirm that the subscription returns a node format supported by the client, then check group filters, device time, and the update log. If you copied a single share link, use the clipboard node-import entry rather than the subscription update entry.

View subscription and node terminology →

Why can’t the browser open webpages when the latency test is normal?

A probe response and full access are different processes. Check whether the system proxy is enabled, whether the browser is reusing an old connection, whether DNS returns a usable result, and whether routing sends the target domain to the expected outbound.

View internet access troubleshooting →

What are VLESS, VMess, and REALITY?

VLESS and VMess are protocol types used between the client and server, while REALITY is a connection security and handshake approach. They cannot be swapped directly; preserve all protocol, transport, and security fields supplied with the node during import.

View protocol terminology →

What should I do if only some websites fail after changing routing?

Temporarily switch back to a simpler default ruleset and confirm that basic connectivity returns, then add domain and IP conditions one at a time. Check rule order and scope, and whether a service’s main domain, API domain, and static-resource domain are being sent through different outbounds.

View DNS and routing troubleshooting →

Technical notes

Configuration structure, certificate errors, and share links

The latest articles explain the configuration logic behind the client interface and are suited for reading after a basic connection is working.

Advanced

V2Ray configuration files explained section by section: what inbounds, outbounds, and routing each control

Breaks down a minimal working V2Ray JSON configuration, explaining the roles of the inbound, outbound, and routing sections and how they correspond to v2rayN graphical settings.

Read the full article →
Troubleshooting

TLS handshake failures and certificate errors: three key checks for system time, SNI, and allowInsecure

Explains the troubleshooting order for system time, SNI, certificate chains, and client logs, including the practical risks of relaxing certificate checks.

Read the full article →
Getting Started

How to use vmess:// and vless:// share links—and how they differ from subscription URLs

Explains the structural differences between single-node share links and updateable subscription lists, with the corresponding import entry points in v2rayN and v2rayNG.

Read the full article →