Client and configuration guides

V2Ray Official Portal: v2rayN Client and Setup Guides

Find the v2rayN desktop client, Android clients, and Chinese configuration guides in one place. Follow platform-specific steps for installation, subscription imports, proxy modes, and routing checks.

Project V ecosystem V2Fly / Xray VMess / VLESS Chinese user guides

SYSTEM MODULES

System module registry

Once subscription data enters the client, it passes through protocol parsing, routing decisions, DNS queries, and local proxy handling. Review what each module covers and what to verify when changing settings.

Routing engine: choose the outbound path

The routing engine evaluates conditions such as domains, destination addresses, ports, and processes, then sends each connection to the selected outbound. A common setup keeps LAN traffic and direct-connection ranges on their original path while sending everything else through the proxy. Rule order affects which rule matches, so record the current mode before making changes, test a few clear conditions first, and expand gradually. v2rayN includes preset routing modes and custom rule controls. Most users should start with a preset, then inspect domain rules, address rules, and the final fallback when a specific site takes an unexpected path.

engine: domain / ip / port rules action: direct / proxy / block

PLATFORM ENTRY

Downloads for four platforms

Choose the platform for your current device first, then select the client by processor architecture and package format. The homepage provides platform navigation; files, version details, and system requirements are centralized in the download center.

desktop / x64

Windows

v2rayN is the main desktop choice. The download page offers both the newer cross-platform desktop interface and the classic WPF interface for everyday proxy use, subscription management, and routing configuration. Check your system architecture first, then choose the interface that suits your workflow.

Go to downloads

desktop / arm64 · x64

macOS

On macOS, use the v2rayN desktop client and select an installer for Apple Silicon or Intel. On first launch, allow the app in system settings and confirm network permissions before importing a subscription and switching the system proxy, so permission issues are not mistaken for node problems.

Go to downloads

mobile / arm64 · universal

Android

On Android, choose between v2rayNG and v2flyNG. v2rayNG uses the Xray core and is the usual first choice; v2flyNG uses the V2Fly core and can serve as an alternative when subscription compatibility calls for it. Most current devices use arm64; if you are unsure, check the universal-build notes.

Go to downloads

desktop / deb · rpm

Linux

For Linux desktops, use v2rayN and choose a deb or rpm package for your distribution. Debian and Ubuntu systems generally use deb, while Fedora and RHEL systems generally use rpm. Also distinguish x64 from arm64, then check the desktop launcher and autostart settings after installation.

Go to downloads

OPEN SOURCE ECOSYSTEM

How Project V, cores, and clients fit together

V2Ray-related names span several layers: the project ecosystem, core implementations, graphical clients, and protocol configuration. Separating each layer’s role makes installation and troubleshooting more straightforward.

ECOSYSTEM Project V Protocol and proxy software ecosystem
CORE FAMILY V2Fly Community-maintained core family
CORE FAMILY Xray Independently evolving compatible core family
DESKTOP v2rayN Graphical desktop client
ANDROID v2rayNG Xray-based client
ANDROID v2flyNG V2Fly-based client

Ecosystem history: V2Ray is not a single installer

Project V grew into an open-source ecosystem built around proxy protocols, transport methods, routing rules, and configuration formats. In everyday searches, “V2Ray” may refer to protocol capabilities, a core program, or any graphical client that reads compatible configuration. Users typically operate v2rayN, v2rayNG, or v2flyNG; the client handles the interface, subscriptions, and system integration, while the underlying core establishes connections, applies routes, and processes protocols. Treating the graphical interface and core as separate layers helps explain why client updates, core updates, and subscription updates are not the same thing.

Core families: V2Fly and Xray

V2Fly carries forward V2Ray core capabilities under ongoing community maintenance, while Xray has evolved independently while remaining compatible with some existing configurations. Both can handle common protocols and routing setups, but available features, field details, and release cadence may differ. Whether a subscribed node works depends not only on the client name but also on whether its selected core supports the required protocol, transport layer, and extension parameters. If import succeeds but the configuration will not start, read the first configuration error in the client log and compare it with the current core’s capabilities instead of repeatedly deleting the same subscription.

Open-source licensing: code, releases, and documentation have different boundaries

The three clients and their related cores belong to an open-source software ecosystem. Source licenses define the conditions for viewing, studying, modifying, and redistributing code. Different components may use different licenses, so follow the license text included with the relevant project when redistributing or integrating software. Open source does not mean that every third-party subscription is maintained by the client project, nor that a node service belongs to Project V. The client, core, subscription provider, and local network are separate parts of the system; troubleshooting requires confirming responsibility for each one.

Update model: clients, cores, and subscriptions update separately

Client updates mainly change the interface, platform support, and configuration management; core updates may add protocol capabilities, fix configuration parsing, or change network behavior; subscription updates retrieve a fresh node list from an existing URL. Keep these three update types separate. In normal use, first confirm that the current client starts, then update the subscription and test a known configuration. Consider upgrading the client or core only when logs identify an unsupported field or a platform compatibility issue addressed by a newer release. Record proxy modes, routing plans, and custom settings before upgrading so you can compare the changes.

QUICK ANSWERS

Featured FAQs

Understanding the difference between the client, subscription, and proxy mode before installation can prevent repeated configuration work. More categorized answers are available on the FAQ page.

01 / CLIENT

How do I choose between v2rayN, v2rayNG, and v2flyNG?

Use v2rayN first on Windows, macOS, and Linux desktops. On Android, start with v2rayNG in most cases; choose v2flyNG when the configuration specifically requires a V2Fly core path or when you need to compare the behavior of the two cores. The client name determines the interface and platform, while the selected core handles the protocols.

Read the client selection guide →

02 / SUBSCRIPTION

What is the difference between a share link and a subscription URL?

vmess:// or vless:// usually describes a single node and creates one server entry when imported. A subscription URL returns a refreshable set of nodes that the client manages by group. With only a share link, import it directly from the clipboard; with a subscription URL, add it in subscription settings and run an update.

View the subscription import steps →

03 / MODE

Should I start with system proxy or TUN?

For a first setup, start with the system proxy. Its coverage is easy to observe, and it makes it simple to verify common apps such as browsers. Evaluate TUN when a program does not read system proxy settings. Before enabling TUN, understand the changes to virtual interfaces, permissions, routing tables, and DNS handling, and avoid running multiple traffic-capture tools at once.

Review proxy mode terminology →

04 / TROUBLESHOOTING

What should I check first when a node will not connect?

First confirm that the client core has started. Then check whether the subscription updated successfully, the intended node is selected, and the system proxy is enabled. Next, read the first clear error in the log and distinguish DNS resolution, unreachable ports, invalid configuration fields, and permission problems. Change one variable at a time; replacing the client, node, and proxy mode simultaneously makes the cause harder to isolate.

Open the troubleshooting FAQ →