Graphical Clients · Downloads & Setup

V2Ray Clients
Downloads & Setup

Use v2rayN on desktop and v2rayNG on Android. Start with subscription import and routing, then follow the menus to configure your connection.

  • Subscription groups
  • Custom routing
  • Xray · V2Fly
Choose by platform

CLIENT SETTINGS

Subscriptions, routing, and traffic capture

First, distinguish server settings, routing rules, and the system proxy. They determine where you connect, which outbound route a request takes, and which apps send traffic through the client. The settings below are illustrative; menus may change as clients are updated.

Organize subscriptions by source

In v2rayN, open “Subscription Group → Subscription Group Settings,” create a group, add a recognizable note and subscription URL, then save and update it. Groups keep server lists from different sources separate and help prevent mix-ups during updates. Before you have a working connection, try “Update subscription (without proxy)” first. Use the proxied option only when a working proxy is already available and the subscription URL requires it. A share link usually describes one server, while a subscription URL provides a set of configurations; use the matching import option for each. After updating, confirm that entries appear in the list, then select a server to test.

PLATFORM SELECTOR

Choose a client by platform

Choose an installer based on your operating system and processor architecture, then check the package format. Use v2rayN on desktop and start with v2rayNG on Android; v2flyNG is an option when you need compatibility with the V2Fly core. The download page lists the relevant downloads and installation requirements.

Windows

v2rayN · Desktop / WPF

If you're installing for the first time, start with the desktop version, which uses a cross-platform interface. If you're familiar with the classic window layout, you can also choose the WPF version. Both interfaces require a valid server configuration; appearance alone does not indicate protocol support. Before installing, open “Settings → System → About” to check your system type, then choose the matching architecture on the download page.

After launch, import a working configuration, select a server, then set the system proxy and routing mode. Consider Tun only after a regular browser connection works. If enabling Tun reports insufficient permissions, restart with the permissions requested instead of repeatedly changing the server port. Back up your configuration before changing the installation folder to avoid losing subscription groups and custom routes when the folder is cleaned up.

Go to downloads →

macOS

v2rayN · Choose by processor

Open “About This Mac” from the Apple menu. Choose the Apple Silicon installer for an Apple chip, or the Intel installer for an Intel processor. The wrong architecture may prevent startup or require an additional compatibility layer. After installation, launch the client and make sure the interface and log window open normally before importing a subscription.

If the app launches but your browser traffic still isn't using the proxy, first check the proxy settings for the active network service, then see whether the browser uses a separate proxy extension. Wi-Fi and Ethernet may have different system configurations. If you see a system security alert, verify the download source and read the alert before following the system's authorization steps. Disabling system protection should not be a routine installation step.

Go to downloads →

Android

Recommended: v2rayNG · Alternative: v2flyNG

Most recent Android phones use arm64 packages. If you're unsure of your device architecture, or installation reports that the package is incompatible, check for a universal build. Start with v2rayNG, which uses the Xray core; consider v2flyNG if you need compatibility with the V2Fly core. Each app stores its groups, app settings, and connection status separately, so you'll need to check your configuration again after installing the other client.

On the first connection, Android prompts you to authorize VPN access. The client can capture traffic through that interface only after you confirm. If another VPN app is running, disconnect it before testing. If the connection works while the screen is on but drops when locked, check battery optimization, background activity limits, and power-saving settings. App-level routing may also exclude specific apps, so a working browser connection doesn't mean every app uses the same outbound route.

Go to downloads →

Linux

v2rayN · deb / rpm

First, check which package format your distribution uses: Debian- and Ubuntu-based systems typically use deb, while Fedora-based systems typically use rpm. Then choose between x64 and arm64. Package format and processor architecture are separate choices. A graphical client needs a suitable desktop environment; on a minimal system or remote-terminal-only setup, first make sure a graphical interface can run.

Desktop environments differ in how they implement the system proxy. After enabling automatic proxy settings, check whether apps read the desktop proxy configuration; terminal programs may need their own proxy settings. Tun uses a virtual interface and requires permissions, so follow the requirements for your distribution and client. If the core fails to start, check the logs for port conflicts, missing resource files, or permission errors. Don't mistake an environment issue for a broken subscription.

Go to downloads →

Downloading a client prepares the local software, but connecting still requires valid server settings or a subscription URL. The installer does not include a working server. Subscription URLs may contain access credentials, so hide the URL and account details before sharing screenshots, asking for help, or posting logs.

View all clients →

PROJECT V / CORE / CLIENT

Open-source ecosystem and core architecture

Understanding the roles of clients and cores helps prevent misdiagnosis when migrating configurations. The interface manages settings, the core handles network connections, subscription services provide configuration details, and routing rules determine where requests go. Each layer has its own troubleshooting steps.

Project VV2Fly / XrayGraphical clients

Project V and V2Fly

Project V is an open-source project ecosystem built around network proxy tools, with V2Ray among its best-known core names. V2Fly continues a related community development path, maintaining the V2Ray core and associated capabilities. In everyday usage, “V2Ray client” often means a graphical management app, not the core program running on its own. Distinguishing the two helps you tell whether a feature is configured in the interface or depends on support in the underlying core.

The core typically handles inbound listeners, outbound connections, routing matches, and DNS. A graphical client organizes these options into server forms, subscription groups, and settings. After you save options in the interface, the client generates or adjusts the configuration required by the core, then starts the service. So a successful import only means the interface recognized the link; it does not confirm that the remote settings are correct or that the core has started successfully.

Xray compatibility limits

Xray grew out of the V2Ray ecosystem and has its own direction for protocol and transport development. VLESS, VMess, and Trojan are different protocols; REALITY relates to connection security. These labels are not interchangeable node types. Match the local protocol, transport, security settings, and core capabilities to the combination used by the server.

When migrating a configuration, check the address, port, user ID, transport, and TLS or REALITY settings one by one. Some fields are supported only by specific cores, and a client may not expose every option in its interface. If you see an “unknown field” error or an unsupported security type, check compatibility first. Clearing SNI, disabling certificate validation, or changing the transport path at random can make a clear problem harder to diagnose.

How the three clients divide their roles

v2rayN is a desktop graphical client for managing servers, subscriptions, the system proxy, and routing in one window. v2rayNG is for Android, captures app traffic through the system VPN interface, and uses the Xray core. v2flyNG is another option for Android users who prefer the V2Fly core. The three projects have different release schedules, so don't assume menus in one client work the same way in another.

All three clients are open source under GPL-3.0; check the individual license terms for their cores and bundled components. Open-source licenses set the terms for using, modifying, and redistributing code. They do not replace server service terms or determine connection quality. The client software may be free to use, but charges for servers, subscriptions, or other network services depend on the relevant provider.

Keep a working baseline before updating

Client updates can change the interface, configuration generation, and core capabilities at the same time. Before upgrading, preserve your subscription groups, custom routes, and key settings, and record a configuration that currently connects successfully. After updating, test the same server, routing setup, and network before enabling new features one at a time. This helps separate changes introduced by the upgrade from fluctuations on the server, instead of changing every variable at once.

When reviewing release notes, focus on configuration migration, system requirements, core changes, and known issues rather than just version numbers. If something goes wrong, the first error in the log is often more useful than repeated errors that follow. Before asking for help, include your platform, client, steps taken, and conditions already ruled out—but remove subscription URLs, user IDs, and other connection credentials. See the troubleshooting guide for detailed steps.

TECHNICAL NOTES

Routing setup and log troubleshooting

These technical notes cover specific settings. If the connection works and you want to change where traffic goes, start with routing rules. If the client reports that the service failed to start, check the logs and configuration errors first. Don't keep switching routing presets before resolving a startup error.