For desktop, choose v2rayN; for Android, start with v2rayNG. Check your operating system first, then your processor architecture.
All three clients are free and open source. The installers install the client; you’ll need to get a subscription URL or server configuration separately.
Your platform choice is saved in the URL, so you can also share a link that opens directly to the relevant platform.
Windows client
v2rayN
Recommended7.24.1
Desktop uses a newer cross-platform UI. The classic WPF edition keeps the familiar Windows interface and offers a tried-and-tested experience. For a first install, start with Desktop; choose WPF if you already prefer its interface.
Once the download finishes, extract the ZIP and run the installer inside. Don’t launch it from the archive preview.
Windows requirements and installation
Check
Requirement
Where to check
Operating system and architecture
This page offers Windows x64 packages. You’ll need a 64-bit version of Windows that supports the installer.
Go to Settings → System → About to check your system type and Windows version.
Runtime dependencies
Follow the installer’s compatibility checks for the minimum Windows version and runtime requirements.
If the installer reports a missing component, note its name before troubleshooting. Don’t repeatedly reinstall over the existing installation.
Write access and permissions
The installation folder must be writable. Changing the system proxy or using TUN may require additional permissions.
Start with a standard user account. If prompted for elevated permissions, check what the installer is requesting before approving.
Open the main window and find the subscription group options. When adding a group, enter a recognizable name, paste the full subscription URL, and save it. Then update the subscription and confirm the server configurations have been loaded. Adding the URL doesn’t mean the update succeeded; check the result in the interface or logs.
After choosing a server, set the system proxy to “Auto-configure system proxy.” This tells apps that follow the system proxy to send connections through the client; it doesn’t route every app automatically. Test with a browser first. If a specific app isn’t working, check its proxy settings or look into TUN mode.
Before switching from WPF to Desktop, back up your subscriptions and custom rules. Menus may be in different places, so don’t assume your data has migrated just because a button has the same name. Close one edition before starting the other to avoid port conflicts or one instance overwriting the system proxy set by the other.
macOS client
v2rayN
7.24.1
Choose arm64 for Apple Silicon and x64 for Intel processors. Open the Apple menu and select “About This Mac” to see whether it lists a chip name or an Intel processor, then download the matching installer.
Open the DMG and follow the prompts to install the client in Applications. Then launch it from there.
macOS requirements and installation
Check
Requirement
Where to check
Processor architecture
Apple Silicon uses arm64; Intel uses x64.
Apple menu → About This Mac.
Operating system version
Your macOS version must meet the installer’s requirements. On older systems, check the installation and launch prompts carefully.
Check your macOS version in About This Mac, and keep the full text of any compatibility warning.
Network permissions
Setting the system proxy and enabling TUN may require separate permissions.
System Settings → Privacy & Security, and network-related settings.
If macOS blocks the app on first launch, check its source and installation location, then look in Privacy & Security for an option to allow it. Don’t disable system-wide security just to run one app. If the warning mentions a damaged file, incompatible architecture, or an outdated OS, troubleshoot that specific issue rather than treating every warning as a permissions problem.
After importing a subscription, update it and choose a server. The system proxy controls whether apps pass traffic to the client; routing determines how incoming connections are handled. If a browser works but a desktop app doesn’t, first check whether that app uses the system proxy.
You can clear the system proxy set by the client before quitting. If network access is affected after the app exits unexpectedly, check whether a local proxy address is still set in network settings. Restarting the client or restoring your previous proxy settings is usually more useful than reinstalling repeatedly.
Android clients
v2rayNG
Recommended2.2.6
Uses the Xray core and is a good fit when your configuration requires Xray. Most mainstream phones released after 2015 can use arm64. If you’re unsure about your device’s architecture, try Universal and make sure Android allows apps of that version to be installed.
The version shown in the package metadata may temporarily differ from the version in the filename. Don’t rename the file to guess or change the installed version; rely on the version recognized by the installer.
v2flyNG
Alternative · V2Fly core1.10.31
For users with existing V2Fly configuration requirements. It uses a different core from v2rayNG, so check protocol, transport, and security settings before choosing. The two apps aren’t interchangeable just because their names are similar.
If you already have a working configuration, keep the current app and back up your settings before testing whether the alternative client is compatible.
Android requirements and installation
Check
Requirement
Where to check
Processor and operating system
arm64 requires Android to support the corresponding 64-bit app. A 64-bit-capable processor doesn’t guarantee that the installed OS supports it.
Check your device specifications and system information. If you’re unsure, try Universal.
Installation requirements
Your Android version must meet the APK requirements, and you’ll need enough free storage.
Go to Settings → About phone. If installation fails, read the full error message.
Installation and connection permissions
Permission to install apps from a source is separate from permission to establish a VPN connection.
Grant install permission only to the browser or file manager you’re using, and approve the system prompt when connecting.
If Android asks you to allow app installs from this source, grant permission only to the download app or file manager you’re currently using. You can revoke it after installation. If the app says “Not installed,” check more than just the architecture: verify your OS version, look for a signature conflict with an existing app, check whether you’re trying to downgrade, and make sure you have enough storage.
Open the client, add a subscription group, update the configuration, choose a server, and tap Connect. The first time you connect, Android will usually ask for VPN permission. This allows the client to create a local network tunnel; it doesn’t mean the subscription is valid or confirm that the server is reachable.
If Android stops the connection after a while, check battery optimization, background activity, and auto-start settings. Menu names vary by manufacturer, so follow the options shown on your device. Multiple apps that need the VPN tunnel can conflict; when troubleshooting, leave only one connected to avoid mistaking a tunnel conflict for an invalid subscription.
Linux client
v2rayN
7.24.1
Choose deb or rpm based on your distribution, then select x64 or arm64 for your machine. Ubuntu and Debian-based distributions usually use deb. Choose rpm for distributions that use RPM package management, and make sure the package dependencies are compatible with your release.
This page offers a graphical client. You’ll need a desktop session. The same package format doesn’t guarantee that every distribution has the required dependencies.
Linux requirements and installation
Check
Requirement
Where to check
Package format
Use the deb or rpm package supported by your distribution.
Check your distribution’s software center, system documentation, or package manager.
CPU architecture
amd64 / x86_64 corresponds to x64; aarch64 usually corresponds to arm64.
Check the processor architecture in system information. Don’t rely on the device brand alone.
Desktop and dependencies
Requires a graphical desktop and the runtime dependencies specified by the package.
Check the installer’s dependency checks and any startup errors. Don’t force installation while required dependencies are missing.
Proxy permissions
Desktop proxy settings and permissions for the TUN network device are handled separately.
Check your desktop environment’s network settings and any permission requests from the client.
After downloading, open the package with your distribution’s installer. Review the dependencies and changes before confirming installation. If dependencies can’t be met, first check whether your distribution is supported. Changing the file extension won’t convert rpm to deb, and bypassing the package manager to overwrite system files is not recommended.
After the first launch, import your subscription, update the configuration, and choose a server. System proxy behavior on Linux depends on the desktop environment and the app. Some terminal tools and standalone network utilities don’t automatically use desktop proxy settings. Verify separately that the client is running and that the target app is using the proxy.
Before enabling TUN, confirm the server works in regular proxy mode, then address permissions for network devices and routing. This helps separate server configuration issues from local permission problems. If the system tray icon isn’t visible, check whether your desktop environment supports tray icons; its absence doesn’t mean the client failed to start.
02 / Installer filenames, explained
Architecture, package format, and interface edition
Each part of a filename answers a different question. The package format determines how to install it; the architecture determines whether it can run on your device.
Desktop identifies the interface edition; x64 identifies the processor architecture. They aren’t interchangeable. arm64, arm64-v8a, and aarch64 all refer to 64-bit ARM architecture, but use naming conventions from different platforms.
The file extension determines how to install the package. DMG is for macOS, APK is for Android, and deb and rpm are handled by Linux package managers. Don’t choose an installer based only on the number in its filename.
Not sure which architecture you need? Check system information
A product name doesn’t tell you everything about its runtime environment. Computers in the same product line may use different processors, and some devices have 64-bit hardware but an OS that can’t run the corresponding apps. Check the processor and operating system in system information before choosing a package. That’s more likely to solve the problem than downloading several versions at random.
Keep the full installer warning if it reports incompatibility. Architecture mismatches, outdated OS versions, missing runtime dependencies, and app signature conflicts each require a different fix. Universal packages support multiple architectures, but they don’t add features missing from older systems or prevent every installation error.
03 / What to do after installation
Import your subscription, then choose how to connect
Downloading installs the program. Subscriptions, proxy mode, and routing are three separate things to configure afterward.
Get the full subscription URL
A subscription URL retrieves a set of server configurations and is usually provided by your service provider. When adding a group, include all URL parameters, avoid trailing spaces, and don’t mistake a browser’s information page for the subscription endpoint. The URL may contain access credentials, so don’t share it in public screenshots or discussions.
Update the configuration and choose a server
After saving the group, update it and confirm the configurations loaded successfully. If the update fails, identify whether the issue is reaching the URL, parsing its contents, or connecting to a server. Check connection settings only after the configuration imports successfully; reinstalling the client won’t fix an expired URL or an unsupported subscription format.
Set the proxy and test your apps
On desktop, set the system proxy. On Android, grant VPN connection permission when prompted. Then test with the app you actually want to use. The system proxy sends connections to the client; routing decides whether those connections use the proxy or go direct. Start with the default rules, confirm the connection works, then add custom routing rules.
For setup steps, see Getting Started. For permissions, desktop environments, and platform-specific issues, see the all-platform guide. If you come across an unfamiliar protocol or setting, check the glossary before changing any parameters.
04 / Download FAQs
Installer and update issues
First identify whether the problem is with downloading, installation, or configuration, then troubleshoot that step.
What do I need after installing a client?
You’ll need a valid subscription URL or an individual server configuration. The client reads and runs configurations; the installer itself does not include a server. After importing a subscription, update the configuration, choose a server, then set the system proxy or connection mode.
Which should I choose: v2rayN Desktop or classic WPF?
If this is your first time using v2rayN, start with Desktop, which has a newer cross-platform interface. Choose classic WPF if you prefer the familiar interface or need compatibility with it. Both editions require you to import your own configuration. Back up your settings before switching, and don’t let both editions manage the system proxy at the same time.
What’s the difference between Android arm64 and Universal?
arm64 is for 64-bit ARM devices. Most mainstream phones released after 2015 are good candidates, but make sure the OS supports 64-bit apps. Universal includes multiple processor architectures and is a good choice if you’re unsure which one your device uses. If installation fails, also check the OS version, available storage, and installation permissions.
Can I switch directly between v2rayNG and v2flyNG?
Don’t assume they’re compatible based on their names alone. v2rayNG uses the Xray core, while v2flyNG uses the V2Fly core; support for protocols, transports, and security settings may differ. Check your server’s requirements and confirm the target client can parse your subscription. Back up your existing configuration before switching.
Does updating the client also update my subscription?
Client updates and subscription updates are separate. A client update replaces the application; a subscription update fetches configuration from your provider again. After updating the app, check your subscription group, auto-update settings, and last update time. If the server list hasn’t changed, update the subscription manually and check the result.
What should I do if a download button doesn’t work or a download stops?
Check your browser’s downloads list and save location, then check your network connection, available storage, and any browser warnings. Reload this page and try again with the same platform and architecture. Don’t change the file extension to force an incomplete download to install, or keep switching to unrelated client versions.