CLIENT PACKAGES / PLATFORMS & ARCHITECTURES

V2Ray Client Downloads

Choose v2rayN for desktop, v2rayNG for Android, or v2flyNG if you need the V2Fly core. Select your operating system first, then check the CPU architecture and package format.

Download v2rayN for Windows

x64 packages · Desktop / WPF

v2rayN

Recommended 7.24.1

Desktop edition

Download Desktop · x64

A newer cross-platform UI. A good place to start for a first install, with one desktop interface for managing subscriptions, servers and routing.

ZIP / x64 / Windows

Classic WPF edition

Download classic WPF · x64

The stable classic edition with the Windows WPF interface. Suited to users who know the original menu layout and want to keep their established desktop workflow.

ZIP / x64 / Windows

These downloads offer different interfaces, not different connection quality tiers. Connection results depend on server settings, core support and network routing. Back up your configuration before switching, then quit the old process to avoid conflicts over local listening ports.

Windows requirements and setup

CheckWhat to look for
Operating systemUse a Windows desktop edition that is still supported. Check the selected package's installation prompts for its minimum system requirements.
CPU architectureBoth downloads on this page are x64. Check your system type under Settings → System → About.
Package and runtimeThe download is a ZIP file. Extract it before running the installer. If a required runtime is missing, follow the installer prompts; don't install components for a different architecture.
PermissionsFollow the client's prompts for normal startup and system proxy settings. TUN may require administrator privileges.

Extract the archive to a separate writable folder; don't launch the app from the archive preview. After installation, import a valid configuration and test it before enabling startup at sign-in. If another proxy app is running, first check which one controls the system proxy.

Install and configure in order

The package installs the client; connection settings, proxy mode and testing are separate steps.

install → import → select → verify
  1. Check your target system. Confirm the operating system and CPU architecture in system settings, then choose the matching package. x64 and arm64 are architectures, not performance tiers; DEB and RPM are package formats, not connection modes. The wrong choice usually prevents installation or startup and can't be fixed by changing server settings.
  2. Keep your existing settings. If you already use a client, export your servers, subscriptions, custom routes and DNS settings first. Note the local ports and traffic-routing mode. Backups may contain connection credentials, so store them somewhere you control. Don't post an entire configuration folder in a public discussion as a troubleshooting attachment.
  3. Import a working connection. After installation, import a connection in the client using a subscription URL, a link from your clipboard or a supported configuration file. A subscription name is just a label; it doesn't replace the server address, port, authentication or transport settings. Check that the fields imported correctly.
  4. Choose a mode and test it. Select a server, then enable the proxy method that fits your needs. The system proxy mainly affects apps that respect system proxy settings; TUN routes more traffic and requires additional permissions and routing checks. Verify the basic connection first, then add split tunneling, DNS and startup settings.

Once you've completed these steps, test the connection with the app you actually need and check the client's logs for error categories. Timeouts, authentication failures and DNS resolution errors require different troubleshooting. Don't reinstall after a single failed test or change the protocol, DNS, routing and proxy mode all at once; keep a baseline you can compare against.

Client updates and core selection

Check client updates, connection settings and core compatibility separately; they are different issues.

Record a working configuration before updating

Updating the client usually doesn't require changing servers, but the interface, default options and configuration conversion may differ. Note your working servers, listening ports, routing mode and DNS settings. Quit the client before installing the update. Afterward, check that your subscriptions are still there, the right server is selected and the system proxy behaves as expected.

If you need to roll back, start with the backup exported before the update. Older versions may not recognize every setting written by newer ones; being able to open a configuration file doesn't guarantee full compatibility. Follow the same principle when moving between Desktop and WPF.

Choosing between Xray and V2Fly

The Project V ecosystem includes several core implementations. v2rayNG is based on Xray, while v2flyNG uses V2Fly. For desktop v2rayN, check the client interface and connection configuration to see which core is in use. The same protocol name doesn't guarantee identical support for extended transport options, TLS parameters or routing fields across all cores.

Choose a client based on the server configuration requirements, then check protocol and transport support. Don't copy all settings from one Android client over another. See the configuration field reference for field details, or the glossary for terminology.

Protocol and core terminology →

Download and installation FAQs

Check the package format, architecture and system prompts first; troubleshoot client settings afterward.

Desktop or classic WPF for Windows: which should you choose?

For a first install, start with Desktop, which uses a newer cross-platform interface. Choose the classic WPF edition if you prefer the familiar Windows interface or want to keep your existing workflow. Both require a valid connection configuration. Back up subscriptions, routing rules and settings before switching, and don't run both clients at once because they may compete for the same ports.

Android: arm64 or universal?

Most mainstream phones released after 2015 can start with arm64, but check which app architectures the device's operating system supports. Some devices have 64-bit processors but support only 32-bit apps. If you can't confirm the architecture, or the arm64 package reports an incompatibility, try the universal package. It does not guarantee compatibility with every older system.

Can you connect right after installing the client?

The client package does not include server connection details. You'll need a subscription URL you’re authorized to use or an individual connection configuration. Import it, select a server, choose a proxy mode and test connectivity. Subscription URLs may contain credentials, so don't share them in screenshots or public discussions.

How do you keep your settings when updating?

Use the current client’s export or backup feature to save subscriptions, servers and custom rules. Note your system proxy and TUN settings, then quit the client before updating. Don't assume configuration folders are interchangeable across interfaces, clients or cores. After updating, check the configuration and listening ports before restoring traffic routing.

What should you check if the package won't open?

Check the operating system, CPU architecture and package format, and make sure the download is complete. Windows downloads are ZIP files that must be extracted first; on macOS, choose the DMG for your chip; on Android, check app-install permissions and architecture compatibility; on Linux, review dependencies in the graphical package manager. Don't disable system-wide security just to open a package.

Can you use the same configuration with v2rayNG and v2flyNG?

They use different cores, Xray and V2Fly, so support for protocols, transports and extension fields may vary. You can re-import common connection details using each client's supported method, but don't assume every setting or raw JSON will transfer unchanged. Back up first, then check server parameters, TLS, transport, DNS and routing rules one by one.

Download the client