Client installersChoose by platform and architecture
V2Ray client downloads
For desktop, choose v2rayN; for Android, start with v2rayNG. Check your device before choosing an installer.
Find download links for three free, open-source clients in one place. Get your installer and subscription separately; after downloading, import your configuration and test the connection using the guides.
Free and open sourceDesktop and mobileConfiguration guides
Choose an installer by platform
Switch platforms to see available builds and installation requirements.
Windows installers
One client, two interfaces. Both downloads below are x64 builds.
v2rayN
Recommended
Current release: 7.24.1 · Windows x64
Desktop editionModern cross-platform UI, recommended for first-time installs.
Choose either edition based on your preference. Back up your settings before switching interfaces, and don’t run both clients at once on the same ports.
Import and update your subscription, select a server you’re authorized to use, then enable automatic system proxy configuration. Test in a browser before considering TUN. The system proxy only affects apps that honor it, so an app bypassing the proxy doesn’t necessarily mean the subscription or server is down.
If the app reports that a port is already in use, quit the previous client and any other proxy apps. If startup fails, save the error message and check the runtime, folder permissions, and OS compatibility. Don’t repeatedly overwrite the configuration folder without knowing why. Back up existing subscriptions and custom routing before migrating or reinstalling.
macOS installers
Check About This Mac for your chip, then choose the matching Apple Silicon or Intel download.
v2rayN
Current release: 7.24.1 · macOS
Apple SiliconChoose arm64 if your chip is an Apple M-series processor.
Watch for system permission prompts when setting up the system proxy for the first time. Import your subscription, update the server list, and select a server before checking that the proxy is enabled. After switching Wi-Fi, waking from sleep, or changing network locations, check the proxy status if connections fail instead of deleting all your settings.
TUN and system proxy mode handle traffic differently. First confirm that the server works in system proxy mode, then enable TUN as documented and check the required permissions. Clear the system proxy before quitting the client. If the app has quit but the system still points to a local proxy address, your browser may keep trying to connect to a port that is no longer listening.
Android installers
Start with v2rayNG. Choose v2flyNG only if you need compatibility with the v2fly core.
v2rayNG
Recommended
Current release: 2.2.6 · Xray core
arm64Recommended for most phones released since 2015.
Supports subscription management and connection testing. On first connection, approve the system VPN request, then configure routing and per-app rules for your needs.
v2flyNG
Alternative
Current release: 1.10.31 · v2fly core
arm64For devices and systems that support arm64 apps.
For configurations that require the v2fly core. Check protocol and transport support against your actual configuration; configuration files aren’t interchangeable between the two clients.
System requirements and installation notes
Check
Requirements and guidance
App architecture
arm64 requires OS support for arm64 apps. If unsure, consider the universal build.
OS compatibility
Follow the APK installer’s compatibility warnings. Universal does not mean compatible with every OS.
Install permission
Grant install permission only to the browser or file manager you’re using.
Connection permission
Approve the system VPN request on first connection. Check whether another VPN is running.
Install the app before importing a subscription
Download the APK and install it using the system installer. Most phones released since 2015 use arm64, but the OS’s supported app architectures don’t always match the processor’s capabilities. If the installer reports incompatibility, check your device information and then try the universal build. Don’t keep installing the same incompatible package.
If an app with the same name is already installed but can’t be updated, the signing key or version may differ. Export your subscription and settings before deciding whether to migrate, so you don’t lose data by uninstalling. If the connection drops when the screen locks, check battery optimization and background activity restrictions; you don’t need to grant every permission upfront.
On Linux, system proxy behavior depends on both the desktop environment and each app. A working browser doesn’t mean every graphical or command-line app uses the same proxy automatically. First verify that the client is listening and connected to a server, then check proxy settings in each target app. For broader traffic routing, review the TUN permissions and routing guide.
Run the client as a regular desktop user for everyday use, and grant elevated privileges only when a feature requires them. Don’t run the entire graphical client as an administrator just for convenience. Back up your settings and quit running instances before upgrading. If the tray icon is missing, check desktop tray support instead of starting multiple copies.
After downloadingConfigure first, then connect
Install the client separately from your subscription
v2rayN, v2rayNG, and v2flyNG are graphical clients. They read configuration, manage servers, and use the relevant core; they don’t provide subscriptions. Project V, V2Fly, and Xray are part of the related open-source ecosystem. Core protocol support and the client interface are separate things. Choose a package for your device first, then check compatibility with your existing configuration.
Get the full URL for a subscription you’re authorized to use, create a group, and update it. URLs may contain credentials, so redact them in screenshots and support requests. Don’t share them publicly.
Choose a proxy mode
On desktop, test the system proxy first; on Android, approve the VPN request. TUN is an option for routing more traffic, not a fix for every connection problem.
Test and verify
Select a server and run a real connection test, then check browser access and your exit IP. If the test fails, check subscription status, system time, and proxy settings in that order.
Keep your settings before and after installation
Check the package type →
A processor may support an architecture that the current OS can’t run apps for. Check system information and installer warnings before choosing a package. A file extension indicates its package format; renaming a file won’t change that format or fix compatibility.
Back up your settings →
Before migrating, save subscription groups, custom routing, local ports, and per-app settings. Different interfaces and clients may use different configuration formats. Use a supported import method rather than copying an entire old configuration folder over the new app.
Verify one step at a time →
After updating, make sure the app starts, then update your subscription, select a server, and test the connection. Change one type of setting at a time and keep reproducible error messages. Installation, subscription updates, and proxy connections are separate steps; check them separately to pinpoint problems.
For detailed instructions, see the user guide. If the app is installed but won’t connect, start with the FAQ.
Download FAQ
Package types, installation, updates, and your first connection.
Which v2rayN version should I download for Windows: Desktop or WPF?
For a first install, try the Desktop edition with its modern cross-platform interface. If you prefer the classic Windows layout, choose the stable WPF edition. Set up subscriptions and proxy options in the interface you choose. Back up your settings and quit the other client before switching to avoid proxy port conflicts.
Which v2rayNG build should I choose: arm64 or universal?
Most phones released since 2015 can use arm64, but check which app architectures your device and OS support. If you’re unsure or arm64 is reported as incompatible, try the universal build. It supports multiple architectures and is usually larger. If installation fails, also check your Android version and whether the installed app has a matching signing key.
Can I connect as soon as the download finishes?
The installer contains only the client, not a server or subscription service. You’ll need a subscription URL you’re authorized to use or your own server configuration. Import and update it, select a server, then enable the system proxy or configure TUN if needed. Test the connection, then verify it by browsing and checking your exit IP.
What if the installer reports incompatibility or the app won’t start?
First check that your OS, processor architecture, and installer format match. On Windows, fully extract the download before running it; on macOS, check your chip type; on Android, verify OS and architecture compatibility; on Linux, check your distribution and dependency messages. Keep the exact error and follow the documentation to resolve runtime or permission issues. Don’t disable system security protections.
How can I keep my subscriptions and routing settings when updating the client?
Before updating, use the client’s backup or export feature and note your subscription groups, ports, routing, and TUN settings. Quit the client before installing the update, then check that your settings are intact on first launch. Don’t overwrite the entire configuration folder when switching interfaces or clients. Keep subscription URLs and backup files private.
What should I do if a download is interrupted?
Check your browser’s downloads list to see whether the download is still running or paused. If it was interrupted, click the same installer link again. If it keeps failing, check available disk space, your network connection, and any browser warnings, then try again later. Don’t rename an error page as an installer or run replacement files from untrusted sources.