Desktop and Android clients

V2Ray Download
Client installers

Choose v2rayN for desktop or v2rayNG for Android. Check your operating system, then download the package for your processor architecture.

Free to use Open source Graphical interface

Installers don’t include connection settings. See the user guide to get started.

Choose an operating system

Client and package format

Platform selections sync with the URL anchor. Choose a platform to view its installers and requirements.

Windows client

v2rayN Recommended

7.24.1

The desktop version features a next-generation cross-platform UI; the WPF version retains the classic Windows interface. Both downloads below are x64 installation archives.

Desktop version

Download v2rayN Desktop · x64

Choose this for a first installation or to keep the cross-platform layout. After downloading, extract the archive and run the installer inside.

Classic WPF version

Download classic WPF · x64

Best for users familiar with the classic menus and settings layout. Save your existing settings and subscription groups before switching versions.

Desktop installer v2rayN-Desktop-Setup-x64-7.24.1.zip

System requirements and installation prep

CheckWhat to look for
Processor architectureBoth downloads on this page are x64. Check System > About for your system type; don’t use an x64 package as a native installer for another architecture.
Operating system and runtimeUse a supported version of Windows. Check the selected release’s notes and installer prompts for its specific minimum OS version and runtime requirements.
File formatZIP is an installation archive. Extract it fully to a writable folder before running the installer; don’t launch it from the archive preview.
Routing trafficStart with the system proxy for regular apps. If you need TUN mode, follow the client’s instructions to set up the required permissions and components.

After the first launch, make sure the interface opens normally before importing a subscription or share link. Importing adds configurations to the list; you still need to select one to use. Then set the system proxy and routing mode: the system proxy determines whether apps send requests to the client, while routing determines how those requests are handled. They’re separate settings, and a successful installation doesn’t mean the connection is working.

Before updating an existing installation, exit the old process from the system tray to prevent two instances from competing for the same local listening port. Save any custom routing, DNS, or configuration files separately before updating. Menu locations may differ between the desktop and WPF versions; search by feature name when switching instead of following an old screenshot step by step. If startup fails, note the exact error message and follow the relevant steps in Troubleshooting.

Handle installation and configuration separately

After downloading: what to check

First confirm that the app launches, then check the configuration and traffic routing. This keeps issues from different stages separate.

  1. Check package compatibility. Start with the operating system, processor architecture, and package format; then check the displayed version. x64, amd64, and x86_64 are labels for the same architecture; arm64 and aarch64 refer to another. Similar names don’t mean packages are interchangeable, and universal builds still have system requirements.
  2. Save your existing settings. Before updating, note your subscription groups, local listening port, routing rules, and custom DNS settings. Treat backups containing subscription URLs or connection credentials as sensitive information; don’t post them in public forums. When switching clients, keep the old setup until you’ve confirmed the new client works.
  3. Import a configuration you’re authorized to use. The client doesn’t provide a connection service. A single-node share link and a subscription URL aren’t the same: the former describes a specific configuration, while the latter retrieves a list of configurations that can be updated. After importing, check the list and groups. Don’t mistake a webpage URL or error page for a valid subscription.
  4. Choose how traffic is routed. On desktop, check the system proxy; on Android, approve the VPN permission first. Then choose a routing mode as needed. Read Routing settings to learn about global proxy and split routing. If a test fails, check the error type in the logs; reinstalling shouldn’t be your first step.

If a download doesn’t finish, check your browser’s download history to see whether the request failed, was paused, or saved to another folder. If the file downloaded but won’t install, check the architecture, system compatibility, and installation permissions. If the app launches but can’t connect, troubleshoot the configuration, system proxy, and DNS. Isolating the issue by stage usually preserves more useful clues than repeatedly downloading different packages.

A failed subscription update doesn’t necessarily mean there’s a problem with the client installation. Check that the URL is complete and still valid, and review the network path used for the update before investigating configuration compatibility. See Troubleshooting failed subscription updates. Before sharing logs or screenshots, hide subscription URLs, access credentials, and other private information.

Download FAQs

Installer FAQs

Which should I choose: the Windows desktop or classic WPF version?

For a first installation, start with the desktop version, which uses a next-generation cross-platform interface. If you prefer the familiar classic Windows layout and workflow, choose the established WPF version. Both are v2rayN. Back up your settings before switching, and don’t run both versions on the same local listening port.

Should I download the arm64 or universal version for Android?

Most mainstream phones released after 2015 use arm64, but a 64-bit processor doesn’t guarantee that the system provides a 64-bit runtime. Check your device’s architecture first. If you can’t confirm it or the arm64 package reports an architecture mismatch, try the universal version. Universal does not mean compatible with every Android version.

Can v2rayNG and v2flyNG be used interchangeably?

v2rayNG uses the Xray core and is the recommended Android client on this page; v2flyNG uses the V2Fly core as an alternative. Compatibility depends on the protocol, transport, and core support—not just whether the subscription URL is the same. For REALITY configurations, confirm protocol support in your chosen client first.

Can I connect as soon as I download the client?

The installer contains only the client—not a connection service or ready-to-use configuration. You’ll need a subscription URL or share link that you’re authorized to use. Import it, select a configuration, set up the system proxy or approve the VPN connection, and check the routing mode.

Why doesn’t the version shown on a card match the version in the filename?

The displayed version and architecture-specific file paths come from different manifest fields and may not be updated at the same time. Use the download button for the specific installer you need, then check the installed version in the client. This page does not reconstruct file paths from the displayed version.

What should I do before updating the client?

Back up your subscription groups, routing rules, and custom settings, then close the running client. When updating, keep the same app, architecture, and installation method. Before switching interface versions or cores, export anything you need and make sure the new client can read it before removing the old installation.