Client downloads · Choose a system and architecture
Download V2Ray Clients
v2rayN for desktop; v2rayNG and v2flyNG for Android. Choose your system, then select a package that matches your device.
Free foreverOpen sourceGraphical interface
These packages install the client. For your first setup, you'll also need a connection configuration you're authorized to use. If you already have one, back up your settings before updating.
Windows client
v2rayN · x64 packages · Two editions
v2rayN
Recommended7.24.1
Desktop features a modern cross-platform UI; classic WPF keeps the familiar Windows interface and workflow. For a first install, start with Desktop.
The established edition with the familiar interface. Stick with it if you're used to its workflow.
The download is a ZIP archive. Extract the entire archive before running the installer; don't launch it from the archive preview.
Windows requirements and installation checklist
Check
What to look for
Before installing
Processor architecture
x64 packages available on this page
Check System type under Settings > About
Windows version
Use a Windows version still supported by its vendor; check the installer for the minimum version
Install required system updates and confirm runtime dependencies are met
Install location
Choose a location your account can read and write
Back up existing settings and check available storage
Permissions and modes
Standard system proxy and Tun mode have different permission requirements
Grant permissions only for the features you use; don't elevate every operation by default
These are two interface editions, not separate connection services. Support for a protocol depends on the client-selected core, its version, and the complete connection parameters. If you're already using classic, you don't need to migrate just because the interface differs. Before switching to Desktop, export any settings you can back up and note your subscription groups, ports, and custom routes. Check that the new version can read your configuration before deciding whether to remove the old installation.
After installation, launch the client and import a share link or subscription URL. Before enabling the system proxy, confirm that a node is selected and its connection parameters are complete. If your browser works but other apps don't, check whether those apps follow the system proxy instead of repeatedly reinstalling the client. If you need Tun mode, handle its permissions, virtual network interface, and routing conflicts separately.
macOS client
v2rayN · Choose a DMG for your chip
v2rayN
7.24.1
Open About This Mac from the system menu. Choose Apple Silicon if it shows an Apple M-series chip; choose Intel if it lists an Intel processor.
x64 architecture for devices with Intel processors.
After opening the DMG, move the client to the Applications folder and launch it from there rather than running it from the disk image.
macOS requirements and permissions
Check
What to look for
Before installing
Chip type
Apple Silicon uses arm64; Intel uses x64
Check the chip or processor listed in About This Mac
macOS version
Check the app and system installer prompts for the required macOS version
Check for system updates; chip type alone doesn't determine compatibility
App location
Launch from the Applications folder
Eject the disk image after copying the app
Network permissions
Grant permissions as needed for system proxy or Tun mode
Read the system prompt and confirm it matches the action you're taking
Processor architecture and macOS version are separate requirements. Even an Apple Silicon device may not run the current app if its OS is too old. Prefer the package that matches your chip to avoid extra compatibility translation, but don't ignore system version limits or permission prompts just because the device is new.
On first launch, macOS may ask you to confirm the app's source or grant network-related permissions. Verify the download source and app name, then follow the normal system process. Don't disable system security entirely to get past a single prompt. After installation, configure subscription import, node selection, and routing mode separately. Enabling the system proxy also doesn't guarantee that every app will use the same outbound route.
Android clients
Choose a client, then select arm64 or universal
v2rayNG
Recommended2.2.6
Uses the Xray core and suits Android users who need its protocol support. Most mainstream phones released since 2015 can start with arm64; check the architecture supported by your system.
A fallback if you don't know your device's architecture. Includes components for multiple architectures, so the package is usually larger.
Connections use Android's VPN interface to route selected traffic; you'll need to approve the system prompt the first time.
v2flyNG
Alternative · V2Fly core1.10.31
For users whose existing configuration relies on V2Fly core features. The main differences from v2rayNG are core capabilities and configuration compatibility; don't assume they're interchangeable just because their names are similar.
For installations that need compatibility across multiple architectures; it doesn't mean broader protocol support.
If your configuration uses Xray-specific parameters, check compatibility before switching to a client with the V2Fly core.
Android requirements and installation
Check
What to look for
Before installing
Device architecture
Choose arm64 if arm64-v8a is supported; otherwise, check whether the universal version is compatible
Check the device's system information, not just the processor's advertised specs
macOS version
Use the installer's minimum OS version requirement for the package
For older devices, check for OS updates and app compatibility first
Install permissions
Allow installs from the current download source
Grant permission to the specified source when prompted; revoke it after installation if you like
Running requirements
Requires Android VPN permission; background restrictions may interrupt connections
Check for other VPN apps and battery management settings
A phone having a 64-bit processor doesn't necessarily mean its operating system runs 64-bit apps. If the arm64 package is incompatible, first check the device's system architecture, minimum OS version, and whether the download completed, then consider the universal version. If an update over the existing app fails, check its source, signing, and version before making changes. Don't uninstall it right away—you could lose subscription groups and custom settings that haven't been exported.
The VPN permission prompt on first connection is a normal part of Android routing traffic through the client. Usually, only one app can use the system VPN connection at a time, so disconnect the current client before switching. If the connection drops when the screen locks, check the app's background activity and battery optimization restrictions. This isn't specifically related to whether you installed the universal package.
v2rayNG and v2flyNG are both graphical clients, but that doesn't mean every share link or advanced parameter works in both. A successful import only means the client recognized the format; connection support still depends on the core's support for the protocol, security layer, and transport parameters. If you have a known working configuration, choose a client that meets its requirements rather than switching back and forth to compare interfaces.
Linux client
v2rayN · deb / rpm · x64 and arm64
v2rayN
7.24.1
A desktop graphical client. Choose deb or rpm for your distribution, then check the processor architecture. Most 64-bit Intel and AMD desktop systems use x64.
These downloads are for desktop environments. Using the same package format doesn't guarantee that system libraries and runtime dependencies match across distributions.
Linux requirements and desktop environment
Check
What to look for
Before installing
Package management system
Debian-based systems usually use deb; RPM-based systems usually use rpm
Check your distribution and OS version
Processor architecture
amd64 and x86_64 map to x64; aarch64 maps to arm64
Use system information tools to check the architecture
Desktop environment
Requires an environment that can run desktop apps and their dependencies
Let your package installer check dependencies; don't force it to ignore errors
Proxy behavior
Whether an app uses the desktop system proxy depends on the app itself
After installation, test your browser and target apps separately
When you open the package in a graphical file manager, use your distribution's software installer. If it reports unsatisfied dependencies, check which components or system library versions are missing. Don't assume the package format is at fault or force installation by skipping dependencies. Older distributions may need a system update before you can determine whether the current client will work.
After installation, launch v2rayN from the app menu and import your configuration. Linux desktop environments don't all handle system proxy settings the same way, and some apps have their own proxy settings. If a standard proxy meets your needs, start with that. For Tun mode, check permissions, routing, and existing network services. Set up desktop autostart only after verifying the first connection, to avoid launching multiple instances at startup.
Downloading is only the first step in setting up a client. Connection configuration, proxy mode, and an app's network path are separate parts of the setup and should be checked in order. On desktop with v2rayN or Android with v2rayNG, menus differ, but the steps are the same: import a configuration, select the one you want to use, then verify that traffic is routed as expected.
Start with your connection configuration
A share link describes one connection; a subscription URL retrieves a group of configurations and can be updated later. Copy the full content without adding explanatory text. After importing a subscription, update it to retrieve the entries. If you see a group name but no nodes, check the fetch results.
The system proxy affects apps that honor that setting. Routing rules determine how requests that reach the client are sent out. Choosing global or rule-based mode doesn't automatically change how every app connects to the proxy. When testing, check both the client status and the target app's actual connectivity.
Updating the client, refreshing a subscription, and changing the core are separate operations. A client update changes the interface and app features; a subscription refresh retrieves connection configurations; the core determines which protocols and transport combinations are supported. When a connection fails, identify which layer is involved. Don't blame every issue on the installed version or repeatedly uninstall without a backup.
Before installing over an existing version, note the current install location and back up subscription groups, custom routes, local ports, and any essential settings files. Quit the client and confirm the system proxy has returned to its expected state. After updating, check that your existing configuration loads, then test a known working connection. Remove old files only after confirming your workflow still works.
When moving to another device or switching interface editions, check whether the target client supports importing your backup. Don't assume core-specific fields in custom configurations mean the same thing in every client. Before switching from v2rayNG to v2flyNG, review the protocol and core documentation and confirm your configuration doesn't rely on features the target core lacks.
This page reads a download manifest to update links and version text. If the displayed version temporarily differs from the number in a filename, distinguish the app version field from the package's filename; don't construct another download URL based on the filename. If a package is unavailable, try again later. If you run into compatibility issues after installation, keep the system prompt and check the OS version, processor architecture, and runtime dependencies one by one.
Which v2rayN Windows edition should you choose: Desktop or classic WPF?
For your first install, start with Desktop, which uses a modern cross-platform interface. If you prefer the familiar layout and workflow, choose classic WPF. Both are v2rayN interface editions. Back up your configuration before switching, and don't infer protocol support from the interface name alone.
What's the difference between Apple Silicon and Intel macOS downloads?
The packages target different processor architectures. Open About This Mac from the system menu: choose Apple Silicon if it shows an Apple M-series chip, or Intel if it lists an Intel processor. Prefer the package built for your device's native architecture; don't guess based on screen size or purchase year.
Should I download the arm64 or universal Android version?
Most mainstream phones released since 2015 can start with arm64, but check which architecture the device's OS actually supports. If the architecture is unclear or the arm64 package is incompatible, try the universal version. It includes components for multiple architectures and usually takes up more storage; it doesn't make connections faster.
Can I connect as soon as the client is installed?
The client package doesn't include a usable connection configuration. After installation, import a share link or subscription URL you're authorized to use, select a connection, set a proxy mode, and check that your apps can connect. Subscription URLs may contain credentials; don't share the full URL, QR code, or configuration backup.
What should I keep before updating the client?
Back up subscription groups, custom routing, ports, and relevant settings, and note the current install location. Quit the client and make sure the system proxy has returned to its expected state before updating. Before changing interface editions or moving to another device, check configuration compatibility; don't delete the existing data directory outright.
Should I download a deb or rpm package for Linux?
Choose deb for Debian, Ubuntu, and compatible distributions; choose rpm for Fedora and distributions that use RPM package management. Match the x64 or arm64 architecture too, and let your system's package installer check dependencies. The same package format doesn't guarantee compatibility with every distribution.