GUI clients · Setup and configuration notes

V2Ray Free DownloadClients and setup

Use v2rayN on desktop and v2rayNG on Android. Start by importing a subscription, then configure the system proxy, TUN mode, and routing.

VLESSVMessTrojanREALITY

Choose a client for your platform

View all clients →

Desktop setup: Check your system architecture first

The same operating system name does not guarantee that packages are interchangeable. On Windows, first check whether your device supports x64 software, then choose between the desktop and WPF versions. On macOS, find your chip information under “About This Mac.” On Linux, check both your distribution’s package format and your CPU architecture. The desktop version uses a cross-platform interface, while the WPF version retains the classic interface. Find subscription, system proxy, and routing options in each version’s own menus; don’t rely on old screenshots to determine where a setting is.

After installation, make sure the main window opens normally before changing network settings. If you see a runtime requirement, install the dependencies specified for your package. If startup fails, check that the extracted folder is complete and that the app can write its configuration. An empty server list is normal until you import servers; there’s no need to enable TUN first.

Android setup: Choose a client core first

v2rayNG uses the Xray core and suits users whose configurations require features such as VLESS and REALITY. v2flyNG uses the V2Fly core and is an option when an existing configuration specifically requires it. Most recent phones can use an arm64 package. For older devices or if you’re unsure of the architecture, check your system information and the download page; choose a universal package if needed. Don’t infer the architecture from the phone’s brand, and don’t overwrite one client’s configuration directory with the other’s.

The first time you start a proxy, Android asks for permission to establish a VPN connection. Confirm that the request comes from the client you’re using before proceeding. If another app is already using Android’s VPN connection, stop it first. If you need a persistent background connection, check battery optimization and background activity restrictions. These settings affect whether the process is stopped; they won’t fix incorrect server parameters.

v2rayN · Settings overview

Subscription group settings

AliasEveryday subscription
Subscription URLEnter the URL from your subscription provider
Enable updates
Update subscription (without proxy)

Subscriptions and updates

A subscription URL is a way to retrieve a set of server configurations; it doesn’t automatically connect you after import. In “Subscription group settings,” give the source a recognizable alias, enter the full URL, save it, and then update the subscription. If your first setup isn’t connected yet, try updating without a proxy. After the update, check the group’s filters and select a server to use. Groups make changing URLs easier to manage than pasting individual share links, and keep multiple sources separate. Subscription URLs may contain credentials, so don’t include them in public screenshots.

This window is an example for illustration. Available options and their locations may differ in your client.

Follow the setup guide →
Project V / V2Fly / Xray

V2Ray ecosystem and client selection

First distinguish the graphical client, proxy core, and server configuration, then choose what to install. Similar names don’t guarantee identical protocol support or configuration formats.

Project V: From core to graphical client

Project V is an open-source ecosystem of network proxy tools, and V2Ray is one of its best-known projects. When people say “download V2Ray,” they often mean downloading a graphical client. The core establishes connections, handles protocols, and applies routing. The graphical client stores servers, manages subscriptions, builds configurations, and launches the core. Understanding these as separate layers helps explain why the same subscription can import differently in different apps.

v2rayN, v2rayNG, and v2flyNG aren’t simply the same program renamed for different operating systems. Each has its own interface, configuration storage, and release cycle. Desktop system proxy menus don’t map directly to Android’s VPN permission flow, and Android per-app proxy settings aren’t just desktop routing rules with a different name. When moving to a new device, transfer subscriptions or share links from a trusted source, then check the connection method again in the new client.

When searching for the “V2Ray official site,” first decide whether you need information about the core project or installation instructions for a graphical client. This site brings together popular client downloads and configuration guides, taking you from package selection to connection testing. Clients don’t include working servers. Installation only prepares the local software; you’ll still need a valid server configuration that you’re authorized to use.

V2Fly and Xray: Start with your configuration needs

V2Fly continues the V2Ray community’s development, while Xray has evolved from related code into its own feature set. The two share historical roots but differ in protocol implementations, transport options, and configuration fields. Seeing “VLESS” in both interfaces doesn’t mean every parameter is interchangeable. Nor does a client’s name tell you whether a particular feature is supported.

On Android, start with v2rayNG if you need Xray features; consider v2flyNG when an existing configuration requires V2Fly. With v2rayN on desktop, check which core the current configuration uses and whether it supports the server’s required transport and security parameters. A client recognizing a share link only confirms that it was imported; it doesn’t guarantee the selected core accepts every field.

REALITY is a connection security mechanism, not a generic switch you can enable by changing the server address. The server’s public key, short ID, server name, and other required fields must match. When troubleshooting, verify these parameters against the configuration source first, then check core support. For a comparison of the two core options and their clients, read Xray vs. V2Fly: Core Differences. There’s no need to keep switching software before you’ve established a connection.

v2rayN

Desktop pick

A good fit for managing subscriptions, servers, and routing rules in one place on desktop. Start with the system proxy for a repeatable test path, and enable TUN only if you need to capture traffic from specific apps. Choose the desktop or WPF version based on the interface and runtime environment—not as a fix for every connection problem.

Back up subscription groups, routing rules, and local configuration before changing the installation folder or upgrading. Settings in a portable directory and the system proxy state are separate; copying only the program files may not be enough to migrate everything.

v2rayNG

Android pick

Powered by the Xray core, with common features including subscription updates, server selection, VPN permissions, and per-app proxy. After importing, confirm which configuration is selected before starting the connection. A running status in the notification shade only means the service has started; test with an app to confirm that access works as expected.

If problems start after switching between Wi-Fi and mobile data, check for network changes and background restrictions before reviewing the logs. If you proxy only selected apps, check the app list and whether the mode includes or excludes those apps to make sure you haven’t selected the opposite scope.

v2flyNG

V2Fly alternative

For Android setups that specifically require the V2Fly core and use a compatible server configuration. Choose it based on protocol and configuration requirements, not a similar icon or name. Before using it, check the subscription’s transport and security options; don’t assume it supports parameters specific to another core.

Both Android clients can store their own configurations, but run only one VPN service at a time while testing. For a meaningful comparison, use the same network, server, and destination so you can tell whether the difference comes from the client or another factor.

Open-source licenses and configuration sources

All three graphical clients are open-source software, with source code distributed under their respective project licenses. The V2Fly and Xray core code is licensed under MPL 2.0; check each client, dependency, and bundled resource for its own license terms. Open-source licenses govern how code can be used, modified, and distributed. They don’t mean subscription services are provided by the same projects, and they don’t identify who operates a server or how it handles data.

Subscription URLs often contain access credentials and should be treated as sensitive information. When sharing troubleshooting screenshots, hide the full URL, user identifiers, and authentication parameters. Logs may also include server domains and connection destinations, so review them before posting. If a configuration asks you to disable certificate verification, first check the system time, certificate domain, and SNI. Don’t lower verification requirements just to dismiss a warning.

A graphical client applies the configuration you import, so the source of that configuration and local permissions matter too. Allowing local network connections, enabling a virtual network adapter, and automatically updating subscriptions all have specific effects. Enable only what you currently need, and keep track of why you changed it; this is easier to maintain than turning everything on at once.

Update types and troubleshooting order

Client updates, core updates, and subscription updates are three different things. A client update changes the interface and configuration management; a core update affects protocol support and network behavior; a subscription update retrieves server information again from its source. If the server list is empty, check subscription retrieval and filters before reinstalling the client. If the interface opens but the core won’t start, check permissions, port conflicts, and core logs.

Troubleshoot connections in a consistent order: verify your local network, confirm the subscription updated successfully, select a server with complete parameters, start a standard proxy, and test with a browser that follows the system proxy. If the standard proxy works but TUN doesn’t, focus on the virtual network adapter, DNS, and routing. If both fail, check the server status, system time, and authentication parameters first. Change one variable at a time and compare the logs before and after.

Back up your configuration before upgrading. After the upgrade, retest your existing setup before trying new features. Menu names in older guides may differ from the current interface, so look for the feature rather than an exact button label. For platform-specific steps and troubleshooting scenarios, see the Complete Client Installation Guide. If you’re already having connection issues, go straight to the Troubleshooting section and narrow down the cause by symptom.

Recent technical notes

Find the relevant settings and get practical steps for installation choices, subscription management, and certificate errors.