v2rayN for desktop · v2rayNG / v2flyNG for Android

V2Ray client downloadsPlatforms, architectures, and packages

Choose your operating system first, then your processor architecture. Use v2rayN on desktop; v2rayNG is the recommended Android option. For the V2Fly core, see v2flyNG.

Free, open-source clients Bring your own subscription or nodes Setup after installation →

Windows downloads

v2rayN offers Desktop and classic WPF versions. Both downloads below are for x64; check your system type before downloading.

Windows installation requirements

CheckPackage requirementsWhere to check and what to do
Processor architecturex64Open Settings → System → About and check System type.
System and runtimeMust meet the selected client package’s requirementsCheck the installer’s messages for system and runtime requirements. “64-bit” alone doesn’t confirm compatibility.
Files and permissionsExtract the files, then run the installerChoose a folder you can write to. TUN features may require additional permissions.
Connection setupA valid node or subscriptionImport your configuration, select a node, set the system proxy, and check the logs.

The system proxy only affects apps that follow the system proxy settings. To route traffic from other apps, check whether the client supports TUN and whether it meets your needs. Installation, service startup, and traffic being routed are separate steps. See the Windows setup guide for details.

After installation

Subscriptions, nodes, and proxyVerify the connection step by step

01 / Import

Load your own configuration

The client package doesn’t include usable nodes. Get a valid subscription or share link, import it, and check that the node list appears. Subscription URLs, share links, and native JSON use different import methods. If the returned content doesn’t match, check the format first instead of repeatedly clicking refresh.

02 / Start

Select a node and traffic mode

Select an active node and start the service, then check the logs for startup errors. On desktop, enable the system proxy; on Android, approve the VPN connection. Check permissions separately if you need TUN. For your first setup, use one clear connection path to avoid stacking multiple proxies.

03 / Verify

Check the results of a real request

Test the connection by browsing and checking your exit IP, then review requests and routing entries in the logs. A “connecting” status only means the service or interface has started; it doesn’t confirm the remote node is reachable. If something fails, check node connectivity, DNS resolution, and app traffic routing separately.

Read the subscription import and first connection guide →

Download FAQs

Package formats and requirementsSix questions to ask before and after downloading

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

For a first install, start with Desktop, which uses a next-generation cross-platform UI. If you prefer the familiar Windows interface and workflow, choose the stable classic WPF version. Both require you to import your own nodes or subscription. Back up your settings before switching, close the old app, then check the listening port and proxy settings in the new one.

Should you download the arm64 or universal Android version?

Most phones released since 2015 support arm64, but choose based on the app architectures supported by your device. If you’re unsure, try the universal version. If the installer reports an incompatibility, check your Android version, processor architecture, and any existing app signature instead of downloading the same package repeatedly.

How do you choose between Apple Silicon and Intel packages on macOS?

Open About This Mac from the Apple menu and check the chip or processor field. If it shows an Apple M-series chip, choose the Apple Silicon arm64 package; if it shows an Intel processor, choose the Intel x64 package. Choose based on your Mac’s hardware, not your subscription format or node.

Can you connect right after installing the client?

The client reads configuration and routes traffic; the installer does not include a usable subscription or node. After installation, import a valid configuration, select an active node, and start the service. Then enable the system proxy or approve the VPN connection, depending on your platform. Finally, verify the connection with a browser request, your exit IP, and the client logs.

What settings should you keep before updating?

Back up subscription groups, custom routing rules, DNS settings, and local listening settings. Note which core and proxy mode you currently use. Exit the running client before updating; afterward, check that your existing configuration was loaded correctly before testing the connection. Subscription URLs and configuration files may contain credentials, so store backups securely.

Can you install a Linux deb package using rpm, or vice versa?

Choose the package format used by your distribution; changing the file extension is not enough. Debian and Ubuntu-based systems generally use deb, while Fedora and RHEL-based systems generally use rpm. Match the package to your x64 or arm64 architecture as well. A compatible format does not guarantee that dependencies are met. If the installer reports missing dependencies, check your distribution version and the full error details.

For a feature-by-feature comparison, see the three-client comparison. For platform-specific instructions, see the complete installation and setup guide.