Choose v2rayN for desktop and v2rayNG for Android. Select your operating system first, then check the processor architecture and package format.
Free foreverOpen sourceGUI configuration
Before you downloadThe package contains the client application. To connect for the first time, you’ll also need a subscription URL you’re authorized to use or a share link. If you already have a configuration, back it up in your current client first.
A good fit for first-time installs and anyone who wants a consistent interface across desktop platforms. This download is a ZIP archive. Extract it to a dedicated folder, then follow the installer instructions inside.
Keeps the classic Windows desktop layout, making it a familiar choice if you know the older menus. The two editions may place features differently; look for feature names such as “subscription groups” and “system proxy” when following a guide.
In Windows, open Settings → System → About and check your system type. Both downloads on this page are x64 packages, so don’t infer the architecture from your computer’s brand. The current client is best suited to modern 64-bit Windows desktops. Older systems may also need specific frameworks and runtime libraries; a package that extracts successfully is not necessarily compatible.
For a first install, choose a dedicated folder for the client. Don’t launch it from a temporary preview window in an archive utility; this can cause path problems when saving settings, loading components, or upgrading. If Windows asks for a runtime, read the prompt to identify the missing component, then install it using a method approved by your system.
When migrating from an existing version, export your settings and close the old client, including its tray process. Don’t run Desktop and WPF at the same time. If both processes use the same local listening port, the one started later may not be able to provide a proxy endpoint. After importing your settings, select a working entry, enable the system proxy, and test it in a browser. When you finish testing, check that the system proxy has been turned off or restored as needed.
Windows System Requirements and Checks
Check
What to look for
System
Use a Windows 10 or 11 x64 environment where possible. Check the current installer for the exact minimum requirements.
Processor architecture
This page offers x64 packages. Check “System type” in Windows system information before installing.
Runtime
Install any required frameworks or runtime libraries listed by the installer. Don’t dismiss missing-component warnings.
Proxy and permissions
The system proxy and TUN work differently. TUN may require elevated permissions and a virtual network adapter component.
macOS Downloads
Open the Apple menu and choose About This Mac. Select a package based on the “Chip” or “Processor” field.
If About This Mac shows an Apple M-series chip, choose arm64. Using a build that matches your chip can help avoid compatibility issues caused by architecture translation.
Choose this option if About This Mac shows an Intel processor. Don’t guess based on the computer’s purchase date: devices from the same period may use different architectures.
After downloading the DMG, open the disk image and follow the prompt to move the app to the Applications folder. Launch it from there. Don’t run the client from the mounted image long-term; its path will stop working when you eject it. Before opening the app for the first time, double-check that you chose the right build for Apple Silicon or Intel. Architecture mismatches and macOS security warnings are separate issues and should be handled separately.
If macOS blocks the first launch, verify the download source and app identity, then read the relevant notice in System Settings → Privacy & Security. Allow only the specific launch you’ve confirmed; you don’t need to disable system-wide security to install the client. If macOS reports that your system is too old, check the app’s actual compatibility requirements rather than repeatedly downloading a different architecture.
After importing a subscription, use the regular system proxy for your first connection test. It only affects apps that honor the system setting; command-line tools and apps with their own proxy settings may need separate configuration. If you need TUN, read the permission prompts and check whether another network tool is already using the same feature. If access stops working after you switch networks, turn off the proxy, confirm the regular connection works, then restart the client.
macOS System Requirements and Checks
Check
What to look for
Chip type
Choose arm64 for Apple M-series chips and x64 for Intel processors.
System version
Check your version in About This Mac and follow the app’s stated minimum system requirements.
Install location
Use the Applications folder. Don’t run the client long-term from a temporarily mounted disk image.
Network permissions
Grant permissions for the proxy mode you use. Check TUN permissions separately from the regular system proxy.
Android Downloads
Start with v2rayNG. Consider v2flyNG only if you specifically need V2Fly compatibility.
Most mainstream phones released after 2015 can start with arm64, but confirm that the phone runs a 64-bit operating system. A 64-bit-capable processor doesn’t guarantee that the device firmware uses the same architecture.
For devices whose system architecture you can’t confirm yet. The universal package is usually larger. It addresses architecture compatibility, not system version or app-signature requirements.
For 64-bit ARM systems. A good fit if your existing configuration specifically requires V2Fly compatibility. You don’t need to replace a client that’s working just because both belong to the V2Ray ecosystem.
An alternative for devices with different processor architectures. Before choosing it, check that the protocols and features in your subscription are supported by this core. Different cores don’t necessarily support identical features.
When you open the APK, Android may ask you to allow your browser or file manager to install apps. Grant permission to the source you’re actually using; you can revoke it after installation. If you see “App not installed,” check the Android version, available storage, and package architecture, then see whether an app with the same name but a different signature is already installed.
If you already have a configuration, don’t uninstall the app immediately to resolve a signature conflict. First save a restorable backup in the original app, then decide how to migrate. Subscription URLs and share links may contain access credentials, so treat backup files as sensitive. v2rayNG and v2flyNG have similar names but use different cores; after importing, check that the protocol and transport settings are supported.
The first time you connect, Android will show a VPN connection request. This is required for the client to handle your device’s traffic. Confirm the app name before allowing it, and avoid running another app that uses the same VPN connection at the same time. If the connection drops when the screen locks, check battery optimization and background activity restrictions. First verify that the connection works while the app is open, then adjust background settings to make troubleshooting easier.
Android System Requirements and Checks
Check
What to look for
System and architecture
Check the Android version in device settings. arm64 requires a 64-bit ARM system; check the installer for the minimum Android version.
Install permission
Allow the browser or file manager you’re using to install apps. You can revoke this permission after installation.
Connection permission
Approve Android’s VPN connection request on first launch. Don’t run another VPN app at the same time.
Background activity
After confirming the connection works in the foreground, adjust battery optimization, background activity, and auto-start settings as needed.
Linux Downloads
Choose deb or rpm for your distribution, then select x64 or arm64 for your device architecture.
Choose this for systems using the deb package format. Check your processor and system details before installing. The amd64 package name refers to the common x64 desktop architecture and is not limited to one processor brand.
Choose this for systems using the rpm package format. Package format is only the first check; also verify your distribution version and dependencies. Here, aarch64 and arm64 refer to the same 64-bit ARM architecture.
Open your system’s Settings or About page and note the distribution, version, and processor architecture. Download the matching package, open it with your distribution’s software installer, and review the dependency and permission prompts before confirming. This client is intended for graphical desktop environments; being able to download a package doesn’t mean it can run on every minimal system.
If the installer reports missing dependencies, an unsupported version, or an architecture mismatch, stop there. Don’t force the installation or keep converting between package formats. Distributions using the same rpm or deb format may still provide different system libraries. Check that your distribution meets the current build’s requirements before proceeding.
After launch, import a subscription, select an entry, and verify the local proxy endpoint. Linux desktops don’t all handle system proxy settings the same way: a browser may follow the desktop setting or use its own. If only one app can’t connect, check that app’s proxy settings before reinstalling the client. TUN requires additional network permissions, so enable it only after confirming the regular proxy works.
Linux System Requirements and Checks
Check
What to look for
Desktop environment
Requires a graphical desktop environment that can run apps, plus the runtime libraries required by the current build.
Package format
Debian- and Ubuntu-based systems generally use deb; Fedora- and RHEL-based systems generally use rpm.
Architecture
x64 corresponds to amd64 / x86_64; arm64 corresponds to arm64 / aarch64.
Dependencies and permissions
Use the graphical installer to check dependencies. Handle TUN permissions separately from permissions needed to launch the app.
After installation
Set up subscriptions, proxy, and routing in order
After installation, get the connection working before fine-tuning rules. Change one type of setting at a time so you can match logs to what happens.
Add the URL in the client’s subscription manager and update it. If you only have an individual share link, import it from the clipboard. Check that the import succeeded, and don’t share subscription URLs publicly as if they were ordinary web links.
Choose a proxy mode
Select a configuration entry and start the client. On desktop, check the system proxy; on Android, approve the VPN request. Changing the routing mode doesn’t mean a connection has been established.
Adjust routing after testing
Test with a browser first, then configure bypass rules, app-based routing, or TUN. If something goes wrong, undo the setting you just changed and note the specific error in the logs.
Downloads / Upgrades / First Connection
Download FAQs
Architecture, interface, and configuration are separate concerns. Identify where you’re stuck, then choose the relevant fix.
Do I need a subscription after downloading the client?
You’ll need a subscription URL you’re authorized to use or an individual share link. The client reads your configuration and handles connections; the installer does not include a remote service you can use on its own. Subscription URLs often contain access credentials, so don’t include them in public screenshots, chat messages, or troubleshooting logs.
Which should I choose: the Windows Desktop or classic WPF edition?
For a first install, try the Desktop edition with its next-generation cross-platform interface. If you prefer the classic Windows layout, choose the stable WPF edition. Both manage connections and subscriptions. Back up your settings before switching, and run only one edition at a time to avoid port conflicts.
What’s the difference between the Android arm64 and universal versions?
The arm64 package is for 64-bit ARM systems. Most mainstream phones released after 2015 can start with this option, but check your device’s actual system architecture. The universal package includes files for multiple architectures and is usually larger. If installation reports an incompatibility, check the system architecture before trying the universal package.
How can I keep my subscriptions and routing settings when upgrading?
Use the client’s backup or export feature to save subscription groups, routing presets, and custom settings, then exit the old client. Upgrade using the same installation method where possible. Android updates also require a matching app signature. If you encounter a signature conflict, don’t uninstall immediately; first make sure your configuration is backed up.
Why won’t websites open through the proxy after installation?
Installing the client doesn’t mean the configuration is active. Import a subscription and select a working entry, then start the client and check the system proxy or VPN permission. The system proxy only affects apps that honor it. If the problem persists, check the logs for port conflicts, DNS issues, or handshake errors, one at a time. Avoid changing multiple settings at once.
Should I choose deb or rpm for Linux?
Start with your distribution’s package system: Debian- and Ubuntu-based systems generally use deb; Fedora- and RHEL-based systems generally use rpm. Then check whether your processor is x64 or arm64. A matching package format doesn’t guarantee that all dependencies are available. If the installer reports a missing library, check your distribution version and package dependencies rather than forcing the installation.