Client downloads · Choose a platform and architecture
V2Ray Client Downloads
For desktop, choose v2rayN; for Android, start with v2rayNG. Confirm your operating system, then choose a package for your processor architecture.
Free, open-source clients. Import a subscription or node configuration you’re authorized to use before connecting.
Choose a package
Download by platform
Platform selections are reflected in the address bar, making the page easy to save and share. Check the version on each client card, and confirm the package format and architecture before downloading.
Windows: v2rayN downloads
v2rayN Recommended
7.24.1
Both downloads are x64 archives. The desktop edition has a modern cross-platform UI; the classic WPF edition is a stable, Windows-only option. For a first install, start with the desktop edition. If you’re used to the classic interface, choose the one that suits your workflow.
Desktop · x64
Built with the Avalonia cross-platform UI, it’s a good choice for fresh installs and for users who want a consistent experience across desktop operating systems.
Windows x64; supported Windows versions depend on the selected release package
Settings → System → About; check System type
Runtime dependencies
Depends on the release package. If a runtime is missing, install the component for the required architecture as prompted
Prompts on first launch and application error messages
Directory permissions
The program and configuration directories must be writable; fully extract the archive first
Properties and access permissions for the extraction folder
Extracting, first launch, and switching versions
First, check System type in System Information and confirm that it says x64-based processor. If Windows reports ARM, don’t choose this x64 package just because the system is 64-bit; check the device’s app compatibility first. Both downloads on this page are for x64 systems. Don’t infer other package architectures from the processor name.
After downloading, fully extract the archive to a permanent, writable folder, then run the installer or launcher inside. Don’t run the program from the archive preview or extract only a single executable. The program may need files in the same folder, and temporary extraction paths can make it hard to find the configuration later.
On first launch, keep the default listening settings. Import a subscription, select a server, then follow the setup guide to configure the system proxy. Don’t run the desktop and WPF editions at the same time; they may compete for the same local port. Before switching versions, exit the old process and save your configuration. Don’t mix or overwrite files from both editions in the same folder.
If a runtime component is missing, note its name, version, and architecture from the prompt before installing it. Not every launch failure is caused by a missing runtime: a read-only folder, incomplete extraction, or an old process holding a port can also cause problems. For details, see the installation and first-run guide. To compare the interfaces, see desktop vs. WPF edition.
macOS: Choose v2rayN by chip
v2rayN
7.24.1
The cross-platform desktop client comes in two DMG packages. Check your chip or processor under Apple menu → About This Mac, then choose the matching download.
Apple Silicon · arm64
Choose this package if your chip is an Apple M-series. For best results, use the package built for your chip’s native architecture.
Must meet the selected release package’s minimum system requirements; check compatibility on older systems
macOS version in About This Mac
Installation permissions
Permission to write to the Applications folder; grant additional permissions for network features when prompted
Privacy & Security and network settings in System Settings
DMG installation and network settings
Open the DMG and follow the installer window’s instructions to move the app to Applications. Then launch it from Applications. Don’t keep running it from the disk image, or you may lose access to the app when you eject it. Once installation is complete and the installer window is closed, eject the disk image. Keep the downloaded DMG if you want a backup.
If macOS shows a security alert, first confirm that it refers to the client you just downloaded and review the full reason. Then use the system-provided option to allow that app. Don’t disable security protections globally just to launch one app. If your macOS version doesn’t meet the requirements, resolve the compatibility issue instead of repeatedly granting permissions.
After the first launch, import a subscription, select a server, and check the connection logs before enabling a proxy mode. The system proxy mainly affects apps that honor system proxy settings; it doesn’t route every process through the same connection. If a browser works but another app doesn’t, check that app’s network settings separately.
When moving from an Intel Mac to an Apple Silicon Mac, download the package for the new device’s chip. Migrate your configuration using the client’s supported export and import options. Then check local ports, routing, and DNS again; network permissions from the old device don’t carry over. For connection basics, see the subscription import guide.
Android: v2rayNG and v2flyNG
v2rayNG Recommended
2.2.6
Powered by the Xray core. A good first choice for a new install: import a subscription, select a configuration, then tap the connect button on the main screen.
arm64 · Common architecture
Most phones released after 2015 can use this package; confirm that the system supports 64-bit apps.
Powered by the V2Fly core. Choose it if you specifically need this core; before switching, check that your subscription’s protocol, transport, and settings are compatible.
arm64 · Common architecture
Choose this package for most devices that support 64-bit apps; the selection guidance is the same as above.
Android version must meet the selected APK’s requirements
Settings → About phone; check the Android version
App architecture
The arm64 package requires a compatible system ABI; the universal version includes components for multiple architectures
Check your device specifications; try the universal version if unsure
Installation permissions
Installing an APK may require permission for the browser or file manager you’re using
Grant permission only to the app you’re using to install the APK
Connection permission
You’ll need to approve the system VPN request on first connection; other VPN apps may conflict
Read the system prompt and stop any other active VPN connection
Installing an APK and connecting for the first time
Open the APK from your downloads or file manager. If Android asks for permission to install apps, grant it only to the browser or file manager you’re using. You can revoke it after installation. If the APK can’t be parsed, make sure the download is complete, then check the Android version and architecture. Don’t try to bypass the warning by changing the file extension.
arm64 refers to the app architecture, not the Android version. Some devices have 64-bit processors but run a system that supports only certain app architectures, so the purchase year alone isn’t enough to determine compatibility. The universal version works across more devices, but doesn’t add protocol features or fix an outdated Android version.
After installation, add a subscription or import a share link, update the configuration, and select a server. The first time you tap Connect, Android asks to set up a VPN connection. This system permission lets the client handle network traffic. If another VPN app is active, stop it before starting this client to avoid the apps replacing each other’s connections.
If the connection often drops when the screen is locked, check battery optimization, background activity, and network switching settings. Change only options related to this client; there’s no need to add every app to a background allowlist. Check routing, DNS, and advanced settings separately in v2rayNG and v2flyNG. Being able to import the same subscription doesn’t mean they behave identically.
Linux: v2rayN packages
v2rayN
7.24.1
For graphical desktop environments. Check your distribution’s package format, then choose x64 or arm64. A matching package format doesn’t guarantee compatibility with every version of every distribution.
deb · x64 / amd64
For distributions that use the deb package system, such as Debian, Ubuntu, and compatible systems.
A desktop session that can run graphical apps, with the required dependencies
Distribution and desktop details in system settings
Package system
deb and rpm are for different package systems; the package manager checks specific dependencies
Distribution’s software installer and package details
Processor architecture
Choose x64 for amd64 / x86_64; choose arm64 for arm64 / aarch64
Hardware or architecture details in system information
Network permissions
Regular proxy and TUN have different permission requirements; establish a basic connection first
Client logs and system permission prompts
Package format, dependencies, and launching from the desktop
After downloading, open the package with your distribution’s software installer and review the dependency check. deb and rpm are different package systems; don’t try to switch between them by changing the file extension. If dependencies are missing or versions conflict, check whether your distribution and release meet the package requirements. Don’t force the installation by ignoring dependencies.
Even distributions using rpm can differ in system library versions. Build tags in a filename don’t guarantee compatibility with every rpm-based system. If the software installer rejects the package, keep the full error message and determine whether the issue is an architecture mismatch, an outdated dependency, or a package manager problem before proceeding.
After installation, launch v2rayN from your desktop’s app menu. Import a configuration, select a server, and verify a regular proxy connection before adjusting routing or other features. Desktop environments handle system proxy settings differently, and some apps may need a proxy configured in their own settings. The system proxy switch isn’t a global rule that every app must follow.
TUN may require additional permissions and change network routes, so don’t make it a prerequisite for your first launch. Enabling TUN and complex routing before verifying a basic connection makes troubleshooting harder. Back up your configuration and custom rules before updating. After installation, check the desktop launcher, listening ports, and the configuration directory in use.
What to do after downloading
Installation is just the first step. Follow this order: import, select, connect, verify. It’s easier to pinpoint problems than when you change several network settings at once.
Import a configuration you’re authorized to use
Get a subscription URL or node share link, make sure it’s complete, then add it to the client. Subscription URLs often contain access credentials; don’t post them in public comments or screenshots, or submit them to online conversion tools. If you need a different format, check whether your subscription provider offers one for your client.
After updating the subscription, select a server and test the connection with the default or basic routing settings. On desktop, enable the system proxy if needed; on mobile, approve the system connection request. A successful subscription update only means the configuration was retrieved—it doesn’t guarantee the server is reachable.
Test the connection with the apps you actually need, and use the logs to check for DNS resolution, handshake, or connection errors. Change one setting at a time and note its original value. Once the connection is stable, add routing rules gradually. If something goes wrong, revert to the last configuration you verified.
Updating the client and keeping your configuration
Before updating, stop the connection, exit the client, and make sure the old process has ended. Use the current version’s export or backup option to save your configuration. If you need to copy the configuration directory, confirm its actual location first. The program, configuration, and system installation directories may be different; saving the installer isn’t a substitute for backing up your configuration.
Subscription groups, custom routing, DNS, listening ports, and app proxy settings can all affect how the client behaves after an update. Save rules and settings, not just server names. Backups may contain subscription URLs and node credentials, so store them securely and don’t share them publicly as routine troubleshooting attachments.
After updating, check that your subscriptions are still there and the right server is active, then verify ports and routing. Remove old files only after everything works as expected. If you need to roll back, use the backup you made before updating. Don’t assume every configuration saved by a newer version can be read by an older one.
v2rayN, v2rayNG, and v2flyNG are graphical clients for everyday use in the Project V, V2Fly, and Xray ecosystems. Choose based on your device and configuration compatibility, not by comparing version numbers across projects. To learn more about protocols, routing, and how TUN fits in, see the complete guide from beginner to advanced.
V2Ray client download FAQs
For a fresh Windows install, should I choose the desktop or classic WPF edition?
For a fresh install, start with the v2rayN desktop edition and its modern cross-platform interface. The classic WPF edition is a Windows-only stable option for those who prefer its familiar layout and workflow. Don’t run both at once. Back up your configuration before switching, and check the runtime requirements.
Should I download the arm64 or universal Android version?
Most phones released after 2015 can use arm64, but confirm that your system supports 64-bit apps. If you’re unsure of the processor architecture or the arm64 package is incompatible, try the universal version. It includes components for multiple architectures and is usually larger; it doesn’t add features.
Why can’t I connect after installing the client?
The client manages configuration and connections; the installer does not include a working server. You’ll need a subscription URL or node configuration you’re authorized to use. Import it, select a server, then configure the system proxy or connection mode. If an error occurs, check the client logs first to determine whether the issue is with the configuration, network, or permissions.
How do I keep my subscriptions and routing settings when updating the client?
Stop the connection and exit the client, then use the current version’s export or backup feature to save your configuration. On desktop, confirm the actual configuration directory rather than copying only the program files. After updating, check subscription groups, the active server, listening ports, and routing rules. Keep the old backup for now.
What should I do if the download won’t install or the app is incompatible?
Check the platform, processor architecture, and package format. Fully extract Windows archives; choose the right package for Apple Silicon or Intel on macOS; check Android’s architecture and installation permissions; and select deb or rpm for your Linux distribution. If it still fails, note the full error message—don’t disable system security protections.
Can I use the same configuration in v2rayNG and v2flyNG?
The two clients use different cores, so compatibility depends on the protocol, transport, and specific settings. You can try importing common share links into either client, but that doesn’t mean every advanced setting is interchangeable. Keep the original subscription, import it into the new client, and check routing and DNS settings separately.