V2Ray Client Downloads Choose a Platform and Installer
For desktop, choose v2rayN; for Android, start with v2rayNG. Confirm your operating system, then select the installer for your processor architecture.
Free to useOpen sourceGraphical interface
Windows installers
Two x64 editions are available. Choose the one that suits your workflow; there's no need to download both for your first install.
v2rayN Recommended
7.24.1
Desktop uses a newer cross-platform UI; classic WPF provides the familiar, stable Windows interface. Both are GUI clients, but the menus for subscription import, system proxy, and routing may be in different places.
Both downloads are ZIP archives. Once downloaded, extract the files and follow the installer instructions inside. Don't launch the app from the archive preview.
System requirements and edition selection
Before installing on Windows
Check
What to do
Processor architecture
Both downloads on this page are x64. Go to Settings → System → About and check System type to confirm your system isn't 32-bit.
System compatibility
Use a 64-bit Windows version that is still supported. Check the selected release's notes and installer prompts for specific minimum versions and runtime requirements.
Runtime requirements
If startup reports that the .NET desktop runtime is missing, install the runtime specified for your edition. Don't choose a different major version based on the name alone.
Permissions
Run with standard permissions for the system proxy. If you enable TUN, check the client prompts for administrator permissions and virtual network adapter components.
If you're new to v2rayN, start with Desktop. If you already know the WPF menu layout, you can stick with the classic edition. The interface edition doesn't determine protocol compatibility: connections also depend on configuration fields, core support, and server settings. Window appearance alone can't tell you whether a server will work.
Extract the files to a separate, writable folder rather than a protected system directory. After installation, open the main window and check that sections such as Subscription groups and Settings appear correctly before importing a configuration. If the window closes immediately, note the error message; don't repeatedly overwrite the original folder.
To connect for the first time, add a subscription under Subscription groups, update it, and select a profile you're authorized to use. Then choose Automatically configure system proxy from the system proxy menu. Keep the default routing and leave TUN off for now to make troubleshooting simpler. For step-by-step instructions, see the Getting Started Guide.
macOS installers
Open About This Mac and choose the package that matches the Chip or Processor field.
v2rayN
7.24.1
v2rayN for macOS uses the cross-platform desktop interface. Choose arm64 for Apple Silicon and x64 for Intel. Check About This Mac rather than guessing from the device's purchase year.
Open the DMG and follow its instructions to move the app to Applications. Then launch it from Applications.
System requirements and first launch
Before installing on macOS
Check
What to do
Apple Silicon
If About This Mac lists an Apple chip, choose the arm64 DMG for native performance.
Intel processor
If About This Mac lists an Intel processor, choose the x64 DMG. The arm64 package won't work as a substitute.
macOS version
Use a macOS version that is still supported. Check the current release notes and installer prompts for the minimum version.
Network settings
Changing the system proxy or enabling TUN may require system authorization. Save the current settings for other network tools before making changes.
After copying the app to Applications, eject the disk image so you don't keep launching it from Downloads or a mounted volume. If macOS blocks the first launch, verify the download source, app name, and system alert, then check the relevant options under System Settings → Privacy & Security. Don't disable system security entirely for a single app.
After opening the desktop client, import a subscription and select a profile before enabling the system proxy. Only apps that use the corresponding system settings will follow the system proxy; command-line tools and apps with their own proxy settings may need separate configuration. That doesn't necessarily mean installation failed. Quit other tools that change the system proxy before testing, so they don't overwrite each other's settings.
When moving from an Intel Mac to Apple Silicon, download the build for the new architecture and import your backed-up configuration rather than copying the entire old app folder. After migrating, check local listening ports, file paths, and custom routing. These settings may depend on the old device, so seeing your subscription isn't enough to confirm the migration is complete.
Android installers
Start with v2rayNG. Check whether v2flyNG is appropriate if you need compatibility with a V2Fly configuration.
v2rayNG Recommended
2.2.6
An Android GUI client powered by the Xray core, with support for share links, subscription management, and routing. Most phones released since 2015 can use arm64, but confirm that your system supports 64-bit apps.
The current manifest version field is 2.2.6, while the installer filename is 2.3.11. They may update at different times; check About in the app to confirm the installed version.
v2flyNG Alternative
1.10.31
An Android GUI client powered by the V2Fly core. Choose it if your existing configuration relies on the V2Fly ecosystem and its protocol and transport requirements. Don't assume Xray-specific settings can be transferred directly.
Use the universal APK if you don't know your device's architecture or need another supported architecture. Whether it installs still depends on your Android version and the package's compatibility range.
System requirements and APK installation
Before installing on Android
Check
What to do
arm64
For ARM devices that support 64-bit apps. A newer phone doesn't necessarily mean the system provides a 64-bit runtime.
Universal
Try this package if you can't confirm your device's architecture. It's usually larger and doesn't bypass the minimum Android version requirement.
Install permissions
When prompted, allow Install unknown apps only for the browser or file manager you're using for this installation. Menu names vary between Android versions and manufacturers.
VPN permission
Approve the system VPN request the first time you connect. Disconnect any existing VPN first to avoid competing VPN connections.
After downloading, open the APK from your browser's download history or a file manager. If Android says the app wasn't installed, check available storage, processor architecture, and Android version, then see whether another app with the same name but a different signing identity is already installed. Don't assume every installation failure is an architecture issue, and don't uninstall the old app without a backup.
In v2rayNG, use the add option in the top-right corner to import a share link from your clipboard, or add a subscription URL under Subscription group settings. Subscription links may grant personal access; don't post them in public forums or include them in screenshots. After importing, select a profile, tap Connect, approve the system VPN request, and test access.
If the connection drops soon after connecting, check the system's battery restrictions and background activity permissions for the app. Keep the screen on while testing, then check what happens after locking it. If the connection only drops when the screen is locked, investigate background restrictions before changing server settings. Adjust DNS, Fake DNS, and routing only after the basic connection works.
Linux installers
First check your distribution's package format, then confirm whether you need x64 or arm64. Both must match.
v2rayN
7.24.1
Linux downloads include the v2rayN desktop GUI client. For common x64 desktops, choose deb or rpm to match your distribution. For ARM desktops, use the arm64 packages below.
The rpm filename includes the el10 build identifier. This doesn't mean it works with every rpm-based distribution; check system dependencies before installing.
System requirements and package formats
Before installing on Linux
Check
What to do
deb-based systems
Choose deb for distributions such as Debian and Ubuntu that use the deb package manager, and check that your release meets the dependencies.
rpm-based systems
Choose rpm for distributions that use the rpm package manager. Matching package formats doesn't guarantee that system libraries or build targets are compatible.
Processor architecture
In system information, x86_64 corresponds to x64 or amd64, and aarch64 corresponds to arm64. Choose by the reported architecture, not the device's appearance.
Desktop environment and permissions
A working graphical desktop environment is required. The system package manager handles dependencies; check the relevant permissions if you enable TUN.
Open the installer in your file manager to see dependency and compatibility details from the system software installer. If dependencies are missing, check the package manager's specific messages. Don't force installation by ignoring dependencies or rename a different package format to try to open it.
Once installation is complete, launch v2rayN from the app menu. Check that the window, tray icon, and settings page display correctly before importing a subscription. Desktop environments may handle system proxy settings differently, and browsers may use their own proxy settings. When testing, confirm that the app you're using follows the system proxy.
If you need TUN, check permissions, virtual network interfaces, and any existing network tools first. If the system proxy meets your needs, you can keep using it. Enabling TUN without checking in an environment where multiple network tools change routes can make troubleshooting harder. For detailed rules, see Advanced Setup.
Configuration steps after installation
The installer provides the client, not a usable server configuration. To get started, you'll need a subscription URL or share link you're authorized to use. The subscription provides configuration; the client runs locally, and they update independently. Reinstalling the client usually won't fix an expired subscription URL.
Import a configuration. On desktop, find Subscription groups; on Android, enter the URL under Subscription group settings and update it. Check that the configuration appears. If the list is empty, troubleshoot the subscription URL and parsing result first rather than changing DNS.
Select a profile. Make sure the selected entry is the one you expect. Protocol, transport, and security settings should come from the original configuration; don't fill them in based on the name. Extensions vary between cores, so check settings when migrating a configuration.
Connect. On desktop, start with Automatically configure system proxy. On Android, approve the system VPN request. Keep the default routing and run only one client that takes over network traffic to avoid mistaking a port conflict for a server problem.
Test and adjust. Verify the connection with the apps you need, then adjust routing, DNS, or TUN one at a time. Note the original settings so you can restore a known-working setup if something goes wrong.
In-place upgrades and switching clients
Before upgrading, use the client's export or backup feature to save your configuration and make sure you can find the backup. Quit the old program before running the installer; on desktop, confirm its tray process has also exited. Running both versions can cause them to compete for listening ports or repeatedly change system proxy settings, making it look like you're connected when apps can't access the network.
Upgrading the same client isn't the same as switching from v2rayNG to v2flyNG or from WPF to Desktop. Before changing clients or editions, check supported import formats. Prefer importing a subscription or standard share link, and don't overwrite another client's data directory. Record custom routing, DNS, and outbound settings separately, then restore them one at a time.
If you only need to restore everyday connectivity, start with a minimal configuration and confirm the basic connection works before restoring complex rules. For certificate errors, check the system time and server name. For subscription parsing failures, check the URL and format. These issues usually need to be diagnosed from the error message, not by repeatedly changing installers. See Troubleshooting or the Getting Started Guide.
Download and installation FAQs
First identify whether the issue is package selection, installation, or connection setup, then follow the relevant steps.
Windows Desktop or WPF: which edition should you choose?
If you're new to v2rayN, start with Desktop, which uses a newer cross-platform interface. Choose WPF if you prefer the classic Windows layout. Menus and runtime requirements may differ, so export your configuration before switching and test one edition at a time.
Android: should you download arm64 or universal?
Most phones released since 2015 support arm64, but confirm that your system can run 64-bit apps. Try the universal APK if you don't know your device's architecture or the arm64 package is reported as incompatible. If installation fails, check the Android version, available storage, and whether an installed app has a conflicting signature.
Why doesn't the version shown on the card match the installer filename?
The card version and architecture-specific download links come from different manifest fields and may update at different times. The current v2rayNG version field is 2.2.6, while the filename is 2.3.11. Check the downloaded file and the app's About page to confirm the installed version; don't judge compatibility by the card number alone.
Can I connect right after installing the client?
The installer doesn't include a usable server configuration. Get a subscription or share link you're authorized to use, import it into the client, and select a profile. Then configure the system proxy or approve the Android VPN connection. Start with the default routing, and adjust DNS and TUN only after confirming the connection works.
Do I need to uninstall the old version before upgrading?
Back up your configuration and quit the old version first. When possible, upgrade in place using an installer from the same source with the same signing identity. Before switching clients, interface editions, or installation sources, check the data directory and supported import formats. If Android reports a signature conflict, export any recoverable configuration before taking further action.
What should I do if a download link won't open?
Check your browser's download history to see whether the download never started, was interrupted, or the installer failed. Confirm your connection, reload this page, and try again. If an existing proxy is interfering, quit the client and restore your usual network settings. Don't guess other installer URLs by changing filenames.