Project V GUI clients and configuration guides

V2Ray Proxy Client: v2rayN and v2rayNG

A complete path through client selection, subscription imports, and split tunneling for desktop systems and Android. Configuration steps match the actual settings in v2rayN, v2rayNG, and v2flyNG.

Free forever Open source Xray and V2Fly cores Configuration guides
Client configuration topics

Subscriptions, split tunneling, TUN, and DNS

Settings are explained in the order they are used. Start with subscriptions and nodes, define the traffic scope next, then configure routing and DNS policies to avoid changing several variables at once.

01 / SUBSCRIPTION

Multiple subscription groups and node filtering

Subscription groups keep node sources manageable when several providers and custom configurations are involved. v2rayN can place each subscription or self-managed configuration in a separate group and update only the selected source; v2rayNG is better suited to keeping a small set of frequently used configurations on mobile. After importing, check the group name, update time, and protocol fields, then filter by alias or address. Do not treat updating a subscription and switching the active node as the same action.

For everyday use, keep clear groups such as “Daily use,” “Temporary testing,” and “Custom configurations.” Before deleting a subscription, confirm that the active connection no longer references it. Filtering only changes which entries are displayed; it does not modify the subscription source. To permanently exclude a type of node, add keywords in the client’s server filtering rules.

View subscription management guide →
Subscription groups Update current group
A Daily useAutomatic updates on Current
T Temporary testingManual updates ···
L Custom configurationsManaged locally ···
Server filter: enter an alias or address
Choose by operating system

Client entry points for four platforms

v2rayN is the primary desktop entry point for Windows, macOS, and Linux. On Android, choose between v2rayNG and v2flyNG. The download page further separates system architectures and package formats.

Windows

Choose the v2rayN desktop edition or the classic WPF edition. The desktop edition uses a cross-platform interface, while WPF suits users who prefer the traditional Windows workflow. Both support subscriptions, the system proxy, routing rules, and TUN mode.

Go to downloads

macOS

Use the v2rayN desktop client and choose the Apple Silicon or Intel installer for your processor. On first launch, complete the system security confirmation and grant network permissions, then import a subscription and enable the system proxy.

Go to downloads

Android

v2rayNG with the Xray core is the preferred choice; choose v2flyNG when the V2Fly core is required. Most modern devices use the arm64 architecture. If you cannot confirm the architecture, choose the universal installer. Subscription workflows are similar in both clients.

Go to downloads

Linux

v2rayN provides packages for common Linux distributions. Choose deb or rpm according to your package manager, then select x64 or arm64 for the processor architecture. After installation, the subscription and routing interfaces are similar to those on other desktop platforms.

Go to downloads
Open-source ecosystem

Project V, V2Fly, Xray, and GUI clients

Client names, core names, and protocol names belong to different layers. Understanding their relationships makes it easier to choose software, read configurations, and pinpoint problems in logs.

PROJECT V

Project V is the ecosystem’s starting point

Project V established an open-source ecosystem centered on composable network proxy capabilities. In common configurations, inbound and outbound connections, routing, DNS, transport methods, and protocol parameters all follow this modular approach. Users interact with a GUI client, but the client core handles connections, protocols, and routing. As a result, the same subscription may expose similar fields across clients, while differences in core capabilities and integration status can still produce different settings.

When reading a guide, first identify which layer contains the problem. A subscription that cannot be added usually involves client input or subscription formatting; an unrecognized protocol parameter may indicate core support; a system proxy that does not affect the target application calls for checking the operating system’s proxy mechanism; an unexpected routing result requires reviewing rule order, DNS resolution, and outbound tags. Layer-by-layer troubleshooting is more effective than repeatedly reinstalling the client.

CORE FAMILIES

V2Fly and Xray are two core families

The V2Fly community continues to maintain and extend core V2Ray capabilities, with a configuration structure focused on modular composition and compatible evolution. Xray has developed its own core implementation and feature extensions within a similar configuration model. Neither is a GUI client, and neither is synonymous with a particular protocol. They execute inbound listeners, outbound connections, rule matching, DNS queries, and transport parameters.

Many basic settings can be understood correspondingly across the two core families, but the client’s currently integrated core remains authoritative for exact fields, support, and defaults. When copying a configuration from another client, do not stop at matching protocol names. Also verify the transport method, security parameters, server name, path, fingerprint options, and routing tags.

CLIENT LAYER

Three clients serve different platform entry points

v2rayN is the main desktop choice for Windows, macOS, and Linux, with GUI settings for subscription groups, server filtering, the system proxy, routing rules, DNS, TUN, and logs. v2rayNG targets Android and usually runs the Xray core, making it suitable for managing mobile connections through subscriptions or share links. v2flyNG also targets Android, but uses the V2Fly core and serves as an alternative when that core family is required.

All three applications continue to be maintained through open community collaboration, with code and change records available for review. Client releases and core updates do not always move in sync: after a core adds a capability, the GUI still needs parameter mapping, interaction design, and platform testing. Choose based on platform, core, and required features rather than name similarity alone.

OPEN SOURCE

Open-source licenses define use and redistribution boundaries

Open-source software uses licenses to define the conditions for using, modifying, and redistributing code. For everyday users, a license primarily signals transparent provenance and clear collaboration boundaries. Teams planning custom development or enterprise deployment should read the specific license used by each project and confirm that their distribution method complies. Different clients and dependencies may use different licenses, so the terms of one component cannot be applied to the entire software stack.

Open-source status does not replace configuration review. Before importing a subscription, confirm its source and intended use. After connecting, use logs to verify the actual inbound, outbound, and routing rules in effect. When system network permissions are involved, grant only the scope the operating system requires for the client to configure the proxy or virtual network.

UPDATE FLOW

Updates fall into three tracks: client, core, and subscription

Client updates mainly change the interface, platform compatibility, and feature entry points. Core updates affect lower-level capabilities such as protocol implementation, routing, and DNS. Subscription updates replace or add server configurations. These tracks are related but are not the same operation. If a subscription fails to update, check its address, network, and subscription group first. If the core fails to start, inspect logs and configuration fields. Consider a client update or settings migration only when the interface itself behaves unexpectedly.

Before updating, record the current routing mode, DNS policy, and TUN status so behavioral changes can be compared quickly. Users with multiple subscriptions should update them one group at a time and observe the result, rather than changing the client, core, and every subscription simultaneously and losing a troubleshooting baseline. The Advanced Config chapter also covers custom outbounds, FakeDNS, and multi-subscription filtering.

Open the Advanced Config manual →