Choose a client, platform, and architecture

V2Ray Client Downloads
v2rayN and v2rayNG

Use v2rayN on desktop and v2rayNG on Android. Check your operating system and processor architecture before choosing a download; configure protocols and subscriptions after installation.

Downloads are organized by platform. The clients don’t provide servers or subscriptions. If you already have a subscription, follow the subscription setup guide after installation.

Windows:v2rayN x64

Choose either Desktop or classic WPF; you don’t need to install both.

v2rayN

7.24.1
Recommended

Desktop uses a newer cross-platform UI and suits first-time users or anyone who wants a consistent desktop experience. The WPF edition retains the classic Windows interface and is a stable choice if you’re used to the original layout.

Both downloads are ZIP archives. Extract the files before installing, and don’t launch the program from the archive preview window.

Migrating settings between Desktop and WPF

The two editions mainly differ in layout and desktop technology; that doesn’t indicate how well either will connect to a given server. On first launch, import a subscription, select a server, and then configure the system proxy. Consider TUN only if you need to route apps that ignore system proxy settings. An open settings window doesn’t mean the proxy is working.

Before migrating from an older edition, export your settings and note any custom routes and local ports, then exit the old client. Running both clients can cause port conflicts or let them overwrite each other’s system proxy settings. Menus may be in different places in the new interface. After importing, verify subscription groups, core selection, and routing presets instead of copying the entire old program directory.

See the v2rayN subscription import steps →

CONFIGURATION / What to configure after installation

Choose the package architecture; choose the protocol in your connection settings

Downloading the right installer only determines whether the app can run on your device. Establishing a connection also depends on subscription fields, core features, server settings, and local proxy mode. Troubleshoot these separately to avoid reinstalling the client unnecessarily.

The client and the core are different things

In the Project V ecosystem, graphical clients mainly manage configurations, subscriptions, and system integration; the core handles protocol processing. V2Fly and Xray share technical roots, but their feature development has diverged. When choosing v2rayNG or v2flyNG, consider the features your configuration needs, not just how similar the interfaces look.

REALITY is a security layer, not a standalone outbound protocol. A VLESS subscription alone doesn’t guarantee everything needed to connect; the transport, security layer, and authentication parameters must all match. For the differences between VMess and VLESS, see the protocol reference.

Start with a minimal working configuration

For your first test, use one client, one known-good configuration, and one proxy mode. Check that the system clock is correct, the subscription updated successfully, and the configuration is selected before testing access. Don’t change the protocol, DNS, routes, and TUN all at once, or you won’t know which change fixed the connection.

For REALITY, check fields such as publicKey and shortId against the server configuration. Changing the installer won’t fill in these parameters.

After installation: subscriptions, proxy modes, and upgrades

The client is free to use, but connection resources must be configured separately. Follow these steps for a first-time setup or when setting up on a new device.

Import a subscription and check its configuration

Subscription URLs often contain access credentials. Copy the full URL into a subscription group in the client; don’t use a webpage sharing link instead. After adding the URL, update the subscription and select a configuration from the list. If the update succeeds but the list is empty, check the subscription’s validity, response format, and protocol compatibility. Don’t send the link to an unfamiliar online conversion service.

Before sharing a screenshot, hide subscription URLs, account identifiers, and authentication parameters. Exported configurations and backups may contain the same information. To move between clients, reimport the original subscription where possible; custom JSON, route files, and menu options aren’t necessarily interchangeable.

Check how the app’s traffic is actually routed

Desktop clients typically start with the system proxy; Android routes traffic through a system-authorized VPN connection. A running status only means the local service has started, not that the target website is reachable. Check app behavior and log errors to distinguish a server connection failure, a DNS resolution failure, and an app that isn’t using the proxy.

TUN can route traffic from more apps, but it also adds requirements for the virtual network interface, DNS, and routing. If the basic proxy works but TUN doesn’t, check permissions and network settings instead of reimporting every subscription. Before closing the client, restore the proxy settings so the system doesn’t keep pointing to a local port that’s no longer listening.

Keep a recoverable backup before upgrading

Upgrading the program and updating a subscription are different operations: the first updates the client and related components; the second refreshes the server list. Back up before upgrading, then check subscriptions, routes, DNS, and core settings. Version labels in a listing and installer filenames may be maintained separately. If they don’t match, don’t infer features from the filename alone; check the installed version on the client’s About page.

If the new version behaves unexpectedly, record your system environment, client edition, and the specific log messages. Don’t delete the original configuration directory right away. Configuration formats may change between versions, so keep a separate backup from before the upgrade rather than relying on a directory the new client has already modified. For more post-installation steps, see the client guide. For subscription parsing and conversion issues, see Troubleshooting.

Download and installation FAQs

Identify whether the issue is package selection, app startup, or connection setup before deciding what to check next.

Should I download the Desktop or classic WPF edition for Windows?

If you’re new to v2rayN, start with Desktop, which uses a newer cross-platform interface. If you prefer the familiar layout, choose the established WPF edition. Both are v2rayN clients, but subscription compatibility also depends on the core and configuration fields. Back up your settings before switching editions, and don’t let both clients modify the system proxy at the same time.

Which Android version should I choose: arm64 or universal?

Most phones released since 2015 should use arm64, but check which app architectures your device actually supports. Choose universal for older devices, systems limited to older app architectures, or when you’re unsure. Universal packages include components for multiple architectures and are usually larger; they don’t improve connectivity.

Will installing the client add a subscription or server automatically?

No. The client stores configurations, starts connections, and manages routing; the installer does not include a usable subscription or server account. Import a subscription link you’re authorized to use, or add server details manually, then update the subscription and select a configuration. Subscription links may contain access credentials, so don’t share them publicly.

What should I back up before upgrading the client?

Save your subscription groups, custom routes, DNS settings, and any manually configured servers, then exit the old client. Use the client’s export or backup feature where available, and verify the migrated settings. Backups may contain access credentials, so store them somewhere secure. Don’t overwrite the new program’s entire directory with the old one.

What if the installer reports an incompatible architecture or missing runtime?

Check that your system and installer architectures match, then review the missing dependencies named in the system message. Windows packages distinguish x64 from other architectures; macOS packages distinguish Apple Silicon from Intel; Linux packages also come as deb or rpm. Runtime requirements vary by build, so follow the current installer’s guidance. Avoid repeatedly installing repair tools from unknown sources.

The download finished, but I can’t connect. Should I try another installer?

Don’t switch packages as your first step. If the client starts normally, check that your subscription is valid, the intended server configuration is selected, the system clock is correct, and system proxy or VPN permissions are working. For REALITY, verify publicKey and shortId against the server configuration. Use the logs to isolate the issue instead of changing the client, protocol, and DNS all at once.