Choose a client for your operating system, then check your CPU architecture. Use v2rayN on desktop; v2rayNG is recommended for Android, with v2flyNG as an alternative using the V2Fly core.
All three clients are free and open source. The installers provide the client software; you’ll need to obtain subscription and server configuration separately.
Desktop: v2rayNAndroid: v2rayNG / v2flyNGChoose a platform, then an architecture
Windows downloads
One client, v2rayN, with two desktop interfaces. Both downloads below are x64 archives.
v2rayN
Recommended7.24.1
The Desktop edition has a newer cross-platform UI. WPF is the classic edition, retaining the familiar Windows workflow. For a first install, start with Desktop.
The classic Windows interface. Choose this edition if you’re already used to WPF.
System and installation requirements
Check
What to look for
Operating system
Install on a supported version of Windows 10 or 11 where possible. Check the installer prompts for requirements specific to the release you choose.
CPU architecture
Both downloads on this page are x64. Check your system type under Settings → System → About.
Installation permissions
Extract the files to a writable folder and run the installer. Follow system prompts if changes to system settings require permission.
Don’t run the program from the archive preview. Extract it first to avoid path issues when it reads nearby files or saves settings. After the first launch, import your configuration and make sure another proxy app isn’t using the local listening port before enabling the system proxy.
Interface labels and menu locations in Desktop and WPF may change between releases. Export any settings you want to keep and exit the old instance before switching. Don’t assume both installations automatically share all settings. If you keep both to compare, run only one at a time to prevent conflicts with the system proxy and listening ports.
macOS downloads
Check About This Mac, then choose the DMG for Apple Silicon or Intel.
v2rayN
7.24.1
Choose arm64 for Apple Silicon and x64 for Intel. Both builds serve the same purpose; they’re compiled for different processor architectures.
For devices showing an Intel processor in About This Mac.
System and installation requirements
Check
What to look for
macOS version
Use a macOS release that is still supported. Check the current installer and system prompts for the minimum version.
Chip type
Choose arm64 for Apple M-series chips and x64 for Intel processors. Don’t determine this from the device’s appearance or purchase date.
Installation location
Open the DMG, copy the app to Applications, then launch it from there.
Once the copy is complete, eject the disk image. Don’t keep running the app from the mounted DMG. If macOS says the app can’t be opened, check the specific reason—such as an incompatible OS version, an unverified source, or an unreadable file. Avoid disabling security checks for the entire device just to run one app.
After importing a configuration, check the local proxy address and listening port. Enabling the system proxy may require permission; confirm its status in the client. Before quitting, make sure the system proxy has been reset, especially if you also use other network management tools. Otherwise, the system may keep pointing to a local port that is no longer active.
Android downloads
v2rayNG is recommended. If you need the V2Fly core, check whether v2flyNG is compatible with your configuration.
v2rayNG
RecommendedXray core2.2.6
Manage subscriptions, share links, and proxy configurations on Android. Most phones released since 2015 use arm64; choose the universal build if you’re unsure of your device’s architecture.
Includes multiple architectures; suitable if you’re unsure of your device’s architecture or the dedicated build isn’t compatible.
v2flyNG
AlternativeV2Fly core1.10.31
For Android configurations that require the V2Fly core. Before importing, check protocol, transport, and field support. The two cores are not interchangeable in every case.
Use this if you’re unsure of your device’s architecture. The app must still meet your Android version requirements.
System and installation requirements
Check
What to look for
Android compatibility
Follow the APK installer’s prompts. The universal build supports more architectures but does not lower the minimum Android version.
App architecture
Most phones released since 2015 use arm64, but some devices support a more limited range of app architectures.
Permissions
Allow installation from the current source if prompted. When you first connect, review and approve the system VPN permission request.
Open the APK using your device’s file manager. If prompted to allow your browser or file manager to install apps, grant permission only to the source you’re using for this installation. You can review this permission in Settings afterward. If you see “App not installed,” check the architecture, available storage, and signature compatibility with any existing app before removing the old version and risking its configuration.
Android usually allows only one app at a time to use the current user’s VPN connection. Check that other VPN apps aren’t running before starting the client. If the connection drops after the screen has been locked for a while, check battery optimization and background activity restrictions. These are separate from APK architecture and should be investigated independently.
Linux downloads
Choose deb or rpm based on your distribution, then check whether you need x64 or arm64.
v2rayN
7.24.1
Linux GUI client downloads. Ubuntu, Debian, and related distributions generally use deb packages; Fedora and other RPM-based distributions use rpm. Check that your distribution’s dependencies are compatible.
Requires a desktop session that can run graphical apps. This page is not for deploying to command-line-only servers.
Package format
Choose deb or rpm for your distribution. Matching package formats do not guarantee compatibility with every system library version.
Architecture names
amd64 and x86_64 correspond to x64 on this page; arm64 and aarch64 correspond to arm64.
Dependencies and permissions
Review dependencies and approve installation in your graphical software installer. Run the app as your current desktop user.
Check your CPU architecture in the system’s About or hardware information page. Open the package with your distribution’s graphical software installer, review the dependency prompts, and complete the installation. If a system library version is missing, check that the package targets your distribution and release. Don’t force-replace critical system components with libraries from another distribution.
After installation, launch v2rayN from the application menu. Test a manual configuration and connection before enabling launch at login. Desktop autostart and system services are different mechanisms; GUI clients generally run within your desktop session. For details, see Linux desktop installation and autostart setup.
Configuration prep before installation
Package format, configuration source, and proxy entry point are three separate things to check.
Check your subscription and protocol
Installing the client doesn’t provide a working connection by itself. Prepare a subscription link, individual share link, or configuration file that you own or are authorized to use, and confirm it works with your chosen client and core. A subscription supplies configurations in bulk; the client reads and manages them. They are separate services.
When migrating, pay particular attention to the transport method, TLS settings, and routing requirements. A link appearing in the list only confirms that it was imported; it does not prove the connection works. Keep configuration credentials private, and redact subscription URLs and authentication fields in screenshots.
Back up before updating
Before updating, note your working configurations and back up manually added entries, custom routing rules, DNS settings, and local listening ports. Save content you can retrieve again from a subscription separately from manual changes, so a subscription refresh won’t overwrite your adjustments.
Exit the old instance before running the new installer. After updating, check that your configurations are intact, confirm whether the proxy port changed, and make sure the system proxy points to the right address. If both interfaces are installed, note where each stores its data. Don’t rely on copying the entire program folder to migrate settings.
Post-install checks
Import a configuration and confirm it appears. Use the client’s subscription or import feature, then check that the expected entry is listed. A bad subscription URL, certificate issue, or incorrect device time can prevent import; reinstalling the client usually won’t fix these problems.
Select a configuration and connect. On desktop, check the system proxy settings; on Android, approve the system VPN permission. The system proxy determines whether apps send traffic to the client. Routing rules determine which outbound handles traffic once it reaches the client. Check both separately.
Check the logs and test access. First confirm that the client started successfully, then check whether the target app is using the expected proxy entry point. Browser access doesn’t mean every app follows the system proxy. If something fails, record the exact error and steps to reproduce it—not just “it doesn’t work.”
v2rayN, v2rayNG, and v2flyNG manage configurations and provide the connection entry point; Project V, V2Fly, and Xray are part of the core ecosystem behind them. Similar client interfaces don’t mean their cores support all the same fields. Before changing inbounds, outbounds, routing, or dns, identify the core that’s running and the configuration format, then consult the relevant field documentation.
First check whether you chose the right package, then troubleshoot configuration and connection issues.
Which should you choose: v2rayN Desktop or WPF?
For a first install, start with Desktop, which uses a newer cross-platform interface. WPF is the classic, stable edition for those who prefer the familiar Windows workflow. Both require a valid configuration. Back up your settings before switching, and don’t enable the system proxy in both instances at once.
Should I download the arm64 or universal Android build?
Most phones released since 2015 support arm64, but check which app architectures your device supports. The universal build includes multiple architectures and is a good choice if you’re unsure or the arm64 installer reports an incompatibility. The universal build does not provide faster connections.
What’s the difference between v2rayNG and v2flyNG?
v2rayNG uses the Xray core and is the recommended Android client on this page. v2flyNG uses the V2Fly core as an alternative. Check that the server protocol and transport settings are supported; being able to import a share link does not guarantee full compatibility.
Can I connect as soon as the client is installed?
The installer provides a GUI client, but no server configuration for connecting. After installation, import a subscription link, share link, or configuration file that you own or are authorized to use. Select a configuration and check the system proxy or VPN permission. See the getting started guide for your first setup.
What should I back up before updating the client?
Back up subscription groups, manually added configurations, custom routing rules, and DNS settings. Note the local listening port. Subscription links and exported files may contain credentials, so store them securely. Exit the old instance before updating, then check your configuration and proxy status.
Why might the version shown on a card differ from the installer filename?
The card shows the app-level version, while each download link points to a separate platform-specific file record. These may not be updated at the same time. Check the downloaded file and the app’s About page to confirm its version; don’t guess by changing numbers in the download URL.