Stable packages and platform selection guide

V2Ray client download: Choose a package by platform

This page collects the current stable packages for v2rayN, v2rayNG, and v2flyNG. Confirm your operating system first, then check the processor architecture and package format. The download button is inside each client card.

GUI CLIENTS 4 PLATFORMS STABLE PACKAGES
package.index stable
01
v2rayN Windows · macOS · Linux
Desktop
02
v2rayNG Android · Xray core
Recommended
03
v2flyNG Android · v2fly core
Alternative

Selection order Operating system → Processor architecture → Package format

PLATFORM PACKAGES

Platform and client downloads

All four platforms use the same selection logic: check the operating system first, then the architecture. The primary button on each card targets the package suitable for most users; the secondary button covers another interface, architecture, or compatibility range. Version text is updated from the shared version list. If that list is temporarily unavailable, the page keeps the current stable package links.

Windows:v2rayN

The Desktop and classic WPF editions serve the same client role; their main differences are interface technology and layout.

Windows requirements and selection table

Check Recommended condition Selection guidance
Operating system Windows 10 or Windows 11 Keep the system updated to reduce compatibility issues with the runtime environment and network components.
Processor architecture x64 The Windows packages on this page target x64 desktop systems.
Interface edition Desktop or WPF New users should choose Desktop; choose WPF to retain the traditional interface.
Before installation Back up the existing configuration Before an in-place update, export subscriptions, routing rules, and custom settings so you can review differences later.

PACKAGE NOTES

Check package fields one by one

The platform, architecture, and format in a filename each answer a different question. Checking them in order helps prevent mixing up the client model, processor architecture, and installation format.

client

Client model

Use v2rayN across desktop platforms. On Android, start with v2rayNG by default; choose v2flyNG only when the configuration explicitly requires the v2fly core or the corresponding implementation. The client model determines the interface, core family, and available settings—not the file size alone.

platform

Operating system

Windows uses a ZIP package containing an EXE installer, macOS uses DMG, Android uses APK, and Linux uses deb or rpm according to the distribution. Each format follows a different system installation mechanism; changing an extension across platforms does not change the package contents.

architecture

Processor architecture

x64, arm64, Apple Silicon, and Intel describe processor or system architectures. Check macOS in About This Mac and Linux in system information. For newer mainstream Android devices, start with arm64; use the universal edition when the architecture cannot be confirmed.

channel

Stable version

The version text and button URLs are maintained from the shared version list. When version information changes, the client download entries are updated to the new stable packages. A normally working client does not need immediate reinstallation just because the version number changed; back up the configuration first and update when new features or fixes matter.

INSTALLATION ORDER

Installation order after downloading

Downloading is only the first step. On first launch, the client still needs a configuration import, node selection, system proxy confirmation, and connection check. The following order works for most first-time installations.

  1. Confirm that the file matches the current platform

    Check the file extension and architecture marker first. Windows desktop packages target x64; macOS distinguishes Apple Silicon and Intel; Android distinguishes arm64 and universal; Linux requires both deb or rpm and x64 or arm64. If the system reports an unsupported format, return to the platform and architecture checks instead of repeatedly opening the same file.

  2. Complete installation through the system interface

    On Windows, extract the download and run the installer; on macOS, open the DMG and follow the system interface; on Android, open the APK and confirm it in the system installer; on Linux, use the distribution’s graphical software manager or package tool. When a network permission prompt appears, read its purpose before confirming what the client needs.

  3. Import a subscription or individual node

    After opening the client, avoid changing many advanced options at once. Add the complete subscription URL and update it, or import a node configuration with all required fields. After the update, check that the node list contains names, addresses, ports, and protocol types. If the list is empty, first verify that the subscription URL is complete and the update succeeded.

  4. Choose a node and enable the connection

    Select a node from the list, then enable the connection or system proxy in the client interface. Android usually shows a system-level connection confirmation on the first connection; on desktop, check the system proxy status. Importing a configuration without selecting a node, or selecting one without enabling the system proxy, can leave browser traffic unchanged.

  5. Verify the configuration with a real connection

    After connecting, open a stable website first and check the client log for recurring errors. Speed tests only compare node quality; they do not prove that the proxy is active. If the page will not open, check the system clock, local proxy status, subscription expiry, node parameters, and transport settings in order. Avoid changing several fields at once.

CLIENT SELECTION

Usage boundaries of the three clients

DESKTOP

v2rayN

v2rayN covers Windows, macOS, and Linux and is the unified graphical client listed here for desktop platforms. It brings subscription management, node lists, system proxy controls, routing rules, and logs into one desktop interface. Windows offers both Desktop and classic WPF interfaces; macOS and Linux primarily differ by processor architecture and package format.

Choosing v2rayN does not mean choosing a particular proxy protocol. The imported node configuration determines the protocol; the client reads its parameters and provides the relevant capabilities. When protocol fields do not match, check the subscription content, client version, and configuration source before looking for another package with a similar name.

ANDROID PRIMARY

v2rayNG

v2rayNG uses the Xray core and is the preferred choice on Android. It provides subscription groups, QR-code import, clipboard import, node testing, per-app rules, and connection logs. For users importing a subscription on Android for the first time, starting with v2rayNG removes an unnecessary client-selection variable.

The arm64 and universal editions have the same functional role; they differ in the processor architectures covered by the package. Newer mainstream devices usually start with arm64. If the device information is unclear or the installer reports an architecture mismatch, use the universal edition. The architecture choice does not change the protocols, server address, or port in a subscription.

ANDROID ALTERNATIVE

v2flyNG

v2flyNG uses the v2fly core and is an alternative for specific requirements. Install it when configuration documentation specifies v2fly behavior, an existing subscription is maintained around that core, or you need to compare behavior between core families. Without a clear requirement, there is no need to install both Android clients.

Whether the same subscription works across different cores depends on shared support for the protocol, transport layer, security layer, and client version. The client name is only the first check. If import succeeds but the connection fails, continue by checking the node fields and server configuration rather than attributing the problem to the package alone.

DOWNLOAD FAQ

Common download and update questions

The questions below cover package selection and updates only. Complete steps for subscription imports, routing modes, and connection failures are covered separately in the setup guide, Help Center, and protocol manual.

Should Windows users download the v2rayN Desktop edition or the classic WPF edition?

For a first installation, the Desktop edition is usually the better choice. Its modern cross-platform interface organizes menus more like other desktop versions. The classic WPF edition preserves the traditional Windows layout for users who know the legacy menu positions or need to keep an existing workflow. Both are v2rayN; they do not represent different protocols and do not need to be installed together. Back up your subscriptions, routing rules, and custom settings before updating, then choose the interface edition you plan to use long term.

How do I choose between the Apple Silicon and Intel package on macOS?

Open About This Mac from the system menu and check the Chip or Processor field. Choose the Apple Silicon package when an Apple M-series chip is shown, and the Intel package when an Intel processor is listed. Do not rely only on the purchase year, screen size, or system interface, since the same product line may include different processors. Once the architecture matches, the client’s features and configuration entry points remain the same.

Should Android users download the arm64 or universal edition?

Most mainstream Android phones released after 2015 use 64-bit ARM, so start with the arm64 package. It includes components for the matching architecture and makes the choice more explicit. If the architecture cannot be confirmed or the installer reports incompatibility, switch to the universal edition. Neither package is a higher tier; subscriptions, nodes, and routing settings do not change with package architecture.

How should I choose between v2rayNG and v2flyNG?

Android users should generally start with v2rayNG, which uses the Xray core and supports common subscription and protocol configurations. Choose v2flyNG when you specifically need v2fly core behavior, the configuration provider names v2flyNG, or you need a compatibility comparison. A client and a protocol are different concepts: VMess, VLESS, Trojan, and REALITY belong to the node-configuration layer, and support also depends on the core and exact parameters.

Should Linux users choose deb or rpm?

Use deb for Debian, Ubuntu, and derivatives; use rpm for Fedora, Rocky Linux, AlmaLinux, and RHEL-based distributions. Then check the processor architecture: choose x64 for x86_64 or amd64, and arm64 for aarch64 or arm64. deb and rpm reflect different package-management systems, not feature counts or update speed.

Will updating the client remove existing subscriptions and nodes?

A standard in-place update usually keeps the existing configuration directory, but use the client’s backup or export feature first to save subscriptions, routing rules, and custom settings. A major-version update may change the interface, default configuration fields, or core behavior. The safer order is to back up, exit the running client, install the update, then check the subscription list, current node, system proxy, and routing mode.

SETUP

Import a subscription after installation

The setup guide covers subscription entry points, update actions, node selection, system proxy settings, and connection checks separately for desktop and Android. For a first run, following the sequence is easier to troubleshoot than changing advanced parameters in advance.

View the complete setup guide →
HELP

Installation or connection problems

The Help Center organizes questions into fundamentals, installation and configuration, usage tips, and Troubleshooting. First identify whether the issue occurs during download, installation, import, or connection, then follow the checks for that stage.

Open the Help Center →
REFERENCE

Understand protocol and core differences

The protocol manual explains configuration types such as VMess, VLESS, Trojan, and REALITY, along with the functional boundaries between the V2Fly and Xray core families. Read it before selecting a protocol type in the client.

Read the protocol manual →