Download · Configure · Route · Troubleshoot

V2Ray Setup Guide

Starting with client installation, the guide covers subscription imports, traffic routing, and troubleshooting across common desktop and Android workflows.

Chinese documentation Open-source code Xray · V2Fly Graphical clients
connection path

The configuration path from subscription entry to outbound verification

Client configuration is not a collection of isolated switches. A subscription supplies node details, routing determines where traffic goes, and the system proxy or TUN mode takes over application requests. Logs and connectivity tests then confirm whether each part of the path is working as expected.

subscribe / input

Importing, updating, and verifying subscription nodes

A subscription link is the entry point for retrieving node configuration. On desktop, add the URL under subscription groups and then run an update. On Android, import from the clipboard or scan a QR code from a trusted source. A completed import does not prove that the connection works: first check whether the node list appears, names display correctly, and the group matches the expected source. If the list is empty, verify that the URL is complete, the network request succeeded, and the client log shows a valid response before repeatedly changing the system proxy.

When a subscription is updated, the client reads the remote content again and may replace older nodes in the same group. Keep long-term manual configurations in a separate group so they are not mixed with subscription updates. Once the nodes appear, run a connection test to distinguish a successful subscription fetch from a reachable individual node. This order narrows the issue to input, parsing, or connection, instead of encouraging aimless changes to DNS, ports, and routing rules.

platform entry

Download entry points for Windows, macOS, Android, and Linux

Use v2rayN across desktop platforms. On Android, choose between v2rayNG and v2flyNG according to your core requirements. Platform links jump to the matching tab on the download page, where package types, system requirements, and architecture options are explained together.

desktop / windows

Windows · v2rayN

Windows users can choose between the newer desktop interface and the classic WPF interface. After installation, import a subscription and select a node before configuring the system proxy. If startup reports that a local port is already in use, identify the process holding it or change the listening port, then update the proxy settings accordingly. The download page also explains the differences between the two interfaces to help you choose for your current system.

Go to downloads
desktop / macos

macOS · v2rayN

Before downloading for macOS, confirm the processor architecture: Apple Silicon and Intel use different installers. The first launch may also require system security approval and network access permission. Grant access in System Settings, then return to the client and import the subscription. After connecting, check the menu bar status and system proxy before testing applications, so permission issues are not mistaken for node failures.

Go to downloads
mobile / android

Android · v2rayNG / v2flyNG

The main Android option is v2rayNG with the Xray core; choose v2flyNG when you prefer the V2Fly core. Most newer devices use the arm64 architecture. If you are unsure, check the universal installer on the download page. After importing a subscription, select a node and start the system network connection. Then check connection status, per-app settings, and battery background restrictions to prevent the system from stopping the client after the screen locks.

Go to downloads
desktop / linux

Linux · v2rayN

For Linux desktops, choose a deb or rpm package for your distribution and confirm whether the system uses x64 or arm64. After installation, manage subscriptions, nodes, and routing rules through the graphical interface. If the system proxy does not affect the target application, check the desktop environment’s proxy settings and whether the application maintains its own network configuration. For broader traffic capture, evaluate TUN permissions and virtual adapter status.

Go to downloads
open ecosystem

How Project V, V2Fly, and Xray cores relate

Understanding the roles of clients, cores, and protocols helps identify which layer contains a configuration issue and prevents graphical interface names, subscription formats, and transport protocols from being conflated.

project / lineage

From the V2Ray project to the core family

V2Ray grew from the Project V ecosystem, whose central idea was to separate inbound, routing, outbound, and underlying transport into composable configuration modules. As community maintenance evolved, V2Fly continued the v2ray-core lineage, while Xray developed a separate core branch around similar configuration concepts. Both can handle multiple proxy protocols and transport methods, but their fields, feature support, and defaults may differ. Before importing a configuration, confirm which core the client uses and whether the subscription contains parameters that core can recognize.

Graphical clients sit above the core and handle subscription management, node selection, the system proxy, log viewing, and update settings. v2rayN targets desktop platforms and can call the relevant core through the options provided by the software. v2rayNG primarily uses the Xray core, while v2flyNG follows the V2Fly core line. A client name is not a protocol name, and choosing a client does not mean every node uses the same protocol. The actual path depends on the node configuration, transport layer, TLS settings, routing rules, and the client’s capture method.

license

Open-source licensing and code boundaries

The V2Fly core, Xray core, and the three graphical clients maintain their own code and license files. Core projects and clients may use different open-source licenses, and release packages may include their own dependencies. For licensing details, rely on the notices included with the corresponding software release rather than treating the entire ecosystem as one project. Open code and configuration formats make it easier for the community to review implementations, discuss compatibility, and fix issues over time.

maintenance

Update the client and core independently

Graphical interfaces and network cores follow different release cycles. Client updates may change subscription management, interaction, or system integration, while core updates focus more on protocol implementation, transport capabilities, routing, and network behavior. When an issue appears after an upgrade, first determine whether the change came from the client or the core, then consult the logs and configuration migration notes. The download page provides current installation entry points; the homepage does not display release information that may change quickly.

configuration

Protocol, transport, and routing layers

VMess, VLESS, and Trojan describe protocol-layer configuration. WebSocket and gRPC are transport methods. TLS and REALITY cover connection authentication and secure transport. Routing rules determine which outbound handles a request. Check each layer in order: do not change protocol parameters merely because domain resolution failed, and do not repeatedly adjust remote nodes when the application has not entered the local proxy.

v2rayN

Desktop graphical clients

For Windows, macOS, and Linux, manage subscriptions, nodes, routing, the system proxy, and TUN settings in one place. Suitable for users who need to inspect logs, maintain multiple subscription groups, and fine-tune traffic capture on a desktop.

v2rayNG

Android · Xray line

Designed around mobile workflows, with subscription import, node selection, per-app proxying, routing, and system network connection management. When connections drop in the background, also check the device’s battery policy and background-running permissions.

v2flyNG

Android · V2Fly line

For mobile configurations that require the V2Fly core, providing an alternative core choice on Android. Before importing, verify the subscription parameters against the core’s supported range so core differences are not mistaken for an invalid subscription URL.

latest notes

Advanced configuration and troubleshooting articles

These articles focus on specific symptoms and configuration steps, explaining the underlying concepts, procedures, result checks, and rollback methods. Complete the basic installation and subscription import first, then choose the topic that matches the issue at hand.

How to enable TUN mode: virtual network adapter traffic capture and configuration steps

Learn the fundamental difference between TUN mode and the system proxy, how virtual network adapters, routing tables, DNS, and application traffic interact, and how to enable TUN in v2rayN and v2rayNG. The article also covers checks for insufficient permissions, an unrecovered network connection, and conflicts with other virtual adapters.

Read the full article

What to do when a port is in use: identify the process and change V2Ray’s local listening port

When the client reports a port conflict at startup, first identify the listening port and the process using it, then decide whether to stop the old process or change the configuration. The article explains diagnostic approaches for common desktop systems and why system and application proxy settings must be updated after changing the port.

Read the full article

DNS leak detection and repair: keep domain resolution and traffic on the same path

Starting with the domain-resolution path, this article explains why resolution requests can still use another network interface even after the client connects. It covers detection methods, DNS settings to check in v2rayN and v2rayNG, and before-and-after request paths for confirming that the fix works.

Read the full article
Download client