Client downloads · Choose a platform

V2Ray client downloads
v2rayN and Android clients

Choose an operating system, then a processor architecture. Use v2rayN on desktop; v2rayNG is the recommended Android client, with v2flyNG as an alternative.

New to V2Ray? Learn how to import a subscription and connect →

Windows client

Both interface editions are x64 packages. Choose one based on your preference; there's no need to install both.

v2rayN

v2rayN

Recommended Manifest version 7.24.1

DesktopNext-generation cross-platform UI · x64

Download v2rayN Desktop

Classic WPF editionClassic, stable interface · x64

Download v2rayN WPF

Desktop uses a next-generation cross-platform UI, making it a good fit for first-time users or anyone who wants a similar experience across desktop operating systems. The WPF edition keeps the classic window layout for users familiar with its server list, menus, and settings. A different interface doesn't replace the need for a subscription: both editions require a valid server configuration.

This download is a ZIP archive. Extract all its contents to a writable folder before running the installer; don't launch it from the archive preview. Before upgrading, quit the old client from the system tray. If a file is in use, make sure the related process has stopped before continuing.

Windows setup requirements

CheckRequirement and where to check
System and architectureThis page provides x64 packages. Check Settings → System → About for your system type; these downloads aren't suitable for 32-bit systems.
Runtime environmentYour OS version and desktop runtime must meet the requirements of the selected release. If a runtime is missing, follow the version and architecture specified in the startup error.
Folder permissionsMake sure the extraction and data folders have enough free space and are writable. Don't launch the app from a temporary archive folder or overwrite program files while the client is running.
Network permissionsSystem proxy and TUN are separate traffic entry points. Verify a standard connection first; if you need TUN, follow the system prompts to grant the required permissions.

If the app quits on launch, note the message in the dialog first, then check the runtime and folder permissions. Repeatedly switching interface editions isn't a troubleshooting step. See how to fix v2rayN crashes on startup.

Configuration after installation

Import a subscription, then verify the connection

The installer contains only the client, not a server you can connect to. Get a subscription URL or share link you're authorized to use, then follow these three steps. Test with one app first; don't change multiple clients and routing setups at the same time.

Read the full user guide
  1. Import and update a subscription

    On desktop, add the URL under Subscription Groups and update it. You can also copy a valid share link and press Ctrl+V in the main window. On Android, add the configuration from the client's import menu. After updating, check that servers appear in the list. If it's empty, first check the subscription URL and access.

  2. Choose a server and traffic entry point

    Select a server configuration, then set the system proxy or start the connection as needed. The system proxy determines whether app traffic enters the client; routing presets determine the outbound route after it does. They aren't interchangeable. For your first setup, keep the settings easy to understand and skip custom DNS and TUN for now.

  3. Check websites and logs

    Open the target website, then check the client logs for connection or DNS errors. A successful latency test only shows that the test route is reachable; it doesn't confirm that the site itself works. If the page fails, note the time, selected mode, and exact log message. Hide subscription URLs, server credentials, and personal information before sharing screenshots.

Back up your configuration before updating

A first-time installation and an in-place update are different. If you have a working configuration, use the client's backup or export feature before updating to save subscription groups, custom routing, and any settings you need. Backup files may contain connection details, so store them somewhere you control. A server alias alone usually isn't enough to restore a configuration in a new environment.

Quit the main window and tray process before updating, then wait for the connection to stop before running the new installer. Afterward, check that subscriptions are still present, the default server is correct, and local ports haven't changed; then test a real connection. If you use multiple devices, don't copy the entire desktop data directory over an Android app. For cross-client migration, use a compatible subscription or share link where possible.

To compare the three clients, see our client comparison. Routing rules, DNS, and TUN setup are covered in the advanced guide. Make these changes one at a time, after your basic connection is working.

Download and installation FAQs

Which should you choose: v2rayN Desktop or the classic WPF edition?

For a first installation, try Desktop, which uses a next-generation cross-platform interface. If you prefer the classic window and familiar workflows, choose the stable WPF edition. Both require a valid configuration. Back up your existing settings before switching editions, quit the running client, and then launch the new version.

Should you download the arm64 or universal Android version?

Most mainstream phones released since 2015 can start with arm64, but check which architectures your device's operating system actually supports. If the installer reports that the package is incompatible, try the universal version. It includes multiple architectures and is usually larger; it won't fix an outdated OS, a signature conflict, or insufficient storage.

Do I need a subscription or server configuration after installing the client?

Yes. The client reads configurations, manages servers, and directs traffic, but the installer does not include a server you can connect to. Import a subscription URL, share link, or configuration file that you are authorized to use. Subscription URLs may contain access credentials, so don't share them publicly or include them in screenshots of support requests.

Will updating the client keep my subscriptions and routing rules?

Whether they are retained depends on the installation method, data directory, and version migration behavior; the package name alone doesn't tell you. Before updating, use the client's backup or export feature and note the current data directory. Quit the old version before updating. Once subscriptions, routing, and local ports are working as expected, you can remove the old files.

What should I check if installation fails or the app quits on launch?

First check your operating system, processor architecture, and whether the downloaded file was saved correctly. Extract Windows archives before running them; follow the error message if a runtime is missing. On macOS, check the chip type and security prompts. On Android, review the installer’s compatibility or signature details. On Linux, check dependency notices in the graphical package manager. Keep the exact error message and avoid repeatedly reinstalling over the existing copy.

The download button opened, but the file hasn't started downloading. What should I do?

Open your browser's downloads list first and check whether the task is paused, blocked, or waiting for you to choose a save location. The page tries to read a same-origin version manifest to refresh download links; if that fails, it keeps the package links already on the page. Refresh and try again. If it still fails, note the selected platform, package type, and browser error. Don't edit the file path or extension.

See more frequently asked questions →

Match the platform and architecture first, then import your configuration. Keep a recoverable backup before updating.