Choose v2rayN for desktop and v2rayNG for Android. Select your operating system first, then match the processor architecture. Subscriptions and server configurations must be imported separately.
Switching platforms preserves the page anchor, so you can bookmark a specific download. Button labels show the architecture or interface edition; double-check before downloading.
v2rayN
Recommended
Windows · x647.24.1
Desktop is the next-generation cross-platform UI; WPF retains the classic, stable interface. For a new installation, start with Desktop. If you prefer the original menu layout, choose WPF.
This download is a ZIP archive. Extract it to a separate folder, then run the installer inside. Don’t launch it from the archive preview.
Windows requirements and installation
Check
What to look for
Processor
Both downloads on this page are x64 packages. Check your system type under Settings → System → About.
Windows version
Windows 10 or 11 with ongoing support is recommended. Check the package notes for specific compatibility details.
Runtime dependencies
If startup reports that .NET Desktop Runtime is missing, install the required runtime for the matching architecture.
First launch
Administrator privileges are usually not needed for standard proxy settings. Features such as TUN may require elevated permissions.
The main differences are the interface technology and layout, not the proxy protocols. Don’t rebuild all your server settings just because you’ve switched interfaces. Back up first, then check which configuration formats the new version can import.
v2rayN
macOS · DMG7.24.1
Open About This Mac from the Apple menu. If it shows an Apple chip, choose Apple Silicon; if it shows an Intel processor, choose Intel. Downloading the native package for your chip is simpler than trying the wrong one first.
After opening the DMG, move the app to Applications before launching it. Don’t use the mounted disk image as a permanent location for running the app.
macOS requirements and installation
Check
What to look for
Apple chip
M-series chips use arm64. Choose the Apple Silicon package.
Intel chip
Choose the x64 DMG. Don’t install the arm64 package.
OS compatibility
Check the minimum OS version in the current release notes. Current packages may not run on older systems.
Permissions
Follow system authorization prompts when enabling the system proxy or TUN, as required by the features you use.
System proxy settings and in-app proxy settings are separate. If your browser has an extension that manages proxies, check that it isn’t overriding system settings. Note your current settings before making changes so you can restore them later.
v2rayNG
Recommended
Android · Xray core2.2.6
A good starting point for typical Android setups. Before using settings such as VLESS or REALITY, check that the current core supports the specific options in your share link.
Most mainstream phones released after 2015 use arm64. Consider the universal version if your device doesn’t support 64-bit apps or you’re unsure of its architecture.
v2flyNG
Alternative
Android · V2Fly core1.10.31
For users with existing V2Fly configurations or a specific need for this core. Don’t assume Xray-specific settings will work as-is; check support for the protocols and transport options you need.
The universal version supports more architectures and is usually larger. It doesn’t add features or make the same configuration run faster.
Android requirements and installation
Check
What to look for
App architecture
arm64 is for ARM devices that support 64-bit apps. A 64-bit processor doesn’t necessarily mean the system allows 64-bit apps.
Windows version
Check the minimum Android version for the package you selected. The universal version can’t bypass the minimum OS requirement.
Install permission
Allow the browser or file manager you use to open the APK to install apps for this installation. You can revoke the permission afterward.
Connection authorization
The first connection requires system VPN authorization. Another VPN app may already be using the VPN connection slot.
Background activity
If the connection drops when the screen locks, check battery optimization and background activity restrictions. There’s no need to loosen every permission upfront.
v2rayN
Linux · Desktop GUI7.24.1
Choose deb for Debian- and Ubuntu-based systems, or rpm for distributions that use RPM packages. Matching the package format is only the first step; also check system libraries and distribution compatibility.
amd64 and x86_64 both refer to the x64 architecture here; aarch64 corresponds to arm64. Differences in package naming don’t indicate different feature editions.
Linux requirements and installation
Check
What to look for
Runtime environment
Requires a graphical desktop session. These downloads are for desktop client use.
Processor
For x64 devices, choose the amd64 / x86_64 package. For 64-bit ARM devices, choose arm64 / aarch64.
Package installation
Open the deb or rpm file with your system’s software installer. The package manager will handle dependencies and keep an installation record.
System libraries
Check the dependencies for the current package. The distribution tag in an RPM filename doesn’t mean it works on every RPM-based system.
If installation succeeds but the app won’t launch, check its startup logs and the package manager’s messages. Install missing dependencies using your distribution’s software tools; don’t copy library files from another system.
AFTER INSTALLATION
After installation: import, select, verify
Downloading installs the app; connecting also depends on configuration and your device’s proxy settings. Work through these steps separately to find problems more easily.
Back up before updating or changing editions
If you already use a client, note your subscription groups, update intervals, system proxy mode, routing rules, and custom DNS settings. A full client export is different from a single share link: the link often contains only the connection details for one profile, not your local routing rules or preferences. Keep backups somewhere you control, and don’t upload files containing subscription URLs to public storage.
Before updating, exit the old app and make sure no background process is still running. After installation, open About to confirm the version, then check that your configuration is intact. If you keep both Desktop and WPF, don’t let them use the same local listening port at the same time. Also avoid having both instances modify the same configuration directory until you’ve checked how they handle data.
Import subscriptions and share links
On desktop, start from the subscription group or clipboard import option. On Android, choose the appropriate method from Add configuration. A subscription URL updates a group of configurations; a share link usually adds a single configuration. Add each in the right place, then update the subscription to retrieve the configuration list. If no configurations appear, check that the URL is complete and current, and that the client supports the returned format.
A client can’t fill in every setting based on a protocol name alone. VLESS, VMess, and Trojan require matching address, port, identity, transport, and security settings; REALITY also requires additional parameters to match. If you see an unsupported field after importing, check which core the client uses rather than repeatedly deleting and reinstalling it. See the v2rayN and v2rayNG setup guide for steps.
Start connection checks with one configuration
Select one configuration, start the connection, and check the system proxy or Android VPN status. Test with an app that explicitly follows proxy settings, and don’t enable multiple proxy management tools at once. A node speed test reflects only its specific test conditions; it can’t replace checking web access, DNS resolution, and the target app. If a test fails, check what it measures before assuming you downloaded the wrong package.
If you can’t open webpages after connecting, check the local port, system proxy, device time, routing, and DNS in that order. Redact identity details and subscription URLs from logs before sharing them. For protocol and core differences, see the protocol guide. For common symptoms, start with the FAQ rather than switching clients repeatedly over a single setting.
Download and installation FAQs
First identify whether the issue involves package format, architecture, system dependencies, or configuration before choosing what to try next.
Should I choose the Desktop or classic WPF edition for Windows?
For a fresh installation, start with Desktop, which uses a next-generation cross-platform interface. If you prefer the classic window and menu layout, choose WPF. Both editions manage proxy configurations, but their interfaces and runtime dependencies differ. Back up subscription groups, routing rules, and custom settings before switching.
Should I download the arm64 or universal version for Android?
Most mainstream phones released after 2015 use arm64, but check which app architectures your device actually supports. If you’re unsure, choose the universal version. If Android reports that the package can’t be parsed or is incompatible, also check the OS version and whether the download completed; changing architectures alone may not fix the issue.
Can I use v2rayNG and v2flyNG configurations interchangeably?
Similar client names don’t guarantee full configuration compatibility. v2rayNG uses the Xray core, while v2flyNG uses the V2Fly core; support for protocols, transports, and security settings varies. For settings such as REALITY, check that the target core supports them before importing and reviewing the configuration.
Why is the configuration list still empty after installation?
The client package contains the app, not server configurations. Import an existing subscription URL or share link, update the subscription, and then select a configuration. Subscription URLs are sensitive—don’t include them in public screenshots. See the setup guide on this site for import steps.
Do I need to uninstall the old version before updating the client?
Usually, exit the old app and back up your configuration, then follow the installer or system package manager’s update process. Uninstalling first is not usually necessary. Android updates require a matching app signature. If signatures conflict, export your configuration and verify the app’s source first; uninstalling may erase local settings.
The version shown on the download page doesn’t match the filename. Which should I trust?
The displayed version comes from the app-level version field, while each download points to a platform-specific package field. These may be updated at different times. Check the release notes for the specific download and the version shown in the app’s About page after installation. Don’t try to find a package by changing the version number in its URL.