V2Ray Client Downloads Choose an OS and architecture
For desktop, choose v2rayN; for Android, start with v2rayNG. Confirm your operating system first, then choose a package. After installing the client, you’ll still need to import a configuration you’re authorized to use.
01 / Choose your OSUse the tabs below to find your device’s operating system, not your subscription type.
02 / Check the architecturex64 and arm64 depend on your processor and system environment, not just the device brand.
03 / Import a configurationAfter installation, set up your subscription, proxy mode, and routing, then test the connection step by step.
Windows clients
Both downloads are x64 packages. If you’re new, start with Desktop; choose WPF if you’re familiar with its classic interface.
A newer cross-platform UI, ideal for a first install or for users who want a similar workflow across desktop operating systems. The download is a ZIP archive. Extract it completely before running the installer; don’t launch it from the archive preview.
A stable classic edition with a familiar Windows layout, suited to users who want to keep their existing workflow. Its menus may differ from Desktop. When following a guide, look for the matching feature name rather than an exact button location.
There’s no need to run both versions at once. They may use the same local proxy ports, so running them together can cause listener errors or point the system proxy to the wrong client. Quit the current version before switching, back up subscriptions and custom routing, then check the active configuration in the new interface.
This page provides x64 packages. Check the system type under “System Information” in Settings. These aren’t native ARM64 packages.
Runtime
Follow the installer’s compatibility guidance. If it reports a missing runtime component, use the exact component name to find it. Don’t install runtimes from unfamiliar pop-ups.
Install location
Extract the files to a writable folder, then launch the app from its normal program entry. Don’t use a temporary extraction folder as a permanent location for your settings.
Proxy permissions
System proxy and TUN have different permission requirements. Test the standard proxy first, then enable TUN if needed. This makes troubleshooting easier by limiting changes.
A successful installation doesn’t mean every app is using the proxy. Browsers usually follow the system proxy, but some apps have their own network settings. Check them separately.
macOS clients
Open “About This Mac” from the Apple menu and check the “Chip” or “Processor” entry, then choose the matching DMG.
Choose this package if “About This Mac” shows an Apple M-series chip. A native build for your processor avoids extra variables from translation. You don’t need to guess based on screen size or product name.
Choose this package if “About This Mac” shows an Intel processor. The 64 in the package name indicates a 64-bit build; it isn’t a substitute for the native Apple Silicon package. Keep choosing the same architecture when updating.
After opening the DMG, follow the installer’s instructions to move the app to Applications, then launch it from there. If macOS shows a security warning the first time you open it, read the message and check the app’s source and the guidance in System Settings. Don’t disable system protections wholesale just to launch the app.
Apple M-series chips use arm64; Intel processors use x64. Check System Information rather than guessing from the Mac’s purchase year.
OS compatibility
Use the installer’s or first-launch prompt to check compatibility. If the app won’t launch on an older system, confirm the exact macOS version and error message first.
App location
Install the app in Applications and launch it from there. Avoid running it from a mounted disk image, which becomes unavailable after you eject it.
Network permissions
Grant permissions required for system proxy, network extensions, or TUN features. Importing a subscription alone won’t enable every network mode.
When testing a connection, quit other proxy clients first and check proxy settings for the active network service. Settings can differ between services, so check again when switching networks.
Android clients
Choose a client, then an architecture. For most mainstream phones released since 2015, try arm64 first; choose universal if you’re unsure of the architecture.
For phones with a 64-bit ARM environment. This is a good starting point for most recent mainstream devices. If Android can’t install it, check your system architecture and compatibility; a 64-bit-capable processor doesn’t guarantee a 64-bit system environment.
Supports multiple architectures, making it a good fallback if you’re unsure of your device’s environment. It addresses architecture coverage, not subscription validity, connection settings, or OS compatibility.
v2rayNG uses the Xray core and is suited to configurations that rely on its features. On first connection, Android will ask for VPN permission. After granting it, select an active configuration and start the service. If another app is already using the VPN connection, check for a conflict.
Choose this alternative client if your configuration requires the V2Fly core. First confirm that its fields and protocol features are supported, then install the package for your device architecture. Switching cores isn’t a universal fix for connection problems.
An alternative if you’re unsure of your device’s architecture. This is a different build of the same client as the arm64 package; you don’t need to install both. Export any settings you want to keep before switching, as private settings may not transfer between clients.
V2Fly and Xray are related but independently developed core families, with differences in supported protocols, transports, and configuration fields. If your subscription uses a feature specific to one core, choose a client based on the provider’s guidance, not just the app name.
System requirements and installation checks
Check
What to look for
Device architecture
arm64 is for 64-bit ARM environments; the universal package supports multiple architectures. Device release year is only a rough guide—check system information.
Install permissions
Android may ask you to allow installs from the browser or file manager you’re using. Grant permission only to the source you need, then restore the previous setting if you prefer.
Updating an existing app
An update may fail if the new package’s signature doesn’t match the installed app. Back up your settings and check where the original app came from before uninstalling, so you don’t lose your configuration.
Background activity
Battery optimization, background activity, and system cleanup policies can interrupt connections. Check whether interruptions happen in the background, then adjust the relevant permissions.
After importing a subscription, refresh it and select a configuration. Make sure per-app proxy rules don’t exclude the app you’re testing. If the connection drops only when the screen locks, check background restrictions first—there’s no need to reimport the entire subscription.
Linux clients
Match the package format to your distribution, then choose the architecture. The main downloads below are x64; ARM devices can use the arm64 link on each card.
For distributions that use deb packages. Open the download with your system’s software installer and review its dependency and install-location prompts. In package names, amd64 generally means x64; it isn’t limited to a particular processor brand.
For distributions that use RPM packages and meet the dependency requirements. The same package format doesn’t guarantee compatibility with every OS version, so check the build target and dependencies. Don’t bypass checks to force an install when dependencies conflict.
v2rayN is a desktop GUI client for managing subscriptions and proxy settings in a desktop session. Package format, CPU architecture, and runtime dependencies are separate requirements; a mismatch in any one of them can prevent installation or startup. Renaming a .deb file to .rpm doesn’t convert the package.
Debian- and Ubuntu-based systems usually use deb; RPM-based systems use rpm. Check your distribution and package manager rather than guessing from the desktop theme.
CPU architecture
x86_64 and amd64 generally mean x64; aarch64 generally means arm64. Check the system’s actual architecture, especially on ARM single-board computers.
Desktop and dependencies
A compatible graphical desktop environment and runtime dependencies are required. If your package manager reports missing dependencies, resolve them before launching the app.
Which apps use the proxy
A desktop system proxy isn’t guaranteed to work with every app. Browsers, terminals, and other apps may each have their own proxy settings; check them individually.
If the app starts but your browser isn’t using the proxy, check the desktop proxy settings and the browser’s own network options. Package installation, core operation, and app proxy use are separate layers—don’t treat them as one issue.
After installation: connection checks
Start the client normally before configuring it. Check one step at a time: install, import, select, proxy, verify. Changing clients, cores, and DNS settings all at once can make a simple issue difficult to reproduce.
Import your subscription, then select a configuration
A subscription URL provides connection configurations; it isn’t the client itself. After importing, refresh the list and confirm that the current group contains configurations, then select one. If the update fails, check that the URL is complete, whether updating requires a proxy, and whether your current network can reach it. Never share the part of the URL that contains credentials.
Test the connection, then check app traffic
A port reachability check and a real connection test measure different things; neither can replace testing actual access. On desktop, enable an appropriate system proxy mode and test with a browser that uses the system proxy. On Android, confirm the VPN service is running and make sure per-app rules haven’t excluded the test app.
Check the logs before reinstalling
When something goes wrong, note the time, active configuration, proxy mode, and relevant error terms from the logs. A port conflict, an invalid subscription setting, and a DNS lookup failure each call for a different fix. Reinstalling adds migration work without necessarily changing network conditions. See the subscription import guide, check field meanings in the configuration reference, or start with connection troubleshooting.
Download and installation FAQs
Should I choose v2rayN Desktop or Classic WPF?
For your first install, try Desktop, which features a newer cross-platform interface. If you’re used to the classic Windows layout and want to keep the same workflow, choose the stable Classic WPF version. These are two client editions, not separate subscription services. Back up your settings before switching, and quit the old version before launching the other to avoid local port conflicts.
What’s the difference between the arm64 and universal Android versions?
The arm64 package is for 64-bit ARM environments and is a good first choice for most phones released since 2015. The universal package supports multiple architectures and is a fallback if you’re unsure of your device’s architecture or arm64 won’t install. Release year is only a guide; check your device’s processor and system environment. If installation fails, also check system compatibility and whether the existing app has a conflicting signature.
Does installing the client automatically give me a working configuration?
No. The client reads configurations, manages connections, and applies routing rules, but you still need a subscription URL or connection details you’re authorized to use. After installation, import your subscription, refresh the list, select a configuration, and choose an appropriate proxy mode. Don’t share subscription URLs in public screenshots or logs; they may contain access credentials.
What should I check if the download button doesn’t work?
Check your browser’s downloads list first to see whether the download needs confirmation, is paused, or is blocked by permissions for the download folder. Then try opening the package link again. The button retains the full file URL even if the page’s scripts haven’t loaded. If it still fails, note the platform, button label, and browser error. There’s no need to switch clients to troubleshoot a download issue.
What should I keep before updating the client?
Use the client’s backup or export option to save your configuration, and note your subscription groups, custom routing, DNS, inbound ports, and per-app settings. Quit the client before updating. Configuration formats can vary between clients and interface versions, so use a documented import method when migrating. Don’t overwrite an unfamiliar configuration directory.
The client installed, but I can’t connect. Should I download it again?
First check that a configuration is selected, your subscription is valid, and your system clock is accurate. Then look for specific errors in the logs. On desktop, check the system proxy and local listening ports; on Android, check VPN authorization and background permissions. Downloading or reinstalling won’t fix an expired subscription, incorrect settings, or the wrong proxy mode. Identify the failing layer before changing packages.