Choose v2rayN for desktop; start with v2rayNG on Android. Check your operating system first, then choose the processor architecture and package format.
01 Operating system02 Processor architecture03 Package format
Downloads for four platformsChoose a client for your system
Use the buttons below to go straight to the relevant package. These free GUI clients manage configuration and connections; after installation, import a subscription or node details you're authorized to use. Use the system requirements table to choose a package. Actual requirements vary by client release.
The classic, stable edition with the Windows WPF interface. Choose it if you prefer the original menu layout and workflow.
Both downloads are v2rayN, not different proxy protocols. Choose an interface based on your preferences, then check that it supports the features you need. The locations of system proxy, routing and subscription controls may change between releases. Don't overwrite another edition's program folder with existing settings. Export or back them up first, then check that the new edition can read them correctly.
Windows package selection and installation prep
Go to Settings → System → About and check System type to confirm you're using x64. Both Windows packages on this page are x64; your computer's brand alone doesn't determine compatibility. OS bitness, processor architecture and app runtime are separate requirements. An older system running a historical release may not support the current package. If the installer reports a missing runtime component, follow the instructions for that release.
The download is a ZIP archive. Extract it to a local folder, then review the installer and instructions inside. Don't run the app from the archive preview. Quit the old client from the system tray before upgrading; a process still running in the background may prevent installation. Save your existing settings first to avoid mistaking a blank configuration for a successful upgrade.
After launch, import your subscription, refresh the list and select a node. Then choose whether to enable the system proxy or TUN mode. Launching the client alone doesn't route all apps through it: the system proxy mainly affects apps that follow system proxy settings, while TUN uses a virtual network interface and may require additional permissions. For your first test, use one routing method. Once the connection works, adjust routing and DNS; changing several settings at once makes troubleshooting harder.
Check
Package on this page
Before installing
Processor and system
x64
Confirm a 64-bit environment under System type
File format
ZIP archive with installer
Extract after download and follow the package instructions
System and runtime components
Depends on the release
Check compatibility and dependencies as prompted by the installer
Proxy permissions
System proxy / TUN
Grant TUN permissions as prompted; don't let multiple clients control traffic at once
For Intel processors. Choose this download if About This Mac lists an Intel processor.
Both DMG files serve the same purpose; they differ in processor architecture. Don't choose based on screen size, purchase year or appearance, and there's no need to prefer a package for another architecture just because it seems more universal. The native architecture is the straightforward choice. If the app won't open or reports incompatibility, check the chip and macOS version rather than repeatedly switching subscriptions.
Check your macOS chip and launch the app for the first time
Open the Apple menu and choose About This Mac. Check the Chip or Processor field: choose arm64 for Apple Silicon and x64 for Intel. This determines whether the app can run on your Mac; it has nothing to do with whether your subscription uses VMess, VLESS or Trojan. System requirements change with each release, so a specific version number here isn't a compatibility guarantee for future packages.
Open the downloaded DMG and follow the instructions in the disk image to move the app to Applications. Launch it from there, then eject the disk image to avoid accidentally opening an outdated copy later. If macOS displays a security alert, check the reason and app source in System Settings, then follow the steps provided. Don't disable system security entirely just to open one app.
You may see permission requests when setting up the system proxy or TUN for the first time. Make sure the request comes from the client you're configuring, then grant only the permissions needed. If another proxy app is installed, pause its traffic-handling features first. If your browser works but other apps don't, check whether those apps follow the system proxy; switching to a package for another chip won't fix that.
When moving from Windows, compatible subscriptions and node details may be reusable, but don't copy over local paths, startup items or network interface settings. Restore the node list first, then check routing and DNS. Review desktop-specific settings one by one. Test the connection before enabling launch at login, so unverified settings aren't carried into every session.
Check
Choose
How to check
Apple Silicon
arm64 DMG
About This Mac shows an Apple M-series chip
Intel
x64 DMG
About This Mac shows an Intel processor
System compatibility
Check the specific release
Check the macOS version and any launch alerts
Installation and permissions
Applications folder
Follow macOS prompts for first launch and network access
Supports multiple architectures. Try this package if you don't know your phone's architecture or the arm64 package reports an incompatibility.
v2rayNG is an Android GUI client for managing nodes, subscriptions and routing, and uses the Xray core. If your configuration uses features such as VLESS or REALITY, make sure the current client version supports the specific combination provided by your server. The client name, proxy protocol and transport security layer are different things; installing an Xray-based client doesn't guarantee that every configuration will work.
An alternative if you're unsure of the architecture. A universal package doesn't provide protocol features that are specific to another core.
v2flyNG uses the V2Fly core and is suited to users who specifically need the V2Fly ecosystem. Its interface may resemble v2rayNG, but that doesn't mean every configuration field is the same. Before migrating, check the protocol, transport and security settings. In particular, don't import a configuration that depends on Xray-specific features and then assume an installation package architecture issue caused the failure.
Android install permissions and VPN access
After downloading the APK, Android may ask you to allow your browser or file manager to install apps. Enable this permission only for the source you're using, and revoke it afterward if you prefer. If the installer reports a parsing error, first make sure the download is complete, then check your Android version and whether the file is compatible with your device. “Not enough storage,” “conflicts with an existing app” and “unsupported architecture” are different issues; follow the relevant prompt for each.
Packages for the same client from different release channels may use different signatures. If you see a signature conflict, don't uninstall the existing app right away. Export your subscription groups, manually added nodes and personal settings first, and make sure you can access the backup. Uninstalling usually removes app data; remembering the subscription URL alone won't restore custom routing or per-app lists.
When you connect for the first time, Android displays a VPN permission prompt. VpnService is the system's traffic-routing interface; it doesn't mean the client will generate server details for you. After granting permission, you'll still need a valid node and a correctly configured connection. Android generally allows only one active VPN service at a time. Stop any other app using the interface before testing this client.
If the connection drops when the screen locks, check battery optimization, background activity and auto-start restrictions. You can allow the client you're using to run in the background as needed; there's no need to disable battery saving for every app. Check per-app proxy settings separately: an allowlist generally routes only selected apps, while a blocklist generally excludes them. Follow the descriptions in the app, as the exact behavior may vary. Choosing the wrong list type can keep apps from using the intended outbound route.
Check
Suggested choice
Notes
Most newer phones
Start with arm64
Both the processor and system must support the required runtime
Architecture unknown
Universal
Still subject to system version and app compatibility
Core requirements
v2rayNG / v2flyNG
Check the feature sets supported by Xray and V2Fly separately
Permissions
VPN access and background activity
Install permission and VPN permission are separate steps
On Linux, the package format and architecture must both match. In filenames, amd64 and x86_64 usually mean x64; arm64 and aarch64 mean ARM64. deb and rpm are different package formats, not interface editions, and changing a file extension won't convert one to the other. v2rayN here is for desktop environments. For servers or routers, see the protocol guides and related technical articles.
Check Linux distributions and dependencies
First check your distribution and processor architecture in system information, then find out which installer or package manager your system uses. Debian and Ubuntu-based systems typically use deb; distributions that use rpm packages typically use rpm. The same package format doesn't guarantee compatibility across distributions. The rpm filename on this page identifies its target distribution, so check system libraries and package dependencies before installing. A matching package format alone doesn't confirm compatibility.
Open the downloaded package with your distribution's graphical installer to review dependencies, install location and any errors. If dependencies are missing, first confirm that the package supports your system version instead of forcing the installation while ignoring all dependencies. After installation, launch v2rayN from the app menu. Installing the package alone doesn't confirm that the system proxy or TUN is working.
Desktop environments can handle system proxy settings differently, and some apps use only their own proxy configuration. If some apps connect and others don't, first distinguish a client connection failure from an app that isn't being routed. TUN uses network interfaces and routes and may require permissions, so follow the client's instructions. Avoid running the entire GUI client with elevated privileges just to skip a permission step.
Before upgrading, save your settings and exit the old process, then install the new package using the same package management method. Mixing installation sources can leave the app menu pointing to an old copy or make separate configuration directories look like the same data. After upgrading, check which app actually launches and test a node before restoring launch-at-login and other automation settings.
Check
Download
Before installing
x64 desktop
amd64 deb / x86_64 rpm
Check the package format and distribution dependencies
ARM64 desktop
arm64 deb / aarch64 rpm
Confirm you're running a 64-bit ARM system
Graphics environment
Desktop session
Required graphics components are available
Proxy and TUN
Enable in the client settings
Check the traffic-handling mode and network permissions
Check installation and configuration separatelyFrom app launch to node connection
During installation, check system compatibility, architecture, dependencies and permissions. If the app won't launch, resolve these basics first; changing nodes repeatedly won't fix a launch problem. Once the client opens, check subscription import, node selection and traffic routing. Testing each stage separately makes the cause easier to find.
Then check your connection settings
Subscription URLs and node details may contain personal credentials. Don't share them in screenshots or public Q&A posts. After importing, check the protocol, transport and security settings rather than relying on a node name to determine compatibility. If you get a connection error, record a redacted version of the message and see the relevant guidance in the FAQ.
Which should you choose: the Windows Desktop or WPF edition?
For a first install, start with the Desktop edition, which uses a newer cross-platform interface. Choose WPF if you prefer the classic layout and want to keep familiar workflows. Both are v2rayN GUI clients. Back up your subscription groups and personal settings before switching, and avoid having both clients control the system proxy at the same time.
How do I check my processor architecture and package format?
On Windows, check System type in Settings and confirm x64. On macOS, check About This Mac: choose arm64 for Apple Silicon or x64 for Intel. Most newer Android phones can start with arm64; if unsure, try the universal build. On Linux, check both the processor architecture and your distribution's package manager, then choose deb or rpm accordingly.
What if the Android arm64 package won't install?
Make sure the download is complete, your system allows installs from that source, and you have enough storage. If the package is still incompatible, try the universal build. A 64-bit processor does not guarantee that the system provides a 64-bit app environment. If you see a signature conflict, back up your existing settings before deciding whether to switch sources; don't delete the client you're currently using.
Why does the displayed version differ from the number in the package filename?
The displayed version comes from the manifest's version field, while the download link uses the file field for that platform. These are separate values and may differ during a release transition. Don't edit the number in a download URL or guess the filename from the displayed version. Check the package the download link actually points to and the app's version after installation.
What else do I need to connect after installing the client?
The client manages configuration; its installer does not include a usable subscription or server connection details. Get a subscription URL or node configuration you're authorized to use, import and update it, then select a node. Enable the system proxy or TUN mode if needed. On Android, approve the system VPN prompt when connecting for the first time. See the quick-start guide for the full setup.
What should I back up before upgrading?
Save your subscription groups, manually added nodes, custom routing, DNS settings and other personal options. Prefer the client's export or backup feature, and store files containing connection details securely. Exit the running client before upgrading. Afterward, check that your settings are still there before restoring the system proxy or TUN mode.