Open-Source Clients · Setup Guides

V2Ray Clients Get Started

Configure desktop and Android proxy clients with open-source clients, from subscription imports to routing rules.

Protocol
  • VMess
  • VLESS
  • Trojan

Settings Index

Subscriptions, Routing & Core Settings

Import your configuration first, then decide which apps and destinations should use the proxy. The settings cards below illustrate where to find each option; menu labels may vary by client version, so check your installed client.

Subscription Group Settings

Remarks
Default Group
Address (URL)
https://example.com/sub?token=xxxx
Update subscription (without proxy)

Interface illustration. Save the URL, then update to retrieve connection configurations.

Keep the configuration workflow in order: the subscription provides available remote connections, the active configuration selects the current route, routing assigns requests, and the system proxy or TUN determines which traffic enters the client. Checking these four layers separately helps avoid changing routing to fix a subscription update failure. It also explains why an app may still connect directly even when the client is running.

Browse the full setup guide for your platform →

Choosing a Client

Downloads for Four Platforms

Choose v2rayN for desktop and start with v2rayNG on Android. Check your operating system and processor architecture before choosing an installer; configuration files and subscription URLs are not substitutes for installing a client.

Windows

v2rayN · Recommended

Choose the cross-platform desktop edition or classic WPF edition to manage subscriptions and routing. Check system requirements before installing.

Start with the system proxy for browsing; use the TUN guide for other apps. Clear the proxy before quitting, and check logs if startup fails.

Go to downloads Windows client

macOS

v2rayN · Desktop Client

Check About This Mac to choose the Apple Silicon or Intel installer, then follow the installation guide for initial setup.

Recheck the system proxy after changing networks. For TUN, follow the permission guide. Test the active configuration, proxy, and DNS one at a time.

Go to downloads macOS client

Android

v2rayNG · Recommended

Choose Xray-based v2rayNG or V2Fly-based v2flyNG to match your subscription. Select arm64 for supported devices, or use the universal installer.

Import and update your subscription, select a configuration, and approve VPN access. Avoid competing VPN apps; check battery restrictions if connections drop.

Go to downloads Android client

Linux

v2rayN · Graphical Configuration

Manage subscriptions and routing in a graphical client. Choose a deb or rpm package that matches your distribution and processor architecture.

Confirm the core runs and its configuration directory is writable. Proxy support varies by app; follow the TUN permissions guide for broader traffic capture.

Go to downloads Linux client
Browse all clients →

Quick Start Preview

From Installation to Connection Testing

Follow the sequence “client → configuration → traffic entry.” Keep the initial setup simple, verify the connection, then add advanced routing rules and TUN settings.

Step 1 · Install the Client

Check the Platform and Installer

Choose your operating system on the download page, review the architecture and runtime requirements, then install the client. On first launch, check that the main interface works and that settings can be saved. The client manages connection configurations; it does not provide a remote service. Before continuing, prepare a valid subscription or shared link. If you already have a configuration, back it up before moving to the new installation. Avoid mixing core files and settings from different installation directories.

Step 2 · Import a Subscription

Add, Update, and Select a Configuration

On desktop, open Subscription Group Settings, enter a recognizable name and the full URL, save, then update. On Android, add the URL from the subscription group menu and refresh the configuration list. After a successful update, select an active configuration and confirm that it belongs to the expected group. Shared links and subscription URLs may use different import options, so check the content type if you see a format error. Keep all URL parameters intact, but do not expose them in screenshots or public messages.

Step 3 · Test the Connection

Enable the Traffic Entry and Check Access

On desktop, start with the system proxy. On Android, start the connection and approve the VPN permission. Open the app you want to test, try accessing your destination, then review the client logs for connection details or errors. A running status only confirms that the process has started; it does not prove that traffic works. If just one app is affected, check whether it uses the system proxy. If every destination fails, check the active configuration, remote service, and DNS. Enable TUN only after the basic connection works.

Read the Full Guide →

Open-Source Projects & Maintenance

Project V, V2Fly & Xray

Understanding the difference between a client and a core is more useful than memorizing software names. The interface manages configurations, while the core handles connections. Open-source licenses set the terms for using and distributing code; compatibility still needs to be checked feature by feature.

How Project V Fits Together

Project V is an open-source technology ecosystem for proxy communications, with V2Ray as one of its key components. Its protocols, transports, routing, and inbound and outbound processing are organized as composable modules, allowing different graphical clients to provide an interface to the same technology. Users see subscription lists and settings screens; behind the scenes, the client generates or manages the core configuration.

A client name is not a protocol name, and a subscription source is not a core project. When reporting an issue, include the client, core, connection configuration type, and operating system. That is more useful than saying only “V2Ray doesn't work.” This site organizes downloads and guides around three graphical clients. See the glossary for protocol terminology.

V2Fly and Xray: What's the Difference?

The V2Fly community maintains the V2Ray core and related documentation. Xray grew from related code and has developed its own implementation and feature set. They share a technical background, but not every feature or parameter is identical. For VLESS, REALITY, and flow-control options in particular, check whether the current core supports the full combination in your configuration rather than assuming compatibility from the protocol name alone.

Choose a core based on the requirements of your remote service. If your current configuration works reliably, identify the specific problem you want to solve before switching. A successful import only means the client can read the configuration; a working connection also requires matching parameters on both ends. For more details, read Choosing Between the Xray and V2Fly Cores.

Open-Source Licenses for the Three Clients

v2rayN provides desktop tools for subscription management, system proxy, and routing. v2rayNG is an Android client that uses the Xray core, while v2flyNG is an Android client that uses the V2Fly core. All three are open-source clients and free to use. Choose based on your platform and configuration requirements, then consider which interface you prefer. Do not mistake Android clients for desktop installers or core names for app names.

These clients primarily manage configurations and connections; remote services are a separate layer. Installing a client does not provide a valid configuration, and an open-source license does not change a subscription's expiration date or server rules. Keeping the client, configuration source, and remote service separate makes it easier to identify what needs attention when something goes wrong.

What Open-Source Licenses Mean in Practice

The v2rayN, v2rayNG, and v2flyNG client projects use GPL-family licenses. The V2Ray core from V2Fly and the Xray core use the MPL 2.0 license. Client and core licenses apply separately, and bundled components may have their own terms. For accuracy, read the license files included with the software instead of treating the entire ecosystem as though it used a single license.

Open-source licenses allow you to inspect, modify, or redistribute code under specific conditions; they do not waive attribution, source-availability, or other obligations. Most users only need to focus on installation and configuration. If you plan to modify or distribute software, read the applicable project license. A license defines the terms for using code; it does not guarantee connection speed, network availability, or service quality.

Client and Core Updates

Interface updates may move menus or change how settings are saved. Core updates may affect protocol compatibility, network handling, or bug fixes. Treat these as separate kinds of changes. The download page lists available installers, while the homepage does not pin a specific release number. Before updating, export or back up subscription groups, routing rules, and essential settings. Read the release notes, then decide whether to migrate your existing configuration.

After updating, test with the same known-good configuration. Confirm the basic connection first, then check the system proxy, TUN, and custom rules. Do not change the subscription, core, and DNS at the same time, or it will be hard to tell what caused a difference. If something goes wrong, compare against your previous settings and keep the error context instead of deleting everything and starting over.

A Checklist for Troubleshooting Configuration Issues

If a subscription update fails, first check that the URL is complete, the service is still active, and your current network can retrieve the subscription. Then try updating with and without the proxy. If the subscription updates but you cannot connect, check the active configuration and core logs. If only some apps are affected, focus on system proxy support and traffic capture rather than replacing every connection configuration.

DNS resolves domain names; routing determines how traffic is handled. They work together, but are not the same setting. Enabling TUN does not guarantee that every request uses the proxy, so check exclusions and direct-routing rules as well. Follow the troubleshooting FAQ to check each item. For DNS resolution paths, see the DNS configuration section. Do not judge the entire setup based on a single speed test.

Configuration Guides

Subscriptions, DNS & Network Deployment

Once the basic connection works, explore the guides relevant to your needs. Identify the problem before adding complexity; desktop clients, Android VPNs, and transparent proxy setups on a LAN each have different operational limits.

Running a V2Ray Core on an OpenWrt Side Router: Transparent Proxy Deployment and LAN Traffic Routing

Compare main-router and side-router setups, outlining how to run the Xray or V2Fly core on OpenWrt for transparent proxying, including gateway settings and common considerations. Learn how device gateways, DNS resolution paths, and proxy exits differ—and why router configurations cannot be copied directly from desktop system proxy settings.

Read the Deployment Overview →

Where to Import V2Ray Subscription Links: v2rayN and v2rayNG Menus, Base64, and URI Formats

Find the menus for adding and updating subscriptions in the v2rayN desktop client and v2rayNG for Android. Learn how Base64 subscriptions differ from vmess:// and vless:// share links. This guide helps when an import produces no configurations, you choose the wrong import option, or mistake a webpage URL for a subscription. It also explains the difference between updating a subscription and selecting an active configuration.

Read the Subscription Import Guide →
Browse All Articles →