Client Downloads

V2Ray Download
Choose an OS and architecture

Use v2rayN on desktop and v2rayNG on Android as the default choice. Confirm your operating system first, then select the matching processor architecture and package format.

Choose by Platform

Clients & Downloads

Switch platforms to see the available downloads. Desktop uses the same client; on Android, choose a primary or alternative app based on core compatibility.

Windows · v2rayN

v2rayN

Desktop client · x64

Recommended 7.24.1

Desktop edition

Download Desktop Edition · x64

A next-generation cross-platform UI. A good starting point for a fresh install or if you want a consistent desktop experience across platforms.

Classic WPF edition

Download Classic WPF Edition · x64

A familiar, stable interface. Choose this edition if you know the classic Windows layout and want to keep your existing workflow.

Both downloads are ZIP archives. Extract the archive before running the installer; don’t launch it from the archive preview.

Windows Requirements & Prerequisites

CheckRequirements & Options
Operating systemWe recommend Windows 11 x64 that is still receiving security updates. Check the installer for the minimum requirements of your specific version.
ProcessorThis page provides an x64 installer. Find your system type under Settings → System → About.
RuntimeInstall any required runtime prompted by the installer. If the WPF edition requires the .NET Desktop Runtime, match the required architecture and major version.
Folder & permissionsUse a folder your account can read and write. Standard permissions are usually sufficient for proxy settings; TUN may require additional permissions.

After installation, launch the client and make sure it can save settings before importing a subscription. If you install both the new and classic interfaces, don’t run them simultaneously—they may compete for the same local listening port. To migrate, export your settings first, then check subscription groups and routing rules one by one. Don’t assume the two editions can use each other’s configuration files interchangeably.

If the startup window disappears immediately, check the error message and runtime requirements before switching nodes. If the client opens but connections fail, investigate server settings, the system proxy, and routing instead. These issues call for different troubleshooting steps.

How to Choose an Installer

Choose an installer in this order: operating system → processor architecture → package format. The operating system determines whether the app can run; architecture determines whether the binary fits the processor and system environment; package format determines which installer to use. A mismatch in any of these can cause errors such as “can’t open,” “app not installed,” or missing dependencies.

x64 is commonly used on 64-bit Intel and AMD desktop processors; arm64 is common on Apple Silicon, Android phones, and some Linux devices. amd64 doesn’t mean the app runs only on AMD processors, and x86_64 isn’t a separate architecture. If you’re unsure, check your operating system’s system information instead of guessing from the device’s appearance or purchase year.

All three clients are free and open source. Project V is the starting point for this technology ecosystem; V2Fly and Xray are separate core development branches. GUI clients add subscription management, routing, and proxy settings on top of a core. Similar app names don’t mean the update schedules, protocol support, or configuration formats are identical, so check which features you rely on before migrating.

First Launch & Connection Steps

  1. Install the client and open its main window. On desktop, extract the archive or copy the app first; on Android, install the APK. Don’t change advanced routing settings yet. Confirm that the client starts, saves settings, and reopens correctly after you quit.
  2. Import a subscription or server configuration. Add a subscription URL from the subscription group menu and update it, or import a node using a supported method. Subscription URLs often contain access credentials; store them only on trusted devices.
  3. Select a server and proxy method. On desktop, start by testing app access with the system proxy. On Android, approve the VPN request and start the connection. System proxy, TUN, and per-app proxying affect traffic differently; avoid changing several settings at once during your first test.
  4. Test access and check the logs. Confirm that the target app is actually using the proxy, then check whether the node connected. A running status only means the relevant services have started; it doesn’t guarantee that every app or destination is being routed as expected.

If a page won’t load, first make sure your local network works, then check node settings, system time, and error logs. If a port is in use, check whether another client instance is still running. If authorization fails, review system permissions. If a remote connection times out, check the server port and transport settings. Troubleshoot each layer separately instead of assuming every issue is caused by the installer.

Once the basic connection works, configure routing rules, DNS, or TUN one at a time. Keep the last working configuration so you can identify what changed. For UI walkthroughs, see the Getting Started guide; for field definitions and rule structure, see the Configuration Reference.

Updates & Keeping Your Settings

Before updating, export important settings—especially custom routing rules, DNS settings, subscription groups, and server parameters. You can download nodes again from a subscription, but that may not restore group order, bypass lists, or local overrides. Store backups somewhere only you or authorized users can access.

Before installing a new version, stop the proxy connection and quit the old client. On desktop, make sure the tray process has also exited so it doesn’t lock files or local ports. If Android won’t install over the existing app, check the signature and version restrictions before removing it; uninstalling may delete local data.

After updating, check the selected core, inbound port, system proxy, and routing mode, then test a real connection. If the new version behaves differently, compare it with your saved settings rather than repeatedly importing the subscription and overwriting the current setup. Before rolling back, keep backups of both versions to avoid problems caused by overwriting configurations across versions.

Downloading an installer doesn’t install it, and installing an update doesn’t necessarily quit the old app. If the old interface still appears after an update, check which app folder the launch shortcut points to. If you keep multiple extracted folders, make sure you distinguish the running app from the newly downloaded files.

Download FAQs

Can I connect as soon as the client is installed?

The installer contains only the client—not a server or subscription. After installation, import a subscription URL or server configuration you’re authorized to use, select a server, then configure the system proxy or another traffic-routing method. Follow the Getting Started guide for your first setup.

Which build should I choose: arm64, x64, or universal?

Check the processor architecture shown by your system. Choose arm64 for Apple Silicon and x64 for Intel Macs. This page provides an x64 build for Windows. Linux downloads are split by architecture and package format (deb or rpm). Most Android phones released since 2015 can use arm64, but check which app architectures your device supports. If you’re unsure, choose the universal build.

What should I back up before updating the client?

Back up subscription groups, server configurations, custom routing rules, and DNS settings. Note the current core and proxy mode. Quit the client before installing the update, and keep your backup until you’ve confirmed the connection works. Subscription URLs and exported configurations may contain credentials, so don’t share them publicly.

What if the installer won’t open or installation fails?

First, confirm the installer matches your operating system and processor architecture, then check the specific system error. On Windows, check that the archive is fully extracted, required runtimes are available, and you have permission to access the folder. On macOS, review the block reason under System Settings → Privacy & Security. On Android, check install-source permissions and the existing app’s signature. On Linux, check the package format and dependencies. Don’t leave system security features disabled just to launch the app.

Can v2rayNG and v2flyNG use the same subscription?

The subscription format must be recognized, the node protocol supported, and the transport parameters compatible. v2rayNG uses the Xray core, while v2flyNG uses the V2Fly core; their protocol and parameter support differs. A successful import doesn’t guarantee that every node will connect. Choose a client based on your subscription provider’s guidance, and don’t run both apps’ VPN connections at the same time.

Download v2rayN