Client / Package / System architecture

V2Ray client downloads

Choose v2rayN for desktop and v2rayNG for Android. Check your operating system and processor before selecting a package.

Free to use Open source Graphical configuration

Choose by platform

Clients and downloads

Each download button links to a specific installer. Minimum system requirements may change between releases. Check the items below before choosing a package; don’t rely on a single OS version as a compatibility check.

v2rayN

Recommended
Windows · x64 7.24.1

Desktop is the newer cross-platform UI; WPF is the classic, stable version. If you’re new to v2rayN, start with Desktop. If you’re used to WPF, you can stick with the classic interface. The interface and proxy protocol are separate; the interface name doesn’t tell you whether a protocol is supported.

Both downloads here are x64 archives. After downloading, extract the entire archive to a local folder, then run the installer inside. Don’t launch it from the archive preview. If the installer reports a missing runtime, follow the instructions for that release; don’t download similarly named components from untrusted sources.

Export your configuration and close the old instance before switching interfaces. Running both versions on the same port can cause a conflict. If the old client’s tray icon is still visible, make sure it has fully exited.

Import a subscription and configure the proxy after installation →

Before and after installation

Client package, server configuration, and connection mode

The client manages configuration and starts a local proxy service. Server configuration determines where to connect, which protocol to use, and how to authenticate. Installing the app only prepares the local software; it does not provide a subscription or server account. Use configuration you obtained and are authorized to use, and confirm that its protocol, transport, and security options are supported by the selected core.

Project V is the technical ecosystem behind related proxy tools. V2Fly and Xray are separate core implementations. v2rayN provides a graphical desktop interface, while Android clients v2rayNG and v2flyNG use their respective cores. The interface manages settings and provides controls; the core handles protocols and traffic. When switching clients or upgrading, consider configuration compatibility rather than comparing names alone.

First setup: import a configuration, then choose a proxy mode

Once you have a subscription link or a server share link, use the corresponding import option in the client. Subscriptions are useful for managing groups of configurations; a single link is suited to importing one specific server. After importing, check the server address, port, and protocol, then select the configuration you want to use. If nothing appears, check the link content and format before changing system network settings.

Desktop system proxy mode changes the system proxy settings, but only apps that honor those settings will use the proxy. TUN routes eligible traffic through a virtual network interface and depends on permissions, routing, and DNS settings. For your first setup, enable only one traffic-handling mode. Once it works, adjust other settings; changing several at once makes problems harder to diagnose.

The first time you connect on Android, the system will ask you to approve VPN access. After approving, check that the client started successfully, the selected server is correct, and the logs show no connection or DNS errors. A status icon only indicates a local service state; it doesn’t prove that every app can connect to a remote server.

Getting Started walks through importing a configuration, selecting it, choosing a proxy mode, and checking logs. For an explanation of individual fields, see the V2Ray JSON Configuration Manual. Start with a minimal working configuration, then add more complex routing rules so you can tell what each setting does.

For existing configurations: back up before updating

Before updating, export your server configurations and note subscription groups, local ports, routing rules, DNS settings, and custom parameters. Exported files and subscription links may contain credentials; store them somewhere you control and redact sensitive fields from screenshots when reporting an issue. Backups are for restoring your configuration, not for public issue attachments.

Quit the client before installing an update so background processes don’t keep using old files. After updating, check the server list and selected configuration before starting the local service and reviewing its logs. When switching clients, use a supported link or export format to import settings again instead of overwriting another app’s entire data directory.

If connections fail after an update, note where the failure occurs: the app won’t launch, the core fails to start, the subscription won’t download, DNS lookup fails, or the server can’t be reached. Each stage calls for different checks. Reinstalling repeatedly can erase useful diagnostic information and won’t fix an expired remote configuration or a local port conflict.

Download or installation failed? Troubleshoot by stage

If the browser hasn’t finished downloading, check the error in its download history and make sure you have enough free space. Opening an incomplete file can cause parsing or format errors. If the file downloaded but the installer won’t continue, check the processor architecture, OS version, installation permissions, and signatures of existing apps. Don’t assume every failure is a network issue.

If the app installs but won’t launch, check system messages and client logs, then verify the runtime environment, file permissions, and whether the configuration directory is writable. If it launches but won’t connect, check the server configuration, system clock, DNS resolution, and local listening port. Troubleshooting download, installation, launch, and connection issues separately helps avoid unnecessary changes.

Download troubleshooting

Package selection and updates FAQ

Check your operating system and architecture first, then review permissions, dependencies, and configuration migration.

Which should I choose for Windows: Desktop or WPF?

For a first install, start with Desktop, which uses the newer cross-platform interface. WPF is the classic, stable version for users who prefer the familiar Windows interface. Both are v2rayN; choosing an interface does not change the server protocol. Export your configuration before switching, and avoid running both versions on the same local port.

What’s the difference between Android arm64 and universal builds?

Most mainstream phones released after 2015 use arm64, but confirm that both the processor and operating system support it. If you’re unsure, choose the universal build. It includes components for multiple architectures and is usually larger. If parsing or installation fails, check the Android version, available storage, and whether an existing app has a conflicting signature.

Does downloading a client automatically provide server configuration?

The client installer does not include a usable server account or subscription. After installation, import a server configuration or subscription link that you obtained and are authorized to use. Then select a server, choose a proxy mode, and check the connection logs. Subscription links may contain credentials, so don’t share them publicly.

What should I do if macOS says the app can’t be opened?

Check your chip type in About This Mac and make sure the download has finished. Open the DMG, copy the app to Applications, then follow the app-specific instructions in Privacy & Security. Don’t disable system-wide security. If macOS says the app is damaged or incompatible with your architecture, check the package and system compatibility again.

Should I download the deb or rpm package for Linux?

Choose the package format used by your distribution: Debian- and Ubuntu-based systems typically use deb, while Fedora- and RHEL-based systems typically use rpm. Check the architecture too: x64 or arm64. A matching package format doesn’t guarantee that all system dependencies are met, so review the installer’s dependency and system library requirements.

What should I keep before updating the client?

Export your server configurations first, and note subscription groups, routing rules, local listening ports, and custom settings. Quit the client before installing the update. Don’t overwrite configuration directories when switching interfaces or clients. After updating, check the server list and logs before restoring the system proxy or TUN. Treat backups as sensitive data.