Project V ecosystem GUI clients

V2Ray Official Portal Download the v2rayN client

Use v2rayN on desktop and v2rayNG on Android. Start with open-source clients, then set up subscription imports and routing rules.

Free to use Open source Setup guides

Client configuration and connection flow

Import your configuration first, then check the traffic entry point and routing destination. The diagrams below illustrate settings structure only; menu names vary by client, and they do not indicate an active connection.

v2rayN / Subscription group settings
Subscription URLProvided by your service provider
How to importSubscription Groups → Add
Next stepsUpdate subscription → Select a configuration
Configuration structure example
{"outbounds":[{"tag":"proxy",
"protocol":"vless"}]}

Subscription URLs vs. single-node links

A subscription fetches multiple configurations; a share link usually describes a single node. First, verify that the source is trusted. Save the URL under Subscription Groups and update it. If you have a share link, use the import-from-clipboard option instead. After updating, check that the protocol, transport and security settings are complete, then select the active configuration. GUI clients organize these fields into lists for easier day-to-day management; running a core directly means maintaining the configuration file yourself. Subscription URLs often contain access credentials, so redact sensitive details from screenshots and support logs.

Client downloads for four platforms

Choose your operating system, then select the processor architecture and package format. The download center lists all installer links; installers are not distributed directly from the homepage.

Windows

v2rayN desktop edition and classic WPF edition

The desktop edition has a cross-platform interface, while the WPF edition retains the classic desktop experience. Choose the one that suits your workflow, and check the system requirements on the download page first. For your first run, place the app in a writable folder to avoid permission issues when saving settings.

macOS

v2rayN · Apple Silicon / Intel

Check your chip details under “About This Mac,” then choose the matching architecture. After installation, make sure the app launches and the core runs, then configure the system proxy. If macOS asks you to confirm the app’s source, verify where you downloaded it and review the prompt—don’t disable security protections wholesale.

Android

Use v2rayNG first; consider v2flyNG as an alternative

For most newer devices, start with the arm64 download. If you’re unsure which architecture to use, check the universal build notes. On first connection, approve the system VPN request. If another VPN is already connected, resolve the conflict first. If connections stop in the background, check battery optimization, background permissions and network switching behavior.

Linux

v2rayN · deb / rpm

Choose deb or rpm according to your distribution’s package manager, then check whether your device uses x64 or arm64. Installing the GUI client and routing desktop traffic through it are separate steps: even when the core starts normally, apps may still need the system proxy or their own proxy settings. An open window alone doesn’t mean the connection is working.

Installation, subscriptions and connections are separate steps

The client provides an interface for managing configurations; it does not include a remote connection service ready to use. After installing the app, you still need a valid configuration from a trusted service provider or your own server. Apps can send requests over the expected route only after the subscription updates successfully, an active configuration is selected and the local traffic entry point is working. Check these steps separately to avoid reinstalling the app when a subscription has expired—or mistaking an inactive system proxy for a server issue.

For your first installation, keep the default listening address and change only what you need. If you already use another proxy app, note its port and system proxy state first, and avoid having multiple programs change the same settings at once. Once the basic connection works, add custom routing, DNS or app-specific rules one at a time. That way, if something breaks, you’ll know what to revert.

View all clients →

Project V open-source ecosystem

Understand the difference between projects, cores and clients to make sense of download names and configuration options. The site name is for downloads and documentation navigation; it does not mean these independent open-source projects were developed by this site.

From core capabilities to GUI tools: a brief history

Project V provides useful context for understanding V2Ray-related tools. What began with cores and configuration files gradually expanded to GUI clients for desktop and mobile platforms. Cores handle network connections; clients organize subscriptions, nodes, routing and local proxy settings into an interface you can use. Search for “V2Ray official portal” and you’ll often find project, core and client names together. They refer to different layers, not different names for the same installer.

Core families: compatibility depends on the full configuration

V2Fly continues the community development of the V2Ray core, while Xray is a separate core project that grew from related code. They share technical roots, but their feature development and support for specific settings differ. VMess and VLESS are protocols; WebSocket is a transport option, while TLS and REALITY relate to connection security. Knowing only the protocol name isn’t enough to determine compatibility. Check each setting against the server requirements—don’t assume every client can use every share link.

Client roles: desktop management and mobile traffic routing

v2rayN is for desktop platforms and is suited to managing subscriptions, switching active configurations and adjusting routing in one place. v2rayNG is for Android; a common workflow is to import a configuration and route the selected traffic through the system VPN interface. v2flyNG is an Android alternative based on the V2Fly core. All three are open-source GUI clients, but their menus, export formats and platform permissions differ. Choose based on your device and configuration requirements, not just similar names.

Open-source licenses: assess the code and service separately

Related clients and cores are released under their respective open-source licenses, which define the terms for using, modifying and redistributing the code. A client and its core may use different licenses; check the license text for each project to understand what applies. Open-source code can be reviewed and improved by the community, but that does not establish whether a subscription service, remote server or local permission is trustworthy. Downloading an installer, obtaining connection settings and authorizing traffic routing are separate trust decisions, and each should be checked on its own.

Updates: apps, cores and rules change independently

Client updates may change the interface, import compatibility or system integration; core updates may affect protocol handling; routing rule updates change how domains and IP addresses are classified. Updating a subscription usually just fetches remote configuration—it does not update all of these components. Save your current settings before upgrading, read the release notes, and retest commonly used sites and apps afterward. If something breaks, identify which update caused the regression; that’s more useful than clearing all your settings.

Backups also contain different kinds of data. A share link may store connection parameters, while a client backup can include subscription credentials, group details and local paths. Don’t upload backups to public locations when moving between devices. Before asking for help, redact credentials, user identifiers and authentication fields from URLs. When using configuration snippets from the documentation, understand what each field does rather than treating a partial example as a complete, working configuration.

Common first-time setup questions

Check in order: configuration source, traffic entry point, then routing destination. Record the result at each step so the next check has a clear starting point.

The client is installed. Why can’t it connect?

Installing the app only prepares the tool. You still need to import a valid subscription or share link, select an active configuration and confirm that the core starts successfully. On desktop, check the system proxy or app proxy next; on Android, check VPN permission. First, get one browser request working, then test other apps to avoid troubleshooting several variables at once. See Getting Started for the steps.

The subscription imported successfully. Does that mean the node will work?

A successful import only means the client recognized the configuration it received; it doesn’t confirm that the remote service is reachable. Check the subscription’s validity, active configuration, system time and connection logs. If the response is a login page or an error message, it isn’t valid subscription content—even if the URL opens in a browser. Don’t post your full subscription URL publicly. Use the import steps in the guide to check that you’re using the right option.

The system proxy is on. Why does it work in only some apps?

Some apps ignore the system proxy or use their own proxy settings. A browser extension, in-app proxy and system proxy may also point to different ports. First check the local listener and browser access, then review the target app’s network settings. Direct and proxy modes only route requests that have entered the core; they can’t make requests that never reach it follow routing rules. For symptom-based checks, see Troubleshooting.

DNS problems after connecting: what should I check first?

Record the failing domain, system resolution result and client logs first, then determine whether the issue is DNS resolution or the connection itself. Browser secure DNS, system DNS and core DNS may use different routes, so changing one setting may not affect every request. Keep the current configuration and change one thing at a time. Test destinations expected to go direct as well as those expected to use the proxy, so fixing one site doesn’t unintentionally change other routes. For next steps, see the DNS and routing troubleshooting guide.

Configuration and deployment articles

Find guidance by topic, from first launch and link formats to routing deployments. Get a basic connection working with a GUI client before considering more complex traffic-routing setups.

View all articles →