Xray · V2Fly core GUI clients

V2Ray Client Download HubClient Setup Guides

Browse open-source clients, then follow the menus to import subscriptions and configure routing.

Subscription groups Routing rules TUN mode

Choose a client by platform

Choose v2rayN for desktop and start with v2rayNG on Android. Check your operating system and processor architecture before downloading.

Windows

Recommended: v2rayN

v2rayN comes in a desktop edition and a classic WPF edition. The desktop edition uses a cross-platform interface, while WPF keeps the familiar window layout. Both focus on server management, subscription groups and routing, so the newer-looking interface alone is no reason to choose one over the other.

Before installing, check the system requirements and runtime dependencies. When moving an existing setup, quit the old client and back up its configuration folder first to prevent two instances from changing system proxy settings at once. If your browser uses the proxy but other apps connect directly, consider whether you need TUN—don’t enable every option at once.

Go to downloads

macOS

v2rayN desktop edition

Before choosing v2rayN, open your system’s About This Mac page and check whether it lists a chip or a processor. Apple Silicon and Intel have different download options. Choose a package that matches your hardware architecture rather than relying on the file extension alone.

After installation, import your configuration and test the system proxy first. It only affects apps that follow the system proxy settings; it does not route all network traffic. To use TUN, follow the client’s prompts for permissions and required components. If access is denied, resolve the permission issue instead of repeatedly changing the subscription URL.

Go to downloads

Android

Recommended: v2rayNG

v2rayNG uses the Xray core, while v2flyNG is an alternative built on the V2Fly core. Most recent devices use arm64; if you’re unsure of your device architecture, check the system information and download page for a universal build. Different cores may support different configuration fields, so a successful import doesn’t guarantee that every setting will work.

On the first connection, approve the system VPN permission prompt. If the connection drops after the screen locks, check battery optimization, background activity and auto-start settings. Per-app proxy determines which apps use the proxy; verify which apps are included or bypassed, and check whether another VPN app is already using the connection.

Go to downloads

Linux

v2rayN desktop edition

v2rayN Linux downloads are organized by package format (deb or rpm) and processor architecture. Debian and Ubuntu distributions typically use deb packages, while Fedora typically uses rpm. You also need to choose between x64 and arm64; package format and processor architecture are separate requirements.

Desktop proxy settings and proxy environment variables for terminal apps are two separate paths. A GUI client showing the system proxy as enabled doesn’t mean every command-line tool is using it. First test with an app that explicitly supports proxies, then configure other programs. With TUN, also check permissions, routes and potential conflicts with existing network tools.

Go to downloads

v2rayN settings console

Understand five groups of settings in dependency order, from capturing traffic to choosing its outbound route. The interface below is a static illustration; menu names may change between client versions.

v2rayN → bottom bar of the main window → System proxy

System proxy

Current selectionSet system proxy automatically
When stoppingClear system proxy
Routing modeBypass LAN

The system proxy sends traffic from apps that follow system settings to the client’s local proxy. In the v2rayN main window’s bottom bar, select “Set system proxy automatically,” then test with a browser. The system proxy doesn’t decide which domains connect directly; routing rules determine the outbound route. Compared with TUN, this method changes fewer network settings, making it a good place to start testing. Before quitting, you can select “Clear system proxy.” If another proxy tool is running, close one of them to prevent the system settings from being repeatedly overwritten.

From subscription import to connection testing

Start with a repeatable test path, then add routing rules. This walkthrough uses v2rayN on desktop and v2rayNG on Android.

STEP 01 / IMPORT

Add a subscription or share link

Get a subscription URL or single-server share link you’re authorized to use. In v2rayN, open “Subscription Groups → Subscription group settings,” add a group, enter an alias and URL, save, then update the subscription. For a single share link, copy the entire link and use the clipboard import option under the “Servers” menu. Don’t paste it into the subscription URL field.

In v2rayNG, use the add option on the main screen to import clipboard content; manage subscriptions in Subscription Groups. After importing, check that the entry appears in the expected group. If the list is empty, check the URL and filters before changing DNS. The client doesn’t include a working server: installing the app and configuring a connection are two separate steps.

STEP 02 / CONNECT

Select a configuration and traffic capture method

Select the configuration you want from the v2rayN server list and make sure it’s set as the active server. Then choose “Set system proxy automatically.” For the initial test, use a built-in routing option such as “Bypass LAN” and leave the other settings at their defaults to avoid introducing several variables at once.

In v2rayNG, select a configuration, tap Connect and approve the system VPN permission. If per-app proxy is enabled, make sure your test app is included in the intended traffic scope. You don’t need to enable TUN on desktop for the initial test. Test it separately only if you need to cover apps that ignore system proxy settings. Change one setting at a time so you can return to the last working state if a test fails.

STEP 03 / VERIFY

Check access and logs

Use a browser known to follow the proxy settings to visit the target site, then check the client logs for the corresponding connection. Tcping shows whether a TCP handshake succeeds; connection latency is measured over the proxy route, while a download speed test measures throughput. Each test answers a different question, so one result can’t establish that every app will work.

If a test fails, check in this order: active configuration → traffic capture method → routing → DNS. If the browser works but one app doesn’t, first check whether that app uses the system proxy. If the connection drops after the screen locks, check background restrictions. Once the connection is stable, back up the configuration and note the key settings to establish a baseline for future changes.

Project V, proxy cores and open-source licenses

The client provides the interface; the core handles connections and routing. Understanding how they differ is more useful than memorizing where each setting is.

Project V V2Fly Xray

GUI → CORE → OUTBOUND

Choose your platform first, then check core compatibility. Protocol, transport and security settings need to work together.

Compare the three clients →

Project V and the core ecosystem

Project V is an ecosystem of network proxy tools, with V2Ray among its widely used core projects. The V2Fly community continues related development, while Xray builds its own implementation and features on shared technical foundations. They have some configuration concepts in common, but that doesn’t mean every field, protocol capability or default behavior is identical. Before following a guide, check which core the client actually uses rather than relying on the app’s name.

“Protocol,” “transport” and “security settings” refer to different layers. A protocol defines how the two ends exchange proxy requests; transport determines how data travels; TLS and similar settings concern connection security. When troubleshooting a connection after import, check each setting against the server’s requirements. Simply changing the protocol name or enabling another feature usually won’t supply missing server parameters.

What the three GUI clients do

v2rayN is a desktop client with GUI tools for server lists, subscription groups, routing and system proxy settings. Its menus make many lower-level fields easier to manage, but available features still depend on the selected core, operating system and supporting components. The cross-platform desktop edition and classic WPF edition primarily differ in interface technology and supported platforms; the interface name alone doesn’t determine protocol compatibility.

v2rayNG is an Android client built on the Xray core; v2flyNG offers an alternative based on the V2Fly core. Android uses VpnService permissions to capture traffic, while desktop clients use different mechanisms such as system proxies and virtual interfaces. A share link that imports on multiple devices doesn’t mean permissions, background operation or app-level traffic settings can be copied over unchanged. Repeat the connection checks when switching platforms.

GPL-3.0 and component licenses

The v2rayN, v2rayNG and v2flyNG client projects are licensed under GPL-3.0. The license allows you to read, use, modify and distribute the code under its terms; distributing modified versions also comes with source-code and licensing obligations. The cores and other components used by a client may have separate licenses, so the client’s license shouldn’t be assumed to apply to every dependency.

Open-source licensing and remote service quality are separate matters. The client provides configuration and connection features; subscription content is maintained by its source, while server availability depends on remote settings, account status and network conditions. This page covers client selection and usage, not subscription accounts. To assess a connection issue clearly, check the software, configuration source and remote service separately.

Keep a working configuration before updating

Clients, cores and routing data may follow different release schedules. An interface update can move menus, a core update can change supported fields, and routing data changes can affect domain categories and route selection. Before updating, note your current traffic capture method, routing mode and custom DNS settings, and back up the client configuration. Keep subscription URLs secure; don’t share backup files publicly.

After updating, test the basic connection first, then check whether subscription groups and custom rules are still in place. If a new problem appears, note the exact error and steps that trigger it; don’t change the core, routing and DNS all at once. Downloads are organized by platform and architecture on the client page. The advanced guide explains how the settings work together, helping you find the right concepts even if the interface changes.

If a term is unfamiliar, start with the glossary to distinguish system proxy, TUN, DNS and routing, then check frequently asked questions for troubleshooting by symptom. If you need to manage multiple subscriptions or add a custom outbound, read the advanced guide. Avoid applying complex configurations during your first connection test.

Technical notes

Practical guidance beyond the settings screens, covering subscription updates, share links and Android setup.