GUI clients · Choose an installer

Download V2Ray clients
v2rayN and Android clients

Choose your operating system, then your CPU architecture. Use v2rayN on desktop; v2rayNG is the recommended choice for Android, with v2flyNG as an alternative for core compatibility.

All three clients are free and open source. After installing, import a valid subscription or server configuration.

Windows installer

One client, two interfaces. Both options below are x64 packages.

v2rayN

Recommended 7.24.1

Desktop is the modern cross-platform UI, suited to first-time installs and use across desktop operating systems. WPF is the classic, stable version for users who want to keep their existing workflow. Choose one interface, then import your configuration; you don't need to run both at once.

Desktop version

Modern cross-platform interface · x64

Download Desktop · x64

v2rayN-Desktop-Setup-x64-7.24.1.zip

Classic WPF version

Classic, stable interface · x64

Download WPF · x64

v2rayN-Setup-x64-7.24.1.zip

The download is a ZIP archive. Extract it completely, then run the installer inside. Don't launch it from the archive preview.

System and installation requirements

What to checkRequirementsWhere to check
Operating systemUse a version of Windows that still receives security updates. Check the installer for the current minimum version requirement.Settings → System → About
CPU architectureThis page provides an x64 package. Check your system type and app compatibility before installing.System Information → System type
RuntimeIf you're prompted that a runtime is missing, install the required runtime for this package and try again.Installer and app startup prompts

Install the app in a location where you have read and write access. Don't keep its configuration in a temporary downloads folder. On first launch, confirm the main window opens before importing a subscription. System proxy settings affect apps that read them, but they don't automatically route every program. To route other apps, configure TUN mode separately after reviewing its permissions and routing implications.

Before switching from WPF to Desktop, export your settings in the client and note your local listening ports, subscription groups, and routing rules. Don't overwrite the existing directory with a different branch. Exit the old client before launching the new one to avoid port conflicts and prevent both processes from changing system proxy settings.

What to check after installation

Downloading the files and establishing a proxy connection are separate steps. First make sure the client starts, then verify your configuration and traffic route.

Subscription import and mode setup guide →

Install → Import configuration → Select a node → Test the proxy

  1. Startup and permissions

    First, confirm the app opens normally. Grant system proxy, VPN, or traffic-routing permissions only when you enable those features; a successful installation doesn't require granting every permission in advance.

  2. Subscriptions and nodes

    Import a valid subscription URL or server configuration, then check that the client recognizes its protocol and transport fields. The client itself doesn't provide accounts, subscriptions, or servers.

  3. Connection and testing

    Select a node and test the connection before enabling your preferred proxy mode. Test access in a browser and check the logs to see whether the failure occurred during DNS resolution, the handshake, or routing.

System proxyRouting rulesDNS

Updates and configuration migration

Keep a restorable configuration backup before updating, then test a small part of your setup afterward.

Before exporting, check that your backup includes subscription groups, custom routing rules, local ports, and app preferences. Some settings may be stored in separate files, so copying only the main program may not be enough. Backups may contain subscription URLs and server identity details. Keep them somewhere you control; don't post them in public forums or attach full configuration screenshots to routine bug reports.

Quit the running client before installing a new version. On desktop, check the system tray or menu bar to confirm the background process has exited. On Android, keep the existing app data when installing over the current version. Updates from a different source may be blocked by signing restrictions, and migrating between interfaces or cores may expose configuration differences. If there's a conflict, save the original configuration before deciding whether to reinstall. Don't clear data as a first step.

After updating, check the running version on the About page and test the connection with a known-good configuration. Confirm the system proxy address, listening port, and routing rules haven't changed unexpectedly before restoring automatic subscription updates. If the issue started with the new version, note your system, architecture, package name, and error message, then follow the troubleshooting steps.

Download and installation FAQs

First determine whether the issue is the wrong package, a system installation restriction, or a connection configuration problem.

Which should you choose: the Windows Desktop or WPF version?

For your first install, start with Desktop, which uses a modern cross-platform interface. Choose the classic, stable WPF version if you prefer its familiar interface or already use a WPF-based workflow. The two versions differ in interface, not in servers or network routes. Export your configuration before migrating, and avoid mixing program directories.

How do you know whether to download arm64 or x64?

On Windows, check System type in System Information. On a Mac, check the chip in About This Mac: choose Apple Silicon for an Apple M-series chip, or Intel for an Intel processor. On Linux, check the hardware architecture in your system's About page. On Android, check your device's processor. Most mainstream phones released since 2015 should use arm64; if unsure, choose the universal build.

Android says the app can't be installed. Should you uninstall the old version first?

First check available storage, permission to install apps, and the package architecture. If an app with the same name is already installed, the signing source may differ or the package you're installing may be older. Don't uninstall it right away: export your configuration and make sure the backup works, then follow the specific error message. Packages from different sources may not install over one another.

Why can't you connect after installing the client?

The client manages configurations and forwards traffic; it doesn't include server access. Import a valid subscription or server configuration, select a node, and start the connection. Then check that system proxy settings or VPN authorization are active. If it still fails, check node availability first, followed by routing and DNS.

Will updating the client keep your subscriptions and routing settings?

A standard in-place update usually preserves app data, but don't assume configurations are fully compatible when switching interface branches, installation sources, or major versions. Export your configuration before updating, and note your subscription groups, routing rules, and local ports. After updating, test a node before restoring automatic updates and custom routing.

What if the version shown doesn't match the installer filename?

The version shown may come from app-level update information, while each installer has its own filename; they may not match temporarily. Before downloading, check the selected platform, architecture, and actual filename. After installation, check the running version on the client's About page. Don't change numbers in a download URL to guess the name of another installer.

Download clients