Client Downloads and Configuration Knowledge Base

Official V2Ray Downloads & Guides

A focused collection of clients for four platforms, subscription import steps, and routing and DNS configuration. Pages follow the order of real-world tasks, making them useful for first-time installs, configuration migrations, and connection troubleshooting.

Free forever Open source English documentation Graphical clients
PLATFORMSWindows · macOS · Android · Linux
CLIENTSv2rayN · v2rayNG · v2flyNG
CORESXray · V2Fly
TOPICSSubscriptions · Routing · DNS
Choose by Operating System

Client Downloads for Four Platforms

v2rayN is the primary choice for desktop platforms, while Android users can choose between v2rayNG and v2flyNG. The package pages further separate processor architectures and package formats; this section simply maps each operating system to the right entry point.

Windows

Designed for standard desktop environments. v2rayN offers a desktop edition and the classic WPF edition, so choose based on your interface preferences and existing workflow.

Go to Downloads

macOS

v2rayN provides installers for Apple Silicon and Intel. Check your chip type in system information before downloading to avoid choosing the wrong architecture.

Go to Downloads

Android

Most modern devices use the arm64 architecture. v2rayNG uses the Xray core, while v2flyNG uses the V2Fly core; choose according to your configuration source and core requirements.

Go to Downloads

Linux

v2rayN provides deb and rpm packages for x64 and arm64. Confirm your distribution’s package system first, then choose the matching processor build.

Go to Downloads
View All Clients
Configuration Priorities

Three Core Settings, from Subscriptions to Routing

Installing the client is only the starting point. Everyday results are more often affected by whether subscriptions update correctly, whether routing rules match as intended, and whether DNS resolution aligns with the routing strategy.

Subscription Management

Subscription Update Settings

A subscription URL provides the client with a set of server configurations. After importing it, run one manual update first to confirm that the client can read the content before enabling updates on startup. If an update fails, check that the URL is complete, that no spaces were introduced while copying, that the system time is accurate, and that the current network can reach the subscription address. Avoid repeatedly deleting every configuration: error messages and update timestamps are important troubleshooting clues. After a successful update, verify that new entries appear in the correct subscription group so old configurations are not mistaken for the latest results.

View the Subscription Import Steps →
Subscription Settingssubscription
Update subscriptions on startup
Skip unavailable groups during updatesOff
Subscription groupsSave by source
Quick Start

Complete the Basic Connection in Three Steps

Confirm the configuration source first, choose how to run it next, and then verify the result through real requests and client logs. This order separates installation, configuration, and system proxy issues.

  1. 01

    Import a Subscription or Single Configuration

    Add the complete URL in the client’s subscription manager, save it, and run one manual update. For a single share link, import it from the clipboard and confirm that the protocol, address, port, and other fields were recognized. Importing a configuration does not enable the connection; you still need to select the specific profile.

  2. 02

    Choose a Profile and System Proxy Mode

    Select the profile you want from the list, start the core, and then enable the system proxy if needed. Rule mode chooses an outbound according to routing conditions, while global mode generally sends a broader range of connections through the proxy. For a first run, keep the default routing and add custom rules only after the basic connection works.

  3. 03

    Verify the Connection and Local Port

    Check the client status, core logs, and local listening port before opening the target page in a browser. If only some applications fail to connect, confirm whether they follow the system proxy. If the core cannot start, check for port conflicts and malformed configuration fields first.

View the Complete Guide
Ecosystem and Cores

How Project V, V2Fly, and Xray Relate

V2Ray is commonly used as an umbrella term for protocol, transport, routing, and proxy capabilities. Project V established many of the early core concepts and configuration structures, after which community maintenance led to different core families. V2Fly continues the v2ray-core line, while Xray extends protocol and transport capabilities while retaining compatibility with established configuration approaches. Graphical clients sit outside the cores and provide interfaces for configuration management, subscription updates, system proxy switching, and log viewing.

CORE 01

The Core Handles Connections and Rules

The core reads configuration files, establishes inbound and outbound connections, and applies DNS, routing, transport, and policy settings. Protocol parameters for VMess, VLESS, Trojan, and others are ultimately parsed by the core. A configuration’s usability depends not only on whether an entry appears in the client, but also on whether the selected core recognizes its fields and whether transport and security parameters are compatible as a set.

CLIENT 02

The Client Handles Everyday Configuration

v2rayN targets Windows, macOS, and Linux desktops, offering subscription groups, routing, system proxy controls, and multi-core management. v2rayNG targets Android and is commonly used with the Xray core; v2flyNG also targets Android, with its built-in V2Fly core as an alternative. All three are open-source clients, but their feature sets and core choices are not identical.

LICENSE 03

Open-Source Licenses Govern How Code Is Used

Open source means that source code can be reviewed, studied, and modified under the applicable license; it does not mean that every client, core, and third-party configuration uses the same license. For a specific component, distinguish between graphical client code, core code, rule data, and release files, since each may have different copyright notices and redistribution terms. Most users should focus on maintenance status, compatibility, and configuration migration notes.

UPDATE 04

Updates Cover Clients, Cores, and Rule Data

Client updates mainly change the interface, configuration management, and system integration. Core updates may affect protocol support, field parsing, and runtime behavior. Updates to geosite, geoip, and other rule data affect classification matches. These three categories should not be treated as the same thing. When behavior changes after an update, record which layer changed and check whether the original configuration contains adjusted or deprecated fields.

Common Questions

Identify the Layer Where the Problem Occurs

Most issues can be separated into five layers: subscriptions, the core, the system proxy, DNS, and routing. The entries below cover the most common starting points from the homepage; see the glossary and configuration reference for detailed fields.

What should I check first when a subscription update fails?

Confirm that the URL is complete at both ends and contains no spaces, then review the error reported by the client. If the subscription address is unreachable, changing routes or importing it again usually will not fix the root cause.

View Subscription Terminology →

Why do some apps connect directly after I enable the system proxy?

Some applications do not read system proxy settings, while others may use a separate proxy or a direct network stack. Confirm how the application behaves, then check the client’s local listening port.

View the Connection Verification Steps →

What is the difference between rule mode and global mode?

Rule mode selects an outbound according to conditions such as domain, IP, and port. Global mode generally sends a broader range of connections through one outbound. During troubleshooting, briefly compare both modes to determine whether routing rules are responsible.

View Routing and Split-Tunneling Terms →

Why restart the core after changing DNS?

A running core has already loaded the current configuration, and saving the file does not necessarily rebuild its DNS components. Restarting lets new servers, domain conditions, and query order take effect completely.

View DNS Configuration Fields →
Guide Updates

Recent Configuration and Troubleshooting Articles

The articles focus on specific symptoms and configuration fields. Each one covers a clearly defined topic, making it easier to search by a client message, system behavior, or configuration section name.

View All Articles