Official client installers

V2Ray client downloads and version selection

Choose v2rayN, v2rayNG, or v2flyNG for your operating system. The page lists desktop editions, processor architectures, package formats, and pre-installation checks; verify your device details before downloading.

Four platforms Three desktop clients Architecture guidance Installation and upgrade steps
Choose a platform

Client installers for your system

After switching platforms, only graphical clients available for that system are shown. The primary button on each card targets a common architecture or recommended edition; secondary links cover other architectures and compatibility options.

Windows:v2rayN

Windows offers the Desktop and classic WPF editions. Both manage subscriptions, server settings, routing rules, and the system proxy; the main differences are interface technology and workflow.

v2rayN
Recommended

v2rayN for Windows

Current version 7.24.1

Desktop edition A modern cross-platform UI for first-time installations and users who want the current desktop interface.
Download Desktop edition
Classic WPF edition The familiar native Windows interface for users who prefer its established workflow or classic layout.
Download classic WPF edition

Windows system requirements and selection guide

Check Recommendation Details
Processor architecture x64 The Windows installers on this page target 64-bit desktop systems. Check the system type under Settings → System → About.
Interface edition Choose Desktop for a first installation Desktop provides a modern cross-platform UI; WPF is the classic, stable interface. If you already have a configuration, choose the edition that matches your usual workflow.
Upgrade preparation Exit the old process and back up your configuration Close the running v2rayN before installation and save important settings, including subscriptions, routing, DNS, and local ports.
Installation workflow

From download to first connection

The installer contains the client program only. After installation, import a valid configuration, choose a routing method, start the connection, and verify that the system proxy works as expected.

  1. 01

    Verify the platform, architecture, and package format

    Confirm whether the device runs Windows, macOS, Android, or Linux. For desktop systems, also check x64, Intel, or arm64; Linux additionally requires choosing deb or rpm. A wrong architecture commonly causes the installer to refuse execution, the app to fail to start, or the package manager to report an incompatible format.

  2. 02

    Exit the old client and keep a configuration backup

    When upgrading an existing client, first stop active connections and background processes. Preserve subscription URLs, manually added servers, custom routes, DNS settings, local listening ports, and per-app scope. Configuration directories may differ between major versions, so a backup makes post-migration checks easier.

  3. 03

    Install using the system-specific method

    Use the appropriate interface edition on Windows; open the DMG and follow the system guide on macOS; open the matching architecture installer on Android; and use the distribution package manager for deb or rpm on Linux. When a system permission prompt appears, verify the app name and the action being performed.

  4. 04

    Import configuration and check core settings

    After opening the client, import configuration through a subscription link, QR code, or manual entry. Importing does not establish a connection by itself. Check that server entries appear, the routing mode fits your needs, the local listening port is free, and DNS uses the expected method.

  5. 05

    Start the connection and review logs

    Select the server configuration to use, start the client core, and enable the system proxy or app connection for your platform. If the connection fails, first inspect the explicit error in the client status and logs rather than changing several settings at once. Check subscriptions, ports, time, DNS, and routing in that order to isolate the problem.

Choose a client

Which platform each client supports

The client names are similar, but their target platforms and core implementations differ. Choose your operating system first, then follow your configuration provider's requirements; there is no need to install every client.

v2rayN

v2rayN

Windows · macOS · Linux

v2rayN is the primary graphical client for desktop platforms, with subscription management, server editing, routing rules, DNS, system proxy controls, and log viewing. Windows users can choose between the modern Desktop and classic WPF interfaces; macOS and Linux users must also verify the chip architecture or package format.

v2rayNG

v2rayNG

Android · Xray core

v2rayNG is the preferred Android client for managing configurations through subscriptions, QR codes, or manual parameters. It supports per-app proxying and common mobile connection methods. Most recent devices can use arm64; switch to the universal build only when the architecture is unknown or installation compatibility fails.

v2flyNG

v2flyNG

Android · v2fly core

v2flyNG is the alternative Android client for configurations that specifically require the v2fly core. Its installers likewise come in arm64 and universal editions. If the provider does not specify a core implementation, start with v2rayNG; when switching, stop the original client's connection so both apps do not control the system connection at once.

Download FAQs

Installers, architectures, and upgrades

These questions cover the most common version decisions before downloading. For configuration and connection issues, continue with the user documentation and configuration field reference.

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

The Desktop edition uses a modern cross-platform interface for first-time installations and users who want the current desktop experience; the classic WPF edition retains the familiar Windows interface and workflow. Both support subscription management, routing configuration, and system proxy settings. If you are used to WPF, keep using the classic edition; for a new installation, start with Desktop.

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

Open About This Mac from the system menu and check the Chip or Processor field. Choose the Apple Silicon installer for an Apple M-series chip and the Intel installer for an Intel processor. The device year is only a secondary clue and should not replace the chip information shown by the system.

Should Android users download arm64 or the universal build?

Most mainstream Android phones released after 2015 use arm64, so start with the arm64 installer. Use the universal build when the architecture is unknown, the device is older, or the arm64 package cannot be installed. Although the universal build supports more devices, check the processor ABI in device information when possible.

Should Linux users choose a deb or rpm package?

Debian, Ubuntu, and derivatives generally use deb; Fedora, RHEL, Rocky Linux, AlmaLinux, and similar distributions generally use rpm. After choosing the format, run uname -m to check the architecture: choose x64 for x86_64 and arm64 for aarch64.

Do I need to delete my existing configuration before installing a new version?

Usually not. Exit the client before upgrading and back up important settings such as subscriptions, routing, and DNS. After installation, confirm that the existing configuration loaded correctly before starting a connection. Across major versions, also review the configuration directory, system proxy mode, and local listening port.

What should I check first if the client will not start after downloading?

Verify that the operating system, processor architecture, and package format match, then confirm that older processes have exited and system permissions allow startup. Windows users should verify the selected interface edition; macOS users should check the chip; Linux users should check both package format and architecture; Android users should confirm the installer ABI. If it still fails, record the full error and troubleshoot it step by step using the documentation.