Choose a client and package

Download V2Ray clients

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

Free forever Open source Four platforms Setup and subscription import guide →

Download for Windows

One v2rayN client, with two desktop interfaces. These downloads are for x64 devices.

v2rayN

Windows desktop client · 7.24.1

Recommended
Download v2rayN · Desktop

Modern cross-platform UI · x64 · ZIP

Download v2rayN · Classic WPF

Classic, stable edition · x64 · ZIP

Desktop uses a modern cross-platform interface and is a good fit for first-time installs or users who want a consistent experience across operating systems. WPF keeps the classic Windows interface for users familiar with its menus and window layout. Choose based on interface preference and runtime environment, not package name or connection speed. Both editions require you to import a configuration and choose a proxy mode that suits your apps.

The download is an archive. Extract the entire folder before running the app; don’t launch it from the archive preview.

Windows requirements and setup

CheckRequirementBefore you install
Processor architecturex64 WindowsCheck System type under Settings > About. Don’t choose based on your PC’s brand alone.
RuntimeFollow the launch prompt for the package you downloadedIf prompted to install a .NET runtime, check the version and architecture shown in the message.
Program folderA local folder you can write to and keepExtract the full archive to a permanent folder, not a temporary one. Keep the program files and bundled files in their original relative locations.
Proxy permissionsSystem proxy and TUN have different permission requirementsStart with standard permissions. If you need TUN, follow the client’s prompts to grant the required permissions.

Create a dedicated folder for the install and preserve the extracted package’s file structure. If v2rayN is already installed, don’t put Desktop and WPF files in the same folder. Back up subscription groups and manually added nodes from the old client, then launch the new version from its own folder. Delete the old folder only after confirming your settings migrated correctly. Missing runtimes, occupied ports, and quarantined program files are separate issues; troubleshoot the specific error instead of repeatedly changing subscriptions.

For your first connection, start with system proxy: save your subscription URL, update the groups, select a node, enable the system proxy, and test it in a browser. Some command-line tools don’t use the system proxy and need proxy environment variables configured separately. v2rayN TUN mode can route traffic from more apps, but results still depend on routing rules, DNS settings, and system permissions. Enabling TUN doesn’t guarantee that every connection is being proxied.

Installation prep, Configuration transfer

Before downloading: check your device and existing settings

Check your operating system, processor architecture, and the install location of any existing client. The package format determines how to install; the architecture determines whether the app can run. Confirm both before proceeding. If you already use a client, back up your subscription groups, manually added nodes, custom routes, and local port settings. Being able to update a subscription later doesn’t mean every manual setting will be restored.

For a first install, choose the download for your platform. Switching interface editions or clients requires a separate migration step. Don’t assume settings are shared between desktop program folders or between the two Android apps. Keep the original error message and system details to help distinguish installation, permission, and connection problems.

After downloading: subscriptions, proxy mode, and testing

The client manages configurations and connections; the package itself doesn’t include a subscription. Once you have a subscription URL you’re authorized to use, enter it in the group settings, save it, and update the subscription. URLs may contain credentials, so hide the full link in screenshots, support requests, and synced notes. After updating, check the protocol and node names, select a node, then enable the appropriate system proxy or VPN mode.

Use V2Ray node speed tests alongside real-world access checks. A failed test may be caused by the test target, DNS, or network conditions, so don’t delete an entire group based on one result. To learn how VLESS protocol works with other transports, see the configuration guide. Your V2Ray protocol choice must match the parameters provided by the server.

How clients and cores work together

A V2Ray client manages subscriptions, node lists, routing rules, and connection controls; the core handles connections according to the configuration. Project V provides background on the ecosystem. V2Fly and Xray are related core families, not operating systems. Choose a graphical client based on your device, then check the protocol and transport requirements in your subscription. This avoids confusing a core name with a package architecture.

v2rayN is for desktop platforms and can manage supported cores and configurations. v2rayNG is for Android and uses the Xray core; v2flyNG is for Android and uses the V2Fly core. The three clients may have different interfaces and accept different configuration parameters. Check whether your subscription can be imported with the version you’re using. If a protocol isn’t recognized, first confirm the subscription format and client support before switching apps.

Open-source code can be studied and improved, but installation still depends on system compatibility and upgrade planning. You don’t need to chase every interface change. Upgrade when a feature you need, a compatibility issue, or a relevant fix gives you a clear reason. After upgrading, check that your subscription groups and routes are still there, then test real-world access so you don’t mistake new default settings for your old configuration.

Download and installation FAQ

Which should I choose for Windows: Desktop or WPF?

For a first install, try Desktop, which uses a modern cross-platform interface. WPF is the classic, stable edition for users who prefer the familiar Windows interface. Fully extract either package before use. Back up your current settings before migrating, and don’t mix the program files from the two editions in the same folder.

How do I tell whether my Mac has Apple Silicon or Intel?

Open About This Mac from the Apple menu. Choose Apple Silicon if the chip is listed as an Apple M series, or Intel if the processor is listed as Intel. In the package name, arm64 means Apple Silicon; 64 is the Intel option listed here.

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

For most phones released since 2015, arm64 is a good first choice, but check your device’s actual architecture. The universal package includes multiple architectures and is suited to devices with an unknown architecture or those that report the arm64 package as incompatible. Both packages are builds of the same client, not different tiers of node or protocol support.

Does the app come with a working subscription?

The package contains the client app, but it doesn’t configure a connection for you. After launch, import a subscription URL or node configuration you’re authorized to use, update the subscription, and select a node. Then configure system proxy or VPN mode. Subscription URLs may contain credentials, so don’t share the full link publicly.

What should I keep before upgrading?

Back up your subscription groups, manually added nodes, custom routing rules, and related settings. Note your current proxy mode and local ports. Exit the old app before installing or extracting the new package. On first launch, check that your groups and routes are intact before updating subscriptions. Don’t run two clients that use the same local port at the same time.

The download finished, but the app won’t start. What should I check first?

Check your operating system and processor architecture, then make sure the archive is fully extracted. On Windows, check for any runtime requirements shown at launch; on macOS, review the security alert; on Android, check install-source permissions and signature conflicts; on Linux, review package dependency messages. Keep the exact error text and troubleshoot for your platform.