For desktop, choose v2rayN; for Android, v2rayNG is the usual choice. Check your operating system first, then confirm the device architecture. Installer format and the protocol used by your configuration are separate things.
A newer cross-platform UI for first-time installs and anyone who wants a consistent workflow across desktop operating systems. After downloading the ZIP, extract all files before running the installer. Don’t launch it from the archive preview.
A stable classic edition with the familiar Windows WPF interface, suited to users who prefer its menus and workflows. The main difference from Desktop is the interface and interaction design—not the proxy protocols. You don’t need to switch editions just to use a particular node type.
Choose either installer. If you want to try the other interface, back up your configuration and quit the running client before switching to avoid conflicts with the system proxy or local listening ports.
Windows requirements and installation checks
Check
What to look for
How to check
System architecture
The available download is an x64 installer
Go to Settings → System → About and check System type.
System and runtime
Must meet the requirements of the selected release and its runtime
If the installer reports missing components, install them as prompted. Check compatibility first on older versions of Windows.
Install location
Use a location your account can access
Keep the extracted folder structure intact; don’t move only the executable.
Configuration
Import a subscription group or share link
After importing, select a server and check your system proxy and routing settings.
After the first launch, check the local listening ports in Settings before enabling the system proxy. Browsers usually follow the system proxy, but some apps use their own network settings and may need a proxy configured separately. Don’t assume that a running client means every app is routed through it.
Before updating an existing installation, quit the old process from the system tray menu. Closing the main window may only minimize the client to the tray, leaving the process and its ports active. If the new client can’t listen on a port, first check for another running instance; there’s no need to change your subscription and routing at the same time.
For Macs with Apple M-series chips; this installer uses the arm64 architecture. Check the Chip field in Apple menu → About This Mac. If it shows an M-series chip, choose the native build rather than the Intel package just to match another computer.
For Macs with Intel processors; this installer uses the x64 architecture. A Mac’s appearance or purchase year is only a clue—check the processor information in About This Mac. Once you’ve confirmed the architecture, make sure your macOS version meets the app’s requirements.
Open the DMG and follow the window prompts to move the app to Applications, then launch it from there. After installation, eject the disk image; you don’t need to keep it mounted for everyday use.
macOS requirements and permissions
Check
What to look for
How to check
Chip
Apple M-series: arm64; Intel: x64
Open Apple menu → About This Mac and check the chip or processor.
macOS version
Must meet the minimum version specified for the current release
A matching chip doesn’t guarantee that a current release will run on an older macOS version.
Installer format
DMG disk image
Copy the app as prompted; don’t run it from the mounted image long-term.
Network settings
Grant permission for required network changes based on how you use the app
After setting up the system proxy for the first time, confirm the settings in macOS Network settings.
If macOS blocks the first launch, verify the download source and app name, then check the specific message under System Settings → Privacy & Security. Don’t disable system security globally just to run one client, and don’t copy terminal commands from unverified sources. An outdated system, mismatched architecture, and launch permissions are different issues—troubleshoot them separately.
After installation, import a subscription and select a server before enabling the proxy mode you need. If your browser can’t connect after switching networks or quitting the client, check whether System Settings still points to a local proxy port. Remove only stale proxy settings; there’s no need to delete all client configuration first.
A good first choice for most mainstream phones released after 2015, provided the system supports arm64-v8a apps. Powered by the Xray core, it suits configurations that require its protocol features. Importing and connecting successfully also depends on the client version matching the server parameters.
Includes multiple architectures for devices with an unknown architecture or a different supported architecture. Universal doesn’t mean lower system requirements or fix every installation error; check the Android version, available storage, and app signing separately.
For devices that support arm64 apps; an alternative for existing V2Fly configurations and workflows. v2fly and Xray don’t have identical features. A similar-looking share link doesn’t guarantee that all security and transport settings can be reused as-is.
For devices with an unknown architecture or another supported environment. When choosing a client, first check which core features your configuration requires, then select the matching package architecture. If the configuration needs an Xray-specific feature, use a compatible client rather than repeatedly switching installers for the same app.
Android requirements and connection permissions
Check
What to look for
How to check
App architecture
arm64 or universal APK
Check the ABI supported by your system, not just the processor model.
System compatibility
Must meet the minimum Android version required by the current APK
If parsing fails, check the Android version, download status, and available storage.
Install permissions
Allow app installs from the selected source when prompted by Android
Grant the required permission only to the browser or file manager you’re using.
Connection permission
Confirm the VPN connection request the first time you connect
Another active VPN app may conflict with the connection.
After installation, import a share link or subscription URL, update it, and select a configuration before connecting. The system VPN prompt authorizes a local traffic entry point; it doesn’t verify the remote server. Once the connection icon appears, test actual access to confirm that routing, DNS, and outbound settings are working.
If the app often disconnects when the screen locks, check battery optimization and background activity settings, and allow background activity if needed. Don’t grant every permission up front. First confirm that background restrictions are the cause, then adjust settings one at a time. Before switching clients, save your subscription URL and any custom configuration you need.
For distributions that use deb as their native package format and meet the package dependencies, such as compatible Debian and Ubuntu releases. The amd64 filename refers to the common x64 architecture and also works on compatible 64-bit Intel PCs; it’s not limited to AMD processors.
For distributions that use RPM packages and meet this package’s dependencies. The current filename includes the el10 build identifier; check your distribution and runtime requirements before installing. An .rpm extension alone doesn’t mean a package works on every RPM-based system.
These are desktop GUI clients. Choose an architecture that matches the environment where the app will run. Check virtual machine architecture separately; don’t assume it matches the host system.
Linux requirements and package formats
Check
What to look for
How to check
Package format
deb or rpm, as supported by your distribution
Use your system’s package installer to handle dependencies whenever possible.
Processor architecture
x64 corresponds to amd64 / x86_64; arm64 corresponds to aarch64
Check the architecture in system information; don’t install packages built for a different architecture.
Desktop environment
A desktop session capable of running graphical apps
Tray and system proxy integration may vary by desktop environment.
Distribution dependencies
Runtime library versions must meet the package requirements
If dependencies are missing, check which ones before proceeding. Don’t force the installation to ignore dependency errors.
Open the package in your file manager and install it with your distribution’s package installer. If the installer reports unmet dependencies, check whether your distribution version matches the package’s build target. Switching package formats usually won’t fix outdated runtime libraries, and mixing software sources from other distributions for a single client isn’t recommended.
Whether apps use the system proxy after installation depends on the desktop environment and each app’s implementation. Test with a browser first, then check whether apps that bypass the system proxy need separate configuration. Before quitting the client, clear any proxy settings you no longer use to avoid sending requests to a local port that’s no longer listening.
Configure after installation
Import a subscription and connect for the first time
First check your operating system and architecture. Once the download is complete, open it using your system’s installation process. On desktop, quit the old client first; on Android, check the existing app’s signing identity and source before updating. New installations and in-place updates may show different prompts. If an error occurs, note its exact wording before deleting any configuration.
02
Import and update a subscription
In the client’s subscription group settings, enter a URL you obtained and are authorized to use, save it, and run an update. The group name helps distinguish sources; the URL is the actual request destination. Subscription URLs may contain access credentials, so redact the full link in screenshots and support requests. Don’t post it publicly.
03
Select a configuration and test it
Select a working server, then set the system proxy on desktop or confirm the VPN prompt on Android. Test actual access and, if needed, check the local port, routing, DNS, and system time in turn. A latency test is only one data point—it can’t replace testing access from the apps you use.
How to choose a client and core
Desktop and Android clients
v2rayN is for Windows, macOS, and Linux desktops, with GUI controls for subscriptions, server selection, and routing. v2rayNG and v2flyNG are for Android. Their interfaces may feel similar, but their core capabilities aren’t interchangeable. Choose based on your device’s operating system first, then the features your existing configuration requires, and finally the architecture and installer format.
When switching between desktop interfaces, don’t overwrite an unfamiliar data directory without checking it. Export your configuration using the client’s built-in tools, note custom routes and local ports, then restore them selectively in the new installation. Keep subscriptions you can fetch again separate from entries you added manually, and save both as needed.
Protocol compatibility goes beyond the name
V2Fly and Xray share technical roots in the Project V ecosystem, but each has developed distinct features. Names such as VMess and VLESS are only part of a configuration; transport, security layers, and extra parameters also affect compatibility. A share link being recognized doesn’t guarantee that the current core supports every field it contains.
If a configuration imports successfully but won’t connect, first compare the server requirements with the client logs instead of cycling through every installer. For details on REALITY, transports, and differences between cores, read the protocol guide. If terms like inbound, outbound, and routing are unfamiliar, start with the glossary.
Installation FAQ
Download and update FAQ
Windows Desktop or classic WPF: which should you choose?
For a first installation, try the Desktop edition with its newer cross-platform interface. If you prefer the classic interface or want to keep familiar workflows, choose the stable WPF edition. Both are v2rayN, and the available installers are x64. Before switching, export your configuration and save your subscription details. Don’t let both clients control the system proxy at the same time.
How do I check whether my Mac has Apple Silicon or an Intel processor?
Open About This Mac from the Apple menu. If the Chip field shows an Apple M-series chip, choose the Apple Silicon installer. If the Processor field shows Intel, choose the Intel installer. Architecture and macOS version are separate requirements, so check that your system meets the release’s requirements before installing.
What’s the difference between Android arm64 and universal builds?
The arm64 package is for devices that support 64-bit ARM apps; most mainstream phones released after 2015 can usually use it. The universal build includes multiple architectures and is intended for devices with an unknown architecture or those requiring another supported architecture. A 64-bit phone processor doesn’t guarantee that the system provides a matching app environment. If you see an architecture incompatibility error, check which ABIs your system supports.
Why can’t I connect right after installing the client?
The client is a configuration and connection tool; the installer does not include a working server or subscription. Import a configuration you obtained and are authorized to use, update the subscription, and select a working entry. Then check the system proxy on desktop or grant VPN connection permission on Android. A successful launch only means the app is running—it doesn’t mean the outbound configuration is ready to use.
Do I need to delete my existing configuration when updating?
Usually, there’s no need to delete your configuration before updating, but migration behavior can vary by release, install location, and signing identity. Before updating, export your configuration, note your subscription groups, routes, and local ports, then fully quit the client. If Android reports a signature mismatch, don’t uninstall immediately. Check the installation source and confirm your backup is complete before choosing how to migrate.
Should I download the deb or rpm package for Linux?
Choose deb for distributions such as Debian and Ubuntu that use deb as their native package format. Choose rpm for distributions that use RPM, and check the distribution version and dependencies. x64 is for common 64-bit Intel or AMD computers; arm64 is for compatible 64-bit ARM environments. Matching package formats don’t guarantee compatibility with every distribution release.