Choose your operating system, then select the processor architecture.
Use v2rayN on desktop and v2rayNG on Android. Choose v2flyNG if you already rely on V2Fly configurations. Installers don't include subscriptions or nodes; after installing, import your configuration and set how traffic is routed.
For Windows x64. Check System type under Settings → System → About. On ARM devices, verify x64 emulation and dependency compatibility separately.
Runtime dependencies
Install any required .NET runtime components as prompted by the installer. Having the SDK installed doesn't guarantee the desktop runtime is available.
Files and permissions
Extract the files to a writable folder before installing. The system proxy is usually sufficient for everyday use; TUN drivers or network settings may require administrator permission.
Choosing between Desktop and WPF
Both downloads are v2rayN, not separate subscription services. Desktop's main difference is its next-generation cross-platform interface; classic WPF keeps the traditional Windows workflow. Choose based on your preferences and compatibility needs—not on expected node speed. The protocol, remote server, and local network are what influence connection performance.
Before switching editions, save your subscription URLs and export any custom routing rules. Exit the current client and make sure its tray process has stopped before opening the new one. Don't copy every file from the old folder into the new installation directory, as that can mix outdated settings or dependencies. On first launch, update your subscriptions and select a node, then enable automatic system proxy configuration. If you need to route traffic from apps that ignore the system proxy, review the TUN settings.
v2rayN
macOS7.24.1
Check the chip name under Apple menu → About This Mac. Choose Apple Silicon for an Apple M-series chip, or Intel for an Intel processor.
Apple Silicon
For Macs with Apple M-series chips; uses the ARM64 architecture.
Use the chip or processor shown in About This Mac. Don't choose based on appearance, screen size, or purchase year.
System compatibility
Before installing, confirm your macOS version meets the app's requirements. If macOS reports that your version is too old, check the stated system requirements first.
App location
Open the DMG and copy the app to Applications, then launch it from there. Don't run it from the disk image long-term.
Network permissions
System proxy and TUN are different ways to route traffic. TUN uses a virtual network interface and may require additional system permission.
From installation to your first connection
When the download finishes, open the disk image and follow the prompt to move v2rayN to Applications. Eject the disk image once copying is complete. If macOS blocks the app on first launch, read the specific warning and check the app's source, system compatibility, and download status. If you're sure it's safe, use the system-provided option to allow it to open. Don't disable security checks for your entire Mac just to run one app.
In the client, add a subscription group, enter a subscription URL you're authorized to use, and update it. Select a node, then enable automatic system proxy configuration. This affects only apps that follow macOS proxy settings; it isn't the same as routing all traffic. Developer tools, terminals, and some desktop apps may use their own proxy settings, so configure those separately or use TUN after reviewing its routing and permission requirements.
Before quitting, you can turn off the system proxy, especially when switching to another network tool. If your browser still reports that the proxy server is unavailable after the app exits, check the proxy address in Network settings; reinstalling the client repeatedly won't help. For a full guide to installation and permissions, see the installation and setup guide for all platforms.
v2rayNG
Recommended for AndroidXray core2.2.6
A graphical Android client. If you use configurations with VLESS or REALITY, first confirm that the client supports the specific settings.
arm64
For most mainstream phones released since 2015, this is the recommended build. Make sure the device runs an operating system that supports ARM64.
Choose this if you're unsure of your processor architecture. It includes components for more architectures, but compatibility still depends on your Android version.
For Android users who already need V2Fly configurations. It uses a different core family from v2rayNG; similar interfaces don't mean every protocol setting is interchangeable.
arm64
Best for phones that support ARM64. Before importing, check that the subscription's protocols and transport settings are supported by the current core.
Follow the system prompt to allow app installs from your current browser or file manager. After installation, you can turn off permission for that source.
Device architecture
For most 64-bit ARM phones, choose arm64. Check the architecture on older devices, emulators, and specialized systems before choosing the universal build.
Connection permission
The first time you connect, the app will request VPN permission. Usually, only one app can use the system VPN connection at a time.
Background operation
If the connection drops when the screen locks, check battery optimization, background activity permissions, and your device manufacturer's auto-start restrictions.
Choosing an installer and updating
arm64 and universal builds aren't different feature tiers. The arm64 build includes components for that architecture, while the universal build supports more architectures. The universal build won't improve node quality or bypass the app's minimum system requirements. If the installer reports a parsing error, make sure the download finished and the system version and architecture match, then try again. Replacing your subscription won't fix an installation problem.
Back up your subscriptions and custom settings before updating over an existing installation. The same app name doesn't guarantee the same signing key, and apps from different distribution channels may not install over each other. If you hit a signature conflict, confirm the source before deciding whether to uninstall the old app; uninstalling may delete local settings. v2rayNG and v2flyNG aren't interchangeable skins of the same app, so check protocol support before switching.
After installation, import your subscription, update the node list, tap Connect, and approve the system VPN request. A connected status doesn't mean every app is using the proxy: app-specific routing, bypass lists, and routing rules can change the result. Test with an app that follows the current routing method, and avoid running multiple traffic-capture tools at once.
v2rayN
Linux desktop7.24.1
Choose deb or rpm based on your distribution, then check the processor architecture. The main downloads below are x64; ARM64 builds are listed under each package format.
deb package
For distributions that use deb packages, such as Debian and Ubuntu. The system package installer checks the specific dependencies.
For distributions that use rpm packages. The same package format doesn't guarantee the same dependencies, so check compatibility with your distribution before installing.
This page provides a graphical client for Linux systems that can run desktop apps, not a deployment package for command-line-only servers.
Processor architecture
Choose x64 for common 64-bit Intel and AMD desktops, or arm64 for 64-bit ARM devices.
Package compatibility
Open the deb or rpm file with your distribution's package installer and check that dependencies can be met. Don't ignore dependency errors to force the installation.
Proxy and permissions
Whether the system proxy works depends on how each desktop app handles it. TUN typically uses a virtual network interface and requires additional permissions and setup.
Package formats and desktop proxy settings
deb and rpm are different package formats, not different proxy modes. Check your distribution and processor type in system settings, then choose the matching file. Open the package in your file manager and let the system installer handle dependencies. If it reports incompatible system libraries, keep the error details and check compatibility rather than installing core libraries from another distribution.
After installation, launch v2rayN from the app menu, import your subscription, and update the node list. Linux desktop environments handle system proxy settings differently: some apps use the desktop settings, while others need separate configuration. If your browser connects but another app doesn't, first check how that app reads proxy settings, then consider TUN. Downloading the same installer again won't change how traffic is routed.
Whether a tray icon appears also depends on your desktop environment. If the window opens but there's no tray icon, check whether your desktop supports a system tray before assuming the core hasn't started. For system dependencies, network permissions, and step-by-step installation, see the full guide.
Three setup steps after installation
Downloading installs the app; subscriptions and proxy settings determine whether it can connect.
Get a subscription URL from a service you're authorized to use, create a subscription group in the client, enter the URL, and update it. Adding a group and updating its nodes are separate steps; saving the URL alone won't create selectable nodes. If the list is empty, check the group filter, subscription expiry, and update log. Don't add random configurations to a group you use regularly.
Choose a node and route traffic
Select the node you want, then configure the system proxy or start an Android VPN connection. The system proxy determines which apps send requests to the client; routing rules determine how requests that reach the client are forwarded. These are separate settings. A preset such as “Bypass mainland China” only affects traffic already routed through the client; it doesn't automatically capture traffic from every app.
Test the connection, then configure TUN
First, test the basic connection in a browser and check the client log for configuration or handshake errors. Once the connection works, enable TUN if needed. Don't change DNS, routing, the core, and subscription all at once. Keep a known-working configuration and change one setting at a time to pinpoint the cause of any issue.
Back up settings before updating
Updating the client and updating a subscription are separate tasks. A client update replaces the app and bundled components; a subscription update refreshes the node list. If a node stops working, update the subscription and check the service status first. Check the client version if you suspect an interface or protocol compatibility issue. Reinstalling repeatedly isn't a general fix for network problems.
Before installing over an existing version, save your subscription groups, custom routes, DNS options, and app routing settings. Keep exported files somewhere you control rather than uploading them to a public sharing site. After updating, make sure your settings are intact and test a frequently used node, then restore any extra TUN or local network options.
If something goes wrong, save the error details from the log, then use the FAQ to narrow it down to installation, subscription, or connection issues. If you haven't chosen an Android client yet, the core and protocol details in the client comparison are more useful than comparing installer sizes alone.
Download and installation FAQ
Check installation requirements first, then troubleshoot connection settings.
Which should I choose: the Windows Desktop or classic WPF edition?
For your first install, choose the Desktop edition with its next-generation cross-platform interface. If you prefer the traditional Windows layout, choose the stable classic WPF edition. Both are graphical v2rayN clients. Back up your subscriptions and custom rules before switching, and don't run both editions at once, as they may compete for the same local ports.
Should I download the Apple Silicon or Intel build for my Mac?
Open About This Mac from the Apple menu. If the Chip field shows an Apple M-series chip, choose Apple Silicon. If the Processor field shows Intel, choose the Intel build. Match the installer to your actual chip, not your Mac's size or purchase year.
What's the difference between the Android arm64 and universal builds?
The arm64 package is for 64-bit ARM devices. Most mainstream phones released since 2015 should use it, but confirm that your device supports this architecture. If you can't verify the architecture or the arm64 package is incompatible, try the universal build. It includes components for more architectures, but may not support older Android versions.
Do I need a subscription after installing the client?
You'll need a working subscription URL or node configuration. The installer contains only the client, not server nodes. After installing, import a subscription you're authorized to use, update the group, and select a node. Then configure the system proxy or connect through Android VPN. Subscription URLs may contain credentials, so don't share them publicly.
What should I check if the installer won't download or install?
First check that the operating system, processor architecture, and package format match. Then confirm the download is complete, there's enough disk space, and review any specific permission or dependency errors. Fully extract Windows archives before running the installer. On Linux, use the system package installer to check dependencies. For Android update conflicts, back up your settings and check the app signature and installation source.