CLIENT CATALOGUE / DOWNLOAD

V2Ray downloads and
client installers

Choose by operating system, interface, and architecture. Use v2rayN on desktop; on Android, choose v2rayNG or v2flyNG based on the core you need.

  • Free forever
  • Open source
  • Graphical configuration

PACKAGES / FOUR PLATFORMS

Browse installers by platform

Switch platforms to see the available downloads. Version labels identify the client; use the button text and installer filename to confirm the architecture.

v2rayN

v2rayN Recommended

7.24.1
WINDOWS / X64

Both Desktop and classic WPF versions are available for x64. Choose an interface, then download the matching ZIP file.

Download Desktop · x64

A modern cross-platform UI for a consistent experience across desktop operating systems.

Download classic WPF · x64

The established, stable version with a traditional Windows interface and familiar workflows.

Extract the ZIP before running the installer

Extract the entire archive to a writable location, then run the installer inside. Don't launch it from your archive utility's temporary preview, or files may be extracted to a temporary path. If the system reports missing runtime components, install the required dependencies for your architecture as prompted, then restart the client.

Export your configuration or back up the existing data directory before switching between Desktop and WPF. The two interfaces may store data in different locations; don't migrate by overwriting the entire program directory. Keep a copy of the old configuration until you've checked subscriptions, routing, and listening ports in the new interface.

AFTER INSTALLATION

After installation: configuration, routing, and connections

Installing the app is just the first step. Verify where your configuration comes from and that it imported correctly, then set up the proxy entry point. Use logs to help pinpoint any issues.

View the complete user guide
  1. Import a subscription or individual configuration

    Add a subscription URL you're authorized to use, then update its contents. Check that the list includes the expected servers and protocol types. Subscription URLs often contain credentials; don't post them publicly. If you need a screenshot, hide the full URL and authentication details. A successful import only means the client read the content; it doesn't confirm a connection to the server.

  2. Choose a server and routing mode

    Select a server configuration, then check your routing settings. The system proxy controls whether app traffic enters the local proxy; routing rules determine where traffic goes after entering the core. These settings operate at different levels. For your first connection, keep the default rules easy to understand. Once connected, adjust DNS, domain matching, and direct-connection rules one at a time.

  3. Connect and check the logs

    On desktop, enable the system proxy if needed. On Android, approve the system VPN request before connecting. Test with an app that clearly uses the configured proxy. If access fails, determine whether the issue is a failed subscription update, a port conflict, a certificate error, or an unreachable server. Change one setting at a time; don't disable certificate verification by default.

INSTALLATION NOTES

Back up and check compatibility before updating

The client, core, and server configuration are separate components. Updating the app won't automatically fix every connection issue.

Keep a restorable copy of your configuration

Before upgrading, note the client, interface, and architecture you're using, and export any server configurations and routing settings you want to keep. Backups may contain subscription URLs and credentials; store them somewhere you control, and don't share them with troubleshooting screenshots. If the new version requires data migration, keep the old directory until you've confirmed the new version can read your configuration.

Don't uninstall immediately if an installation conflict occurs. Check whether the system message mentions a signature mismatch, downgrade, dependency, or running process, then choose how to proceed. Uninstalling may also delete app data. On mobile especially, reinstalling the app won't necessarily restore subscription groups or custom rules.

Understand protocol support by core

In the Project V ecosystem, graphical clients and proxy cores have different roles: clients manage configuration and system integration, while cores handle protocols, transports, and routing. v2rayNG uses the Xray core, and v2flyNG uses the v2fly core. The features available in v2rayN also depend on the selected core and version.

A shared protocol name doesn't mean every extension field can be migrated as-is. If a configuration fails to parse, check which core and version the field belongs to, then compare it with the server's requirements. Don't assume one client should accept exactly the same JSON just because another client imports it.

View protocol and core terminology →

DOWNLOAD / QUESTIONS

Download and installation FAQs

These questions cover choosing an installer and launching the client for the first time. For connection errors, visit the Help Center.

Which Windows version should I choose: Desktop or classic WPF?

The Desktop version uses a modern cross-platform UI, making it a good fit if you want a similar experience across desktop operating systems. WPF is the established, stable option for users familiar with the traditional Windows interface. Both versions require you to extract the downloaded ZIP file before running the installer. Back up your configuration before switching, and don't assume the two versions share a data directory.

Which macOS download should I choose: Apple Silicon or Intel?

Open About This Mac from the Apple menu and check the chip or processor information. Choose Apple Silicon for an Apple M-series chip, or Intel for an Intel processor. Don't rely on the computer's purchase year or appearance. After downloading, move the app from the DMG to your Applications folder, then launch it from there.

What's the difference between the Android arm64 and universal builds?

The arm64 build is for systems that support the corresponding ABI. Most mainstream phones released after 2015 can use arm64, but check which architectures your system supports. If you're unsure, choose the universal build; it's usually larger. A universal build won't fix an outdated OS, a signature conflict, or insufficient storage.

Which Linux package should I choose: deb, rpm, or arm64?

Check your distribution and processor architecture in system settings. Choose deb for Debian-, Ubuntu-, and other deb-based distributions; choose rpm for distributions that use RPM package management. On this page, x86_64 maps to x64, and aarch64 maps to arm64. The package must also meet your distribution's version and dependency requirements.

Can I connect as soon as the client is installed?

The installer contains the client, not a ready-to-use server configuration. First import a configuration you manage or a subscription you're authorized to use. Then choose a server, set up routing, and enable the system proxy or VPN connection. Subscription URLs are sensitive; don't post them publicly or include them in screenshots.

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

Version labels and installer links for different architectures may be updated separately, so the numbers in a filename may not match the label. Don't guess file paths by changing numbers in the download URL. After downloading, check the app information shown by the system installer. Back up your configuration before upgrading. If the installer details don't match what you expected, stop and verify the client and architecture you selected.